Go游戏服务器开发的一些思考(三十二):关于无缝世界的一些思考

功能目标

  1. 多个Cell服务器分别加载整个世界的部分地图块,共同拼凑成完整的世界。

  2. 玩家在相邻Cell服务器间跨服地图块上移动,不会有卡顿、读条等问题。

  3. 相邻Cell服务器间跨服地图块上的玩家能正常同步状态。

  4. 相邻Cell服务器间跨服地图块上的玩家能正常交互

架构图

Go游戏服务器开发的一些思考(三十二):关于无缝世界的一些思考_第1张图片

  • 多个Cell功能组成一个场景
  • CellMgr管理场景信息
  • 场景信息保存到redis中

场景构建

  1. 首先需要确认的问题点:

    分块后的地图数据,服务器端的3D场景建模库能否能加载。

    比如分块时,一个Mesh正好被切成2半。

    这个问题优先级低,可以通过每个Cell都加载建模整个场景,暂时规避掉。

    后期优化再补做。

  2. 设计场景地图划分全貌图的数据结构

    • 该数据结构性质为全局性的,所有Cell等都能访问

    • 该数据结构应要能体现Cell与Cell间的关系。

      能让Cell知道自己需要与哪些Cell有交互、交互条件

    • 该数据结构唯一目的就是描述清楚Cell与Cell间的关系

      因此设计合理,可以让Cell

你可能感兴趣的:(Go游戏服务器开发的一些思考)