无缝地图的优缺点(NCSOFT: Jason Beardsley)

来源:互联网 发布:四会网络推广培训学校 编辑:程序博客网 时间:2024/05/02 01:57
 MMP游戏究竟要实现一个无缝世界还是一个分区世界是一个至关重要的决定,而且这个决定必须在游戏设计的早期就做出。这个选择对游戏的每个方面(从设计和程序开始,然后是美工制作和游戏世界构筑,最后贯穿游戏的实际运营和维护)会产生什么样的影响并不是显而易见的!
无缝世界模式的优点
1.拥有更大的游戏空间无缝世界在大小上具有明显优势。无缝游戏世界可以有更大的连续区域来进行游戏,而一个分区游戏世界所能支持的区域大小,受限于单个服务器所能处理的玩家数量。对玩家来说,无缝游戏世界可以营造出一个更加引人入胜的环境,并且游戏仿真也可以变得更为真实。对于某些游戏设计来说,把游戏世界分解为独立的区域甚至是不可行的,这时必须使用无缝游戏世界。
2.可伸缩性和可靠性无缝游戏世界可以给游戏带来一个更为实际的好处,那就是可以增加可伸缩性。随着游戏世界中的玩家越来越多,服务器需要进行调整以处理不断增加的负载,更不用说那些能在运行时自行平衡的动态服务器边界了。即使服务器边界是静态的,也可以根据玩家的数量和分布,在停机时间对它们进行调整来达到同样的效果。
无缝世界还具有更高的可靠性。如果某个服务器中止服务或是某个服务器进程崩溃了,就可以调整服务器边界来把负载分散到其余的服务器中。一个更强大的动态服务器边界实现甚至可以在检测到某个服务器崩溃时自动地做到这点。
3.不确定的边界线游戏中有很多错误与在服务器间来回移动数据相关,动态服务器边界的另一个优点是它们可以降低玩家对这些错误进行滥用的可能。理由很简单:玩家对于究竟哪里是服务器边界并没有一个确切的概念,当玩家发现这些边界后,只需要对服务器边界进行调整就可以避免他们对此滥用。
4.不需要载入地图无缝游戏世界甚至对玩家也是有好处的。“载入地图”所需要的时间会大大减少(除了初始化以外),这些载入操作会被平摊到游戏世界中每一个分块上,这些分块仅在需要时才会被载入。

无缝世界模式的缺点(和分区服务器设计相比,无缝服务器会使游戏开发和维护上的所有工作都变得更为困难)
1.不确定法则:不仅仅是客户端分区服务器和无缝服务器在复杂度上的区别类似于单人游戏和多人游戏之间的区别。在一个无缝服务器环境中,由于表示远程对象的代理是不精确的,因此在服务端存在着相同类型的不确定性。游戏设计必须考虑到,代理对象不可能和它们所对应的真实对象完全同步,除非付出巨大的代价。这意味着游戏系统必须对很多很简单的玩家交互进行异步处理(譬如说,使用消息传递)实现以避免使用可能失效的数据。异步处理的本质导致我们需要解决大量的失败情况。不仅如此,代理对象缺乏同步是很多错误的根源,而这些错误可能会被玩家滥用
2.对设计的影响
实践中,几乎每个游戏系统(移动、战斗、角色升级以及制造)在无缝世界中都会变得更为复杂并且更容易发生错误。这会直接导致开发周期延长或是使游戏变得更不稳定,更可能是两者都有。
4.构筑游戏世界构筑游戏世界就是创造游戏发生的物理世界的过程。构筑游戏世界的任务包括地形建模、贴图绘制和对象放置等。显而易见,建造一个无缝世界比建造一个分区世界要困难很多。刚开始的时候,整个世界可能太大了,以至于无法把它作为一个整体进行编辑,因此,游戏编辑人员需要能够在更小的分块上工作,再加上多个游戏世界构筑人员需要同时进行工作,显然他们需要使用一个基于分块的版本控制系统来管理对游戏世界的并发访问。
游戏编辑人员需要花费额外的时间来“整理”那些由不同人员编辑的区域边界。在放置大型对象时需要格外小心,因为它们可能会跨越服务器边界而导致问题的产生。如果假设在同一建筑物中的对象应该在同一服务器上(可能是为了有效地进行裁减),那么和潜在服务器边界相交的建筑物必须改变位置。
与之相反,在分区游戏世界中,编辑人员可以在一个既没有边界区域也没有放置限制的连续区域中工作。虽然这仍然可能需要某种形式的锁定方式,但是它可以在一个更高的粒度(譬如说地图文件)上进行,而不是在整个游戏世界的任意子集上进行。
5.美工
令人难以置信的是,在无缝世界中就连美工制作也会变得更为复杂。创建像建筑物那样的大型对象会受到服务器边界区域大小的影响;任何对象的最大尺寸必须小于共享边界的大小;否则,这样的对象可能会由于跨越边界区域而导致问题。
6.运营和扩展
要在一个无缝游戏世界中创造更多的内容仍然需要游戏开发人员更多的努力。此外,如果游戏运营团队中的人员不是出自原始的开发团队,他们就可能会忘记无缝服务器带来的大量问题和限制,而这会给运营团队带来很大的麻烦。
不仅如此,大量对游戏的侵入行为会在服务器边界上发生。即使在分区世界中,物品复制也是一个比较常见的问题。然而,在服务器边界上更容易进行物品复制的根本原因是竞争条件。代理和相应的对象不能保持完全同步会导致大量的失效状态的错误。发现并且修复这样的错误将是运营团队的主要职责之一。


设计人员可能会有这样的疑问:既然无缝服务器会带来那么多的麻烦,为什么还有人想使用它呢?即使不考虑那些难以处理的游戏设计需求,设计人员也应该选择分区世界。事实上,作者的看法是并不值得为无缝服务器付出那么大的努力。它不仅会导致开发时间变长,还会增加每一行代码的复杂度,并且限制了游戏中可以做的事情。花费在为无缝服务器边界制定规则上的时间可以用来把游戏系统变得更为有趣和复杂,创建一个细节更加丰富的游戏世界、制作更多的贴图/模型/动画或是更早地发行游戏。简而言之,那些时间可以被用来在更短的时间里制作出一个更好的游戏。
然而,就像塞壬(Siren,希腊神话中的女海妖,她们用歌声诱惑海员,从而使船只在岛屿周围触礁沉没)的歌声一样,无论从游戏模式角度还是从技术角度出发,人们都很难抵抗一个无缝世界的诱惑。对那些对此感兴趣的服务端程序员来说,这还是一个非常有趣的研究项目。程序员们可以去实现一个无缝世界,但惟一要小心的就是那些陷阱。
最后,是否使用无缝服务器是在设计一个MMP游戏时必须考虑的关键问题之一(如果不是最关键的话)。谨慎地做这个决定,并且尽早做出决定
原创粉丝点击