苏亚雷斯世界杯

无缝大地图世界构建!!!为什么选择无缝大世界地图构造????

MMO 魔兽世界。。等诸多的开放世界游戏都用到了无缝大世界构建。不一一列举了。下面开始我们的大地图世界构建,和会遇到什么样的问题难点。

通常,都是先把游戏世界分成小块,然后在相邻的小块间加入一些服务器间的通讯,每个服务器都可以自主地作出反应。服务器互相通知那些与边界接近的对象,这样来,每个服务器都可以通过它们的本地代理来对远程对象(在某种程度上)进行控制。

问题1:分割游戏世界

怎样才能最好地划分游戏世界?这个问题往往依赖于特定的游戏。在一个由玩家控制游戏人物的基于地形(terrain-based) 的游戏(也就是典型的在线RPG)中,应该假设游戏世界处于一个二维平面上,并按照二维网格对其进行划分,这是最可行(也是最简单)的方法,并且也适用于三维游戏世界。对于那些真正的“6度空间(six degrees offreedom)”仿真游戏来说,这个方法也许并不好,使用八叉树或其他方式来进行空间细分可能会更合适。

问题2: 平均分配

下一个需要考虑的问题是相邻区域的共享边界应该有多大。最小情况下,它们应该与客户端的游戏世界和/或玩家的可感知范围一样大。如果再小一点的话,当玩家在服务器边界附近时,他视野的对象可能和边界另一边的其他玩家不同,这可能会引起很多对这一游戏特性的滥用。

图描述了这种情况。服务器A和B共享同一个边界,边界区域中的对象会被映射到另一端。玩家P2在共享边界中,而玩家P1在共享边界外。P1的可见对象集合由PI周围的虚线表示,它包含了P2。但是由于P1并没有映射到服务器B中,他对于P2来说是不可见的,即使P2和P1具有相同的可视范围。由于服务器B完全不知道P1的存在,因此无法把关于P1的信息告知P2。所以PI也许可以攻击P2,但P2却不能攻击P1。

下面,看一个