这个问题有点棘手,但我会尽力弄清楚。
可以说我正在构建一个在线游戏(不是MMO规模),但是通过权威的服务器方法可以支持尽可能多的玩家。我想真正的大与世界很多 AI模拟敌人。
我知道一些通过细分空间而不处理不需要处理的东西来节省服务器CPU的策略。我已经按地区划分了世界,这需要加载时间和较小的过渡时间,我认为这对于保持本地(单独或什至有几个朋友)玩游戏时的游戏质量至关重要。我不希望球员出现在一个或两个以上的地区。
问题在于,一个区域可能会变得很大,并且一次模拟了很多NPC。在不影响玩家体验的情况下如何处理?表格中没有像每个区域一台服务器之类的方法。
我主要是在寻找能够容纳成群的敌人,甚至是和平的NPC的数据结构。要最终确定问题,请注意,由于存在车辆,因此车辆在某个区域内的行驶速度相当快,会影响“何时”驶向剔除区域。
您是否仅限于一台物理服务器?
—
Patrick Hughes
最终,没有。但是出于简单性和可实现性的考虑,就目前而言,我无法使该项目更加复杂:)
—
Grimshaw 2012年
从简单开始。像《魔兽世界》这样的东西确实在每个“服务器”的多个物理盒子上运行,只是将它们的世界划分为一个网格,所有更新都基于与您位于同一盒子中的用户。非常简单,易于调整,运作良好,您只需要一个盒子就可以使用它来控制处理。
—
Patrick Hughes 2012年
我完全同意您的观点,也许我错过了我的问题。如果框的单元格的最右边有一个玩家,而右侧相邻单元格的最左端有另一个玩家怎么办?他们应该见面!世界一直在寻找类似《魔兽世界》这样的游戏。这是我不明白的,如何建立一个连续的世界网格,同时又保持其效率?当然,在某些情况下,来自两个“服务器”的玩家应该互相见面:)
—
Grimshaw 2012年
是的,如果您要拥有很多东西,并且您周围有很多玩家,则确实必须计划一切都可以随时随地活跃起来,这没有什么神奇的办法。这就是为什么MMO服务器组中的单个盒子最多只能服务200-500个玩家的原因,以及NPC的MMO AI可悲的愚蠢(又名便宜)。
—
Patrick Hughes