作者VVll (信)
看板GameDesign
标题Re: [请益] 制作连线游戏的注意事项?
时间Sat Nov 2 04:28:42 2013
※ 引述《LaPass (LaPass)》之铭言:
: 全文恕删
: 先别管原PO的能力到底到哪里
: 我想请问
: 如果有位小程式设计师(我承认就是我)
: 有能力完成一般小游戏 (打砖块、俄罗斯方块之类的)
: 有能力做出server-client架构
: 有能力自订/写出简单的MSN之类的通讯软体
: 如果像这样的人,想去完成一个数千甚至数万人在线的网路游戏
: 你们会给什麽建议呢?
: 因为会写程式
: 所以知道,即使自己在测试时,开个五六个client端做测试
: 也不能能保证在上千上万人时能正常运作
: 请问在写这种大架构的游戏时,有什麽注意事项或是know-how?
: 很多东西是在书上找不到的....
压力测试 这是多人互动程式必做的
如果是大型3D MMO的话 还要做client端的画面承载测试
而server的话 简单的方法
就是写一支bot程式 模拟client行为
然後大量开启跟server沟通 去找出效能瓶颈点
80%的效能问题 来自20%的程式码
有可能是大量IO处理导致 server空转等待
也有可能是 大量的序列化/反序列化处理 浪费server效能
而越复杂的游戏 server要处理的沟通就越多
先去参考类似游戏的server/client架构
分析优缺点 然後把它实作并改良
比如 神魔 会在第一次开启战斗後
就把所有关卡的掉宝资料透过xml传给client
优点 不用每次打完一支怪就跟server要掉宝结果
还有资料验证处理
server才是真实资料的存放处
client的资料只是显示用 也就是不可信任 避免玩家透过非法手段修改
ex:神魔的体力值 真实值存在server端的DB上 client上只是给玩家参考用
因此即使玩家修改client端体力 在跟server做验证後就会修正回正确值
server写好了 要架在哪?
MS-Server环境方便普及 商业授权费贵 人力便宜
Linux-like环境便宜 但要找能维护linux跟能开发linux-server的人贵
这也是一开始在开发时 就要想到的问题
最後如果经验不足 就不要把饼一开始就画太大
把系统做好扩充性 会比一次大量功能一起做然後出包出到死的好
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.240.239.100
※ 编辑: VVll 来自: 123.240.239.100 (11/02 04:42)
1F:推 UbaldJimenez:推,连线游戏大抵上的确是这样处理 11/04 00:12