我一直在开发游戏引擎,并且一直在探索和阅读诸如各向异性过滤,环境光遮挡,抗锯齿等游戏技术。
通常在游戏中,您可以打开或关闭这些设置。但是,如果这些设置只增加肯定值,那么是否有理由在开发者的游戏引擎中为其添加切换值?
我了解性能是一个主要因素,但是还有其他原因为什么这些设置始终可以更改?
我一直在开发游戏引擎,并且一直在探索和阅读诸如各向异性过滤,环境光遮挡,抗锯齿等游戏技术。
通常在游戏中,您可以打开或关闭这些设置。但是,如果这些设置只增加肯定值,那么是否有理由在开发者的游戏引擎中为其添加切换值?
我了解性能是一个主要因素,但是还有其他原因为什么这些设置始终可以更改?
Answers:
通常,性能是用户可以打开和关闭这些功能的主要原因。通常,它们很昂贵,并且通过允许用户将其切换为开发者,扩大了有效运行游戏的机器范围,使其包含更多低端机器。这意味着潜在的更多玩家,因此潜在的更多销售额(假设这些玩家可以在视觉保真度降低的情况下生存)。
正如@Artelius指出的那样,这些高级功能还可能会给电池寿命或风扇输出带来更大的损失,因此用户可能出于这些原因希望禁用它们。
最后,它只是为用户提供他们喜欢的选择。某些人可能不喜欢抗锯齿外观,或者禁用垂直同步会导致屏幕撕裂。举个更实际的例子,考虑永恒之柱,它具有启用或禁用字体连字的选项。就运行时性能而言,这些代码可能不会花费那么多,但是某些用户可能会觉得文本难以阅读。或者(如@SeanMiddleditch指出的那样),可能要禁用一项功能,因为该功能在单台计算机上存在故障。或者有人可能想要禁用某项功能以获得竞争优势(例如,通过禁用嘈杂的视觉效果来干扰机械性能)。
正如Josh Petrie已经指出的那样,最重要的问题是性能。您不仅不知道最终用户硬件的功能多么强大,而且在构建引擎时,您甚至不知道人们将如何使用它。也许游戏开发人员想开发一款在屏幕上放置如此多多边形的游戏,即使最好的硬件也无法在不关闭效果的情况下实时渲染它?但是自动进行处理可能也不是一个好主意:也许开发人员想要决定对哪些对象禁用哪些效果。
但是除了性能外,它还可能引起美学上的关注。
例如,从各向异性滤波切换到最近邻插值并使用低分辨率纹理或放大的Sprite会产生怀旧的像素艺术外观。Minecraft是执行此操作的游戏的一个流行示例。当然还有许多复制其美学的游戏。不是因为他们不知道如何做得更好,而是因为他们不想这样做。
当然是性能。诸如黄昏射线,景深和光晕之类的某些效果会严重影响fps,尤其是在较旧的GPU中。获得一些额外fps的一种好方法是减少或禁用反射和阴影。此外-重复Artelius的观点 -视觉效果也会影响电池寿命。
除此之外:
Moded Minecraft确实是个不错的选择。Minecraft渲染整个块,因此其多边形数量大于看起来的数量。加上将块放置在收集的垃圾上并且没有指针语言(例如Java [1])的复杂性,您可能会遇到一些性能问题,尤其是在旧硬件中,一如既往。有些人要求更好的图形,而另一些人希望更好的性能。因此,诸如GLSL Shaders Mod和Optifine之类的mod都应运而生,它们都添加了额外的图形选项-尽管它们在不同的方面-它们是兼容的[2],如果您有机会使用它们,则可以尝试一下视觉效果。
[1]:微软基于袖珍版开发了适用于Windows 10的Minecraft C ++端口-与旧版Java版本相比,性能要好得多。这并不意味着Java无法执行,这不仅是C ++的症状,而且是Microsoft的症状。
[2]:实际上,这些mod合并为Minecraft 1.8.9- Optifine吸收的GLSL Shaders Mod。
您说您正在开发一个游戏引擎,因此您希望您的代码有机会被许多不同的游戏重用。允许游戏开发人员决定是否要使用这些效果,以及是否要提供禁用它们的选项是一个好主意。并非所有效果对所有游戏都有意义,某些游戏可能取决于某些效果。
考虑到某些游戏将使用这些效果来设定情绪,向玩家传达信息或仅出于艺术许可的目的。
特别地,存在使用视觉效果来尝试使外观看起来像由照相机而不是人眼看到的趋势。这是通过使用诸如色差,镜头光晕,胶片颗粒和其他“电影”效果的效果来尝试的。这些并不是每个游戏都适合的,因此不应由游戏引擎强加。
可以说,大多数(如果不是全部)都是在着色器中完成的,让您的游戏引擎允许开发人员上传其着色器。
有关“辅助功能选项”的注释:许多视频游戏无视聋哑人。仅以听觉方式提供信息可能不够好。添加视觉效果以反映诸如进来的火的方向或附近敌人的存在(您“可以听到”)之类的东西是个好主意[3]。当然,还有字幕。另外,请注意,有色盲人……那些只能按颜色区分的物品……是的,被认为是重新设计的。
[3]:当您什至听不到嘶嘶声时,您只是不知道Minecraft中的那些爬行者会有什么痛苦。他们成为随机的研究所。
越了解★
别人尚未提及的东西:
对于某些与性能无关的设置问题,禁用图形功能可能是一种有效的解决方法。
仅举一个例子,在Wine上运行Windows游戏(Linux的Windows兼容层)时,某些图形选项根本无法在给定的渲染引擎上正常工作。
对于某些(故意未命名的)游戏,我需要将过滤调整为三线性,并禁用反射。不是因为我的装备不符合要求(确实如此),而是因为如果我不遵守,则会出现故障和崩溃。
在另一个游戏中,您必须为运行nVidia卡的任何装备(甚至在本机Windows上)禁用“雾化”效果,因为它们始终使雾化为100%不透明。
这东西是在其他的答案/评论提到,但实际上是一个理由不做出一定的设置(如枝叶密度,GRAS)可选:
对手在竞技游戏中的知名度。
如果玩家可以通过将游戏的“外观”设置为“非常差”来获得竞争优势,那么您将通过两种方式损害游戏体验:
尽可能避免这种情况。对于低性能的装备,使鹅肝和树叶显得笨拙,但请确保较低的设置不会带来游戏性优势。
即使不考虑性能,参加竞争性在线游戏的玩家也可能更喜欢更简单或更清晰的视图而不是更美丽的视图-许多视觉选项增加了视觉逼真度,但模糊了玩家实际想要看到的东西。
如果您将游戏客户端配置为禁用各种额外的草叶,特殊效果,烟/雾/火等,则很容易在游戏中发现或瞄准敌人,这很容易。不利。
其他答案很好,但是我认为它们没有很好的示例,您可能需要关闭这些效果。
对我来说,例如GTA3确实便宜又可怕的“运动模糊”使游戏变得更糟。幸运的是我可以将其关闭。
还没玩过,但是我从GTA5看到的是另一个很棘手的解决方案,如果我尝试GTA5,我会禁用它。(请参阅https://www.youtube.com/watch?v=VjIhl8hbO18)