作者fasthall (Xen)
看板GameDesign
标题[程式] MMO之server/client情境设计
时间Sat Jul 21 07:48:53 2012
现在正在练习写一个realtime的MMORPG
server端帐号资料和游戏物件使用MySQL来储存
为了即时的需求使用UDP来传送指令
由於完全没有设计过这种MMORPG
又不好意思直接发问请教怎样设计
所以我自己想了如下一个情境
请有设计过MMORPG的前辈指教使否可行
===========================================
游戏世界中的物件皆储存在server记忆体中
1.client登入时送username/password给server
2.server收到帐密後到DB的user表中找有无使用者资讯
3.若找到则回传一个token并在server记忆体登入这玩家
4.之後client都只传这个token和指令(不用传帐密)
5.server收到tokent和指令後去更新记忆体中玩家资讯(不动DB)
6.server定时检查记忆体中的玩家 每隔一段时间回存到DB
============================================
这样设计的目的是不要每个封包都包含帐号资讯
而且可以减低资料库存取频率
我server用Java non-blocking udp socket写
由於游戏本身不复杂预计能负载千人在线
想请问这个设计会不会遇上什麽问题?
或是有没有标准的一套MMORPG设计情境可参考?
谢谢各位前辈
--
约翰高尔特是谁?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 98.156.103.209
1F:→ fasthall:刚刚又想到 可是这样只要有人伪造token就能破解了...... 07/21 11:08
2F:→ NightDream08:token写一个加密盖上去用自己的格式读? 07/22 00:38
3F:→ NightDream08:啊不对,当我没说(炸 07/22 00:43
4F:→ fasthall:楼上ID好眼熟XD 07/22 01:59
5F:→ fasthall:想了想 如果指令不加密 只能在登入的时候给个session id 07/22 01:59
6F:→ fasthall:来让每次登入都能用不同id防止hacker伪造封包了 07/22 02:00
7F:→ justben:帐密传递的时候不加密 hacker直接拦下来读不就得了? @@ 07/22 03:44
8F:→ Hevak:session id更方便抢劫吧,你看看免费空间的cookie.... 07/22 10:57
9F:→ fasthall:那请问有不加密的办法吗 伺服器要解密的话挺耗资源的 07/22 11:26
10F:→ fasthall:有人说session id+client address/port这样OK吗 07/22 11:32
11F:推 cowbaying:SSL 07/22 12:47
12F:→ cowbaying:现在电脑够快 加解密也只是几百奈秒的事情 07/22 12:49
13F:→ cowbaying:RSA AES也都可以 都有套件可以帮你处理资料加密的事情 07/22 12:52
14F:→ cowbaying:抱歉 SSL是HTTP通讯协定在用的 SHA也不错 07/22 13:00
15F:推 Hevak:RSA/AES是加密,SHA是杂凑验算.... 07/22 14:05
16F:→ Hevak:SSL是协议,其下可以使用很多种算法... 07/22 14:06
18F:推 LaPass:问你的pm = = 07/22 23:38
19F:→ LaPass:等等... 练习? 是学生喔..... 07/22 23:38
20F:→ fasthall:我是研究生 这是练习 跟我职业无关 有问题吗? 09/16 15:49