作者Fontainerei ( )
看板GameDesign
标题Re: [程式] MMO之server/client情境设计
时间Mon Sep 3 23:44:28 2012
※ 引述《fasthall (Xen)》之铭言:
: 现在正在练习写一个realtime的MMORPG
: server端帐号资料和游戏物件使用MySQL来储存
: 为了即时的需求使用UDP来传送指令
: 由於完全没有设计过这种MMORPG
: 又不好意思直接发问请教怎样设计
: 所以我自己想了如下一个情境
: 请有设计过MMORPG的前辈指教使否可行
: ===========================================
: 游戏世界中的物件皆储存在server记忆体中
: 1.client登入时送username/password给server
: 2.server收到帐密後到DB的user表中找有无使用者资讯
: 3.若找到则回传一个token并在server记忆体登入这玩家
建议通过验证後把玩家的基本资料存放进server的记忆体
而token可考虑用user DB Index
: 4.之後client都只传这个token和指令(不用传帐密)
: 5.server收到tokent和指令後去更新记忆体中玩家资讯(不动DB)
原则上不能相信client传送的资料
client只负责发出某项请求
server用记忆体中的资料检查请求的合法性
进行计算後回传结果
: 6.server定时检查记忆体中的玩家 每隔一段时间回存到DB
有必要才进出db
譬如取得装备或完成任务
其他的部分可在玩家登出时进行
: ============================================
: 这样设计的目的是不要每个封包都包含帐号资讯
: 而且可以减低资料库存取频率
: 我server用Java non-blocking udp socket写
: 由於游戏本身不复杂预计能负载千人在线
: 想请问这个设计会不会遇上什麽问题?
: 或是有没有标准的一套MMORPG设计情境可参考?
: 谢谢各位前辈
基本上要注意资料的互斥性
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.44.141.141
1F:推 LayerZ:推第5点 同样判断最好client/server各做一次 09/04 10:05
2F:→ LayerZ:client避免送出不合法请求 server验证合法性 09/04 10:05