Go游戏服务器开发的一些思考(三十五):无缝世界场景构建与同步(二)

不规则区域组成的世界

Go游戏服务器开发的一些思考(三十五):无缝世界场景构建与同步(二)

首先必须遵循按正方形切割整个世界场景。

然后可以通过配置,把配置设置某个Cell上有哪些方块。

如上图,这是一个所有块都是相连的。通常都会这么做。

当然不相连、或是凹形等,都是可以的。

配置上只需要填写某个Cell有哪些方块即可。

初始化过程

在服务器组启动完毕,Cell初始化时,

遍历这些方块,

把它们的区域a-i的,分别会外接哪些其他Cell收集全。

即像图中的灰色区域都是0个外接Cell。

红色区域可以根据上节的规则,收集全外接的Cell信息。

完毕。

因此,无缝世界的难点在于:

  • 实体的主从切换。
  • 运行时,Cell间动态协调它所管辖的方块区域。

关于第2点,龊一点的做法是,收集每块方块上的承载数,定期维护修改配置,以达到所有Cell负载平衡。

比如每周维护、或是每天凌晨4点关机,改配置,重启一次机器。。。等。

当然这样都不及可以动态负载均衡Cell来的方便。