SLG服务器框架设计说明

一、SLG服务器业务特点

同屏数据量大
一次同屏请求可能需要传输上千单位的数据
同屏人数多
同屏的某个单位变动,需要同步近千人
同屏频率高
玩家可以随意拖动屏幕切换不同的位置,每次需要同步大量数据
玩家交互频繁
玩家间交互频繁,因为游戏主要以GVG为主,频繁的与其他玩家交换数据
复杂计算多
由于是大地图自由行军,超大地图的寻路带来较高压力计算,地图越复杂,计算压力越大
计时任务多
SLG中存在大量计时任务,行军计时,建造计时,采集计时,任务计时
交互竞争多
同时对1个目标发生战斗,需要按队列顺序执行,前一个操作结果作为后一个操作的上文
实时变化复杂
某个单位的变更,会引发相关联的单位一起变动,例如,某个部队以某个玩家的城市为攻击目标,行进过程中,对方迁城走了,部队需要立刻回城或者停留
以上业务带来以下几个难点:

  1. 即使长时间未上线的玩家,其数据仍然会被频繁读取/更改
  2. 网络传输压力大
  3. 计算压力大
  4. 数据竞争压力大

二、模块功能设计

网关(Gateway)
为系统提供玩家链接管理,提供反外挂/视野/连接鉴权/消息过滤/扩容网络带宽/黑白名单等功能
有限状态,可扩展
逻辑(Logic)
为系统提供数据支持/数据存储/单机玩法逻辑
有限状态,可扩展
世界(World)
为系统提供场景交互支持/视野支持/场景玩法逻辑

你可能感兴趣的:(服务器,网络,游戏,golang)