《边缘世界》在同类游戏中优化出奇地差,尤其是对于那些玩过《异星工厂》的玩家来说。原则上,原版游戏的运行还能接受。但当你安装了一两百个模组并尝试开启四倍速时,问题就开始出现了。让我们来解决这个问题。 1. 介绍与原理 《边缘世界》在同类游戏中优化出奇地差,尤其是对于那些玩过《异星工厂》的玩家来说。原则上,原版游戏的运行还能接受。但当你安装了一两百个模组并尝试开启四倍速时,问题就开始出现了。让我们来解决这个问题。我要马上说明的是,“凭感觉”衡量性能是个不怎么样的想法。这就像优化Windows系统——你似乎禁用了某些东西,但专业人士却会因此发笑。你可以通过每秒帧数(ticks per second,以下简称TPS)指标来判断《边缘世界》的实际运行性能,即每秒重新计算游戏状态的次数。可以通过模组启用显示功能;有多种选择,但【Dubs Performance Analyzer】模组是我们仍会需要的。现在让我们定义“卡顿”。当当前TPS值显著低于游戏提供的特定速度下的标称值时,游戏就会被认为运行缓慢。游戏的标称速度为60TPS,第二档速度快三倍,为180TPS,第三档速度快六倍,为360TPS。第四档速度的模组会尝试让游戏计算得更快,例如【Easy Speed】模组会要求900TPS。在本指南的框架内,这项功能无疑是个加分项。问题在于,模组必须为不同的缩放级别准备不同分辨率的相同图片(而且你也安装了【Camera+】这款模组,对吧?)。用于不同场景的备用图片数量由【各向异性过滤等级】参数决定。如果没有针对当前缩放级别的现成图片,系统会实时计算,而计算的质量(即复杂度)由【MipMap偏差】值决定。那么……当【各向异性过滤等级】设为4时,备用图片的数量会使图像内存占用增加三分之一,而在较低的过滤等级下,这项技术的帮助不大。结论是什么?将【各向异性过滤等级】设为9。通常情况下,MipMap偏差不会给显卡带来明显负载,但如果你追求极致性能,可将其设为0(若不介意放大时出现轻微模糊,设为0.25即可)。如果你的旧笔记本内存较小,建议关闭启用Mip-Mapping选项。3.4.2不过我相信,大多数人可能忽略了【Graphics Settings+】模组的一个功能(这也是在禁用Mip-Mapping时仍需要该模组的原因),那就是它能够加载模组中.DDS格式的纹理(前提是这些纹理存在于模组内)。与标准的.jpg格式的这些纹理不需要处理器花费时间进行解码(它们由显卡硬件解码),如果问题出在处理器上,这能略微提升性能(同时还能将加载时间缩短约两倍,减少显存占用并提高这些纹理的清晰度)……但前提是模组中存在.dds纹理。它们存在吗?怎样才能让它们存在呢?这里有一个很棒的工具能帮到我们——RimPY,它是一款模组管理器,也是自动设置加载顺序的基础工具。有些人还会喜欢它能直接从Steam下载模组和合集的功能,但这部分内容会在另一篇指南中介绍。 3.4.2.1. 如果你安装了Fluffy的ModManager模组和ModSwitch模组,请禁用它们。以后不再需要它们了。 3.4.2.2.订阅Rimpy的数据库模组【RimPy Mod Manager Database】(无需激活该模组,激活没有意义,还会在日志中产生额外错误)。下载、解压并直接运行RimPY工具。确保游戏和模组的路径已成功识别,必要时手动填写正确路径。点击【排序】按钮对模组进行排序,然后点击【保存】按钮保存排序顺序。现在开始直接生成.dds纹理。点击【优化文本】按钮,在弹出的窗口中,使用【选择激活项】按钮选择激活的模组。注意,只需勾选【仅转换新纹理】复选框来添加新纹理。编码器由B7enc压缩器选项卡决定:CPU编码器是肯定能运行的,而GPU编码器如果能工作的话,会产生更好的效果且完成速度更快。我们通过点击【转换纹理】按钮开始处理(是的,这需要很长时间;如果进度条没有出现,请选择CPU编码器并重新开始)。感谢Paladin(RimPY的俄语作者)和Bradson(纹理重新编码部分的作者)。在GS+模组的设置中有第二个选项卡,你可以在那里查看显存消耗情况。任何无法装入显存的内容都会减慢内存和显存之间的交换速度。 3. 图形(光照、覆盖层、微粒) 3.在相邻的指南中提到,如果情况确实很糟,可以通过开发者模式禁用阴影和动态光照显示。我没有尝试过,但这似乎是合理的。此外,如果你安装了影响光照的模组,这会相当消耗TPS,因为每个物品的动态光照会在每一刻重新计算整个地图的光照表。而且,这不仅仅是发光物体——【Don't block door light】模组也与此相关。还有一个可以关闭阴影的模组【No Shadows】。另外,在另一篇指南中建议为游戏禁用Steam覆盖层——但我对这是否有帮助持怀疑态度。在游戏设置中可以禁用植物摇曳效果。这能带来性能提升,但提升幅度很小。7. 如果你有大量殖民者、动物(或者比如说虫子)同时睡觉,建议关闭睡眠时弹出的Zzz动画。这些看似只是图片的动画,实际上是完整的游戏对象,它们的生成和消失过程意外地比较缓慢。可以使用【No ZzZ】模组来解决这个问题。这类通知在游戏中通常被称为“粒子效果(motes)”。 3.8. 带有标记的额外图层(覆盖层),如屋顶、土壤肥力、堆叠数量等,会显著影响游戏的每秒帧数(TPS)。建议只在必要时使用这些图层。带有数字和角色名称的覆盖层可以通过【Toggleable Overlays】模组暂时关闭,如果你正在使用【Camera+】模组,也可以在其设置中进行关闭。 4. 卡片大小 游戏过程中,不要显示过大尺寸的卡片。游戏会对整个地图进行每秒多次的大量计算。因此,性能下降与地图大小呈非线性比例关系。通常来说,多个殖民地是“罪魁祸首”。为了让你明白问题的严重性:如果你仅有的一个殖民地,通过【直接放弃殖民地】模组将其删除,那么游戏的每秒帧数(TPS)会飙升至5000。这也是为什么《边缘世界》的设置中会有玩家殖民地数量限制的原因。 如果你在第二个殖民地发生战斗,或者比如在商队附近战斗时,可以使用【派系管理器】模组暂时卸载(冻结)主殖民地。 游戏本身也有警告:如果选择“大型”尺寸的地图,无论是模组兼容性还是性能都会出现问题。而星球本身的大小几乎不会对任何事物产生影响。但派系数量乘以【人口密度】会直接影响性能,尤其是当你安装了派系互动类模组时,例如【边缘战争】和【边缘城市】。 5. 性能模组 (根据用户反馈更新) 5.1 【多线程边缘】 不要与它的实验分支【RT】多线程边缘(实验版)混淆。这是一个本应极为强大的模组,其理念是改进游戏在多核处理器上的并行计算(也就是与上述第2条建议完全相反)。这并非易事——兼容性问题不断出现。不过,截至2022年1月,该模组正在积极开发中。目前,由于兼容性问题,结果存在争议——通过忽略子流错误可以提高TPS(每秒传输帧数),但这最终可能导致存档损坏。安装前需了解当前存在的问题及不兼容的模组。该模组应放在下载队列的最后。RimThreaded团队建议使用RimPY(见上文)来检查兼容性并设置加载顺序。进入游戏后,需配置线程数量。在模组设置下方,你可以看到可能存在不兼容问题的模组列表。注意:每次模组更新后,必须删除Steam库中steamapps workshop content 294100 2222907981 1.3 Assemblies Caches文件夹下的Caches文件夹。因此,如果你在第三速度下仅有200 TPS(每秒事务处理数),那么这就需要处理了。如果你在第四速度下只有400 TPS,没人保证游戏能运行超过360 TPS。不要将TPS与FPS(每秒帧数)混淆。FPS是屏幕刷新率。比如说,一款游戏的TPS可能达到900,但FPS却从标称的60降至10。如果你仍然觉得玩起来没问题,那么FPS下降其实并不算糟糕。你需要明白,每一种措施在你的具体情况中可能有效,也可能无效。因此,在采用建议后,要立即查看该建议是否产生了效果。如果不了解如何撤销某项建议所带来的更改,就不要使用该建议。此模组与本部分的其他模组不兼容。除RWP外,其余模组可协同工作。 5.2 Rim73 - 性能与优化 该模组存在一些兼容性问题。在模组设置中,我们仅启用“心智状态”优化。请将其放在最后下载。 5.3 性能优化器 请将其放在最后下载。保持默认设置。 游戏中的所有界面元素运行时可能会遇到困难,因此如果您不使用某些界面元素(例如右侧通知和右下角按钮),可以在用户界面设置部分将它们隐藏以提升性能。这并非关闭——隐藏的元素在鼠标悬停到相应区域时会显示。4.火箭人 - 性能优化模组 如今它在兼容性和效率方面处于领先地位。必须严格将其放在下载队列的最后。 注意:添加或移除模组以及开始新游戏时,每次都必须在模组设置的【统计缓存设置】部分勾选【自适应模式】复选框。 5.5.运行时垃圾回收 [1.3] 总的来说,这个模组主要是为那些不清理自身内存的模组“兜底”。按理说它并非必需,但如果不愿舍弃那些问题模组,就不得不时不时使用运行时垃圾回收。 5.5.1 设置方法: 5.5.1.1 取消勾选【存档世界角色清理结果】2 你可以尝试勾选自动清理部分中的所有选项(但请注意:在之前的版本中,曾出现过与任务相关角色被错误删除的问题——下一次游戏更新后可能会再次出现故障)。如果你使用了修改堆叠大小的模组,请取消勾选“清除缓存的DefPackages”。 5.5.2 在长时间游戏(约一个游戏年)后,为获得些许缓解,你可以点击(底部命令栏会出现模组按钮)以下选项: 5.5.2.1 清理世界角色 5.5.2.2 更多清理——具体取决于实际情况 5.6 达布斯性能分析器 该模组的主要功能仍是分析,但也提供了一些优化选项。 如果正在使用Camera+模组,请不要在模组设置中勾选“优化 pawn 标签”复选框。如果你正在使用【Predictable Deep Drills】模组,请取消勾选【优化深层 drill】选项。在模组设置中,如果你在游戏中途删除了某些模组,有一个选项可以清理派系和区域的残留数据。第二个选项可以帮助你解决卸载模组后出现灰色屏幕的问题,或者在游戏中卸载【Hospitality】模组时也能派上用场。 5.7 【RWP】这是一个实验性模组。目前存在一些问题,现在下结论还为时过早。我会将其保留以作记录。 5.8 【Performance Fish】这个开发中的模组可在【Dubs Mods】的【#fixlist】频道获取。它已经相当不错,建议使用。安装顺序是在【Harmony】和【BetterLoading】之后,但要在【Dubs Performance Analyzer】之前。注意:更新版本时,必须删除%userprofile%\AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\Config目录下的configurationMod_Performance Fish_PerformanceFishMod.xml文件。 6. 移除不必要的模组 6.1 移除功能重复的模组。例如,你是否研究过热门模组【TD增强包】(TD Enhancement pack)的设置?当我意识到【TD增强包】中已包含某些模组的全部功能时,我移除了7个模组(并非说【TD增强包】是优化的典范)。在仔细研究【Niilo的便利性设置】(Niilo's QoL)后,也进行了规模相近的模组清理。相信我,当你安装这些模组时,其中的内容远比你粗略浏览时看到的要多。因此,重复的模组越少,它们对游戏资源的冲突就越少,浪费的内存也越少,兼容性问题也会相应减少。6.2 带有额外配方的模组会对游戏性能产生显著影响。如果你过度使用【批量配方生成器】模组,可能会使你的每秒帧数(TPS)降低一半。你可以使用【模组精选器】来禁用不必要的配方。6.3 当从正在运行的游戏中移除模组时,请阅读模组描述,了解正确的移除方法。在某些情况下,不正确地移除模组会在存档中留下残留文件,导致游戏运行变慢。6.4. 找出导致游戏出现问题(现在不一定是性能问题)的模组的最快方法称为“二分查找”。禁用正好一半的模组,查看问题是否消失。这样你就能知道问题模组位于已禁用还是未禁用的那一半中。回到该算法的开始,对包含问题模组的那一半重复上述步骤,直到找到那个有问题的模组。当装配512个模组时,最坏情况下你只需9次操作。 6.5. 还有一点:如果你不是从Steam获取的模组,请更新它们。Dubs性能分析器Discord频道的成员会定期帮助作者更新模组以进行优化。在同一个聊天频道中可以找到各个模组的优化版本(例如,目前有优化后的TDEP)。 7. 一些提示 7.1 处理堆叠物品是最常见的卡顿来源。在【While you are up】或【PUAH】模组中,你是否启用了将资源拖到建造和制作地点或合并堆叠的功能?在【Common Sense】模组中,你是否启用了禁止普通菜肴与虫肉混合的功能?这很方便,但也算是一种作弊——现在你得承受后果。或者你可以关闭它,就不用承受了。 7.1.1 许多具有不同优先级的仓库也会迫使我们不断反复检查是否需要拖动物品。 7.1.2 大堆叠模组可以提升性能(对100堆普通玉米进行持续腐烂检查,与对1堆大堆叠玉米进行检查相比)。使用【深度存储】模组时,每个存储单元的堆叠数量不超过10-25个(甚至增加后的数量)会有好处。若将每个单元的堆叠数量增加到10-25个以上,反而会导致性能下降。需要注意的是,当多名殖民者试图占用同一个堆叠以补充或拆解物品时,该堆叠只会对第一个殖民者可见。因此,将所有急救包集中到单个堆叠中可能会对殖民地的健康状况造成危险。 7.1.3 用于保持门通畅的模组本身不会占用游戏每秒帧数,但当门被垃圾堆满时,尤其是当开门时物品无处可放的情况下,会引发严重问题。7.如果你的管理方式允许,给殖民者分配尽量少的他们会跳过的工作,因为游戏会不断双重检查是否需要开始更高优先级的工作。例如:如果你禁用灭火工作,TPS会有小幅提升。顺便说一下,反过来也是如此——闲置的人会更频繁地双重检查是否有工作可做。你也可以使用【个人工作分类】模组来调整工作,将最罕见的工作单独分组并关闭。 有提到使用区域划分也有助于降低TPS。这包括将殖民者限制在特定区域内,以及例如屋顶区域的设置(一旦屋顶建成,就移除该区域)。本指南未考虑清理散热器灰尘、将笔记本电脑切换至高性能模式、使用优质电源、清除病毒及其他垃圾文件等“外部”解决方案。此外,很可能出现处理器、内存和磁盘使用率未达100%,但游戏仍卡顿的情况。这种情况确实存在。例如,由于劣质的游戏代码,处理的数据无法进入处理器缓存,导致在处理器缓存与内存之间交换数据时浪费时间——而这一问题无法通过任何方式检测。解决此问题的唯一方法是移除不必要的模组。4. 如果动物在游戏中基本不参与任何活动,可以在开发者菜单中完全禁用它们(勾选【无动物】选项)。这能显著提升游戏的TPS(每秒帧数)。实际上,大规模畜牧业会导致相当明显的性能下降。 7.4.1 野生动物也属于动物范畴。此外,植物也会略微增加计算量。再比如,【释放囚犯】这一工作会持续遍历地图上的所有生物,以确认哪些是需要释放的囚犯。因此,当你从丛林环境迁移到 tundra(苔原)或沙漠环境时,会明显感觉到TPS的提升。 7.4.顺便一提,此内容所需的模组【SYR】通用发酵桶可优化地图上大量酒桶的处理。7.5 若可能,不要使用“最多制作X个”的生产条件,因为它们会定期重新扫描地图上必要物品的存在情况。具有类似功能的模组(每人一个、殖民地管理器计算机化工作台)会使情况更糟。7.6 限制制作材料的搜索半径,并将仓库建在尽可能靠近生产区域的位置。材料搜索是从工作台开始的,如果附近没有材料,就会逐格扫描整个地图。 8. 识别存在性能问题的模组 8.1 安装大型模组前,查看该模组的评论。如果评测中包含性能、卡顿、缓慢等词汇,可能存在问题。提及了【机械族】【杂项机器人】和【黑客什么鬼】等模组。8.2 有一份过时的问题模组列表,由【Dubs性能分析器】模组的Discord频道成员收集。可以去了解一下。8.8.4 如果其他方法都无效,就必须使用模组【Dubs性能分析器】或其由 Wiri 开发的功能更丰富的衍生版本。你需要自行找出引发最多问题的模组。我注意到第二个链接包含一份非常详细的英文技术指南,介绍如何使用该模组。我们以最高速度启动游戏,并查看该模组的Tick、Update和GUI标签页。在这些标签页中我们要寻找什么呢?我们要找的是那些每tick耗时过长的模组。如果一个tick耗时2毫秒,那么游戏在第三速度下原则上无法达到超过360TPS,因为1秒除以360TPS等于每tick0.002秒。例如,有一张图片显示,仅前5个模组(非行)平均消耗3毫秒。然而,游戏本身也有一定的要求。结果显示,在13FPS的情况下,自然结果为185TPS。此外,点击某条线,你可以查看该模组的CPU时间消耗图表。Dubs Performance Analyzer的作者建议留意那些出现周期性强峰值的图表——这是模组优化不佳的迹象。顺便说一下,如果可以确定的话,图表左侧会显示该线条所属的模组。总的来说,如果你发现某个模组平均使用时间超过0.5毫秒,或者经常出现超过1.5毫秒的峰值,那么就有理由考虑禁用该模组了。峰值的问题在于,多个模组的峰值有时会叠加,导致“浮动”卡顿。如果游戏本身的方法(例如结束当前任务)耗时较长,那么在绘制图表的同一位置,会有堆栈跟踪和补丁标签,你可以尝试通过它们找出哪些模组干扰了该方法。确定有问题的模组后,你可以: 8.3.1 深入有问题模组的设置,禁用部分功能(如果有此选项的话,例如TD增强包) 8.3.2 前往模组的Steam页面,查看作者是否提供了有关性能的提示。或者请求作者优化模组。 8.3.3 忍受并继续使用(边缘世界 HUD,你虽然占用资源,但我没有可替代的模组)4 移除整个模组(【更好的重量】,我会想念你的) 9. 结论 原版指南可在Steam上的《边缘世界》手册中找到。其他所有内容均为复制粘贴。作者从以下人员提供的工具和建议中获得了极大帮助:Paladin、Bradson、Madman666、Wiri、Dubwise、Alu、Taranchuk、Nickodemus、Riddlesworth II、Mehni。如果你有不同意见,或有补充内容,请发表评论。绑定处理器核心(适用于Windows系统) 《边缘世界》从CPU角度来看是一款单线程游戏(实际上它具备多线程能力,但优化欠佳)。这意味着,大多数情况下,游戏仅会占用你性能强劲的处理器中的一个核心,此时更高的处理器频率比更多的核心数能带来更显著的性能提升。不过,Windows系统虽然智能,有时却显得过于“聪明”,它会尝试将游戏的部分运算任务分配到不同核心上并行处理。遗憾的是,这种做法会产生一种名为“上下文切换”的额外开销。因此,将游戏绑定到更少的核心上,我们可以获得一定的性能提升,尤其是在系统同时运行其他任务(如直播)的情况下。游戏运行时,打开任务管理器(按住Ctrl+Shift+Esc),切换到【详细信息】选项卡,找到【RimworldWin64.exe】进程,右键点击该进程,在右键菜单中选择【设置相关性】,逐步减少选中的核心数量,直到这一操作产生积极效果(例如,作者在4个可用核心中选择了3个;选择2个核心相比3个核心没有提升,但选择1个核心会导致游戏每秒帧数下降)。将进程绑定到非相邻核心(例如0、2、4等)也可能产生效果,因为相邻核心有时只是逻辑核心而非物理核心。遗憾的是,每次启动游戏时都必须重新进行此操作。 3. 图形(显卡、纹理) 3.1 游戏对GPU的利用率很低。如果你使用的是性能较弱的视频加速设备(例如搭载集成显卡的笔记本电脑),并且这是导致问题的原因,那么你可以深入显卡驱动的设置(例如在英伟达控制面板中),并根据提示将所有设置调为最高性能。但在大多数情况下,只有提高帧队列的设置才会产生一定效果(预准备帧数设为4,低延迟模式设为关闭等),其目的是减少处理器与显卡通信时的开销。




换一换 
























