UNITY3D大地图建议 - 大大太大



使用Unity3D引擎。我使用Unity的标准网络制作多人游戏,以娱乐。如果服务器拥有25-50名玩家,则建议使用什么地图尺寸?在为有效的游戏玩法太大之前,我可以制作一个非常详细的地图?如何优化大型地图?任何想法和建议都会很棒,我只想学习,并且在Google上找不到有关此的信息:D

*我的地图切成不同的部分。

地图本身的大小,单位,完全无关紧要。请记住,统一(作为其他游戏引擎)使用浮子进行几何形状,并且当浮点值变得太高或太低时,事情就会变得有趣。

重要的是您的逻辑,网络和渲染引擎必须通过的数据量。这些都是不同的东西,甚至是逻辑/网络数据,并且限制了这些内容,这在很大程度上取决于您的游戏的体系结构。

让我们谈论网络。在那里,两个参数对于您的限制至关重要:带宽和延迟。带宽是您可以传输多少数据,而延迟是多快。好的,这种解释令人困惑。想象一下,一辆装满了从一个城市到另一个城市的HDD的卡车:它具有巨大的带宽,您可以以这种方式转移整个数据中心。但是,信号的延迟时间是几个小时。另一方面,来自这些城市的两个不同的人可以跳上气球,在夜空中互相看着对方,然后打开和关闭手电筒。这样,他们将只能交换一个信息,但可能的延迟最低:您不能比光快。

这也取决于您的网络工作方式。例如,RTS游戏通常使用锁定步骤多人游戏体系结构可以在数千个单元上运行,但只能在用户之间交换有限的数据:其输入命令。另一方面,第一人称射击游戏在很大程度上依赖延迟(锁定锁定会损坏):10毫秒时,当您跳跃和开火时,火箭发射器比您说要进攻的部队时要重要得多。因此,网络逻辑的组织方式有所不同:每个播放器的计算机都会预测将会发生的情况,但是中央服务器对实际发生的事情有授权。当然,我现在正在写的只是可以使用架构的一般示例。选择正确的网络方法非常困难,但非常有趣和创造性的任务。

现在,逻辑本身。实际上,除非是物理学或AI,否则现代游戏中使用的大多数游戏逻辑都相对简单。由于同步问题(请记住浮点部?),在多人游戏中使用物理学就足够棘手了。通常,可以影响谁获胜和输掉的人的实际逻辑非常简化:级别的几何形状完全静态,字符在没有真正的物理力的情况下使用Easy Logic移动,并且物理通常仅限于碰撞检测。当然,您会看到许多基于物理的视觉内容:杀死敌人的ragdolls掉下来,瓦砾爆炸飞来飞去;但是这些通常在不同的计算机之间被脱离同步,并且实际上不会影响游戏本身。

最后,渲染。在这里,许多不同的约束都可以放置。为了说明所有这些内容,我必须描述不同设备上统一的整个渲染渠道,这显然是这个问题的范围。值得庆幸的是,还有另一种方法!理论上的理论上不只是为了实用原型。在场景中放入不同的游戏资产,将其运行在目标设备上,然后查看其性能。调整,重复!这些游戏资产可能完全丑陋或无关紧要。但是,它们必须具有与您在真实游戏中要使用的相同的技术属性:多边形的数量,纹理,着色器等的尺寸等。例如,您要创建一个COD - 像多人射击游戏。为了提出您的渲染要求,只需使用NXN纹理放入n个多边形的n个环境模型,将n个字符带入带有n骨头的骨架动画的n个字符,也不要忘记一些伪造的逻辑,这些逻辑会模仿CPU-INTENSTIVE物质,因此您的性能测量将更加现实。当然,这不会给您最终的照片,但这将是一个很好的开始方式,在您开始生产大量艺术品资产之前,这是很棒的。

总的来说,游戏的完善优化是一个非常广泛且有趣的主题,不可能为这样一个问题给出确切的答案。

您可以改进这种减少相机的剪裁平面以降低可见的渲染距离,并且也可以改进LOD,从而使您的切片零件具有较小的细节。检查此链接以获取有关LOD的更多详细信息:

http://docs.unity3d.com/manual/class-lodgroup.html

如果您需要更多的改进,则可以根据玩家的距离来制作一个脚本以在运行时加载地形。

首先,首先:游戏工作,以后对其进行优化。过早的优化是浪费程序员的时间。

其次:想想天际和我的世界。当您四处走动时,世界分为碎片。使用这种方法(将您的世界碎成碎片),您几乎可以拥有无限的世界大小。

相关内容

  • 没有找到相关文章

最新更新