金庆的专栏

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  372 随笔 :: 0 文章 :: 454 评论 :: 0 Trackbacks
网游服务器应分离实时功能

(金庆的专栏)

网游服务器功能可分成实时性功能和非实时性功能,分在不同的物理机。
实时性功能如移动,战斗,要求立即处理,时延为100ms之内,所以机器不能满载运行,数据尽量在本地。可考虑采用UDP减少时延。
非实时性功能如打造,交友,时延允许100ms以上,可以让机器满载运行,数据可查询获取,性能考虑少,多使用脚本。
非实时性功能因为状态数据少,允许负载转移时的短时停顿,容易做动态负载均衡,甚至可以做成无状态的服务。

实时功能再分为地图无关的功能和地图相关的功能。
地图相关的功能只能在该地图服上处理,不能分负载。
而地图无关的功能可以分成多个服务器处理,如9屏广播分到广播服务器,可以动态增删服务器。

尽量让地图服务器功能单一,处理简单,一台物理机可以处理非常巨大的一张地图。
单机所允许的地图很大,所以没必要对单个地图分区域处理,就不必考虑单个地图上的无缝功能。

跨地图(跨服)不应该有切换的停顿,可处理成带浓雾的小径,小桥之类。用传送点处理是一种简化的方法。
地图之间可能是可以相互看见的,如隔河相望,但没必要进行战斗交互,即只有9屏广播消息跨地图边界。
发个火球到对岸也是可以实现的,只是技术上实现有点复杂,暂时不值得去做。
posted on 2013-12-16 15:10 金庆 阅读(538) 评论(0)  编辑 收藏 引用 所属分类: 2. 网游开发

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理