跳到正文

AI Improvements: Performance Tuning

优化原版 AI 的性能,并可关闭某些 AI 行为

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

注意 1:如果你遇到了未涵盖的性能问题,欢迎提出请求。\
注意 2:本模组并不保证在所有情况下都能提升性能。请务必测试你的结果,以确认你是否需要它。

关于

一个简化的 AI 修改模组,专注于性能以及对游戏中 AI 的底层修改。弥补原版游戏的不足,并为模组生态进行改进。处理诸如动物过多、僵尸群造成的性能损耗,以及大型 AI 改进模组所跳过的简单移除任务等常见问题。

背景故事

AI Improvements 诞生于为大型重度模组服务器提升性能的需求。任何有经验的服主都知道,服务器的 CPU 时钟时间会被各种争抢资源的模组消耗殆尽。大多数服主和开发者会试图通过精简模组来解决这个问题。而我没有从已安装的模组入手,而是开始研究 Minecraft 本身。重点关注它的设计运作方式,以及它如何导致性能问题。

我发现,随着服务器人数的增长,实体和其他资源的数量也会随之增长。起初,我想“让我们降低服务器上生物的生成率吧”,这引发了关于刷怪塔的抱怨。即便经过测试,也没有显示出能大幅解决问题的方案。因此,我没有采用那种方法,而是决定改进 AI 的运作方式。这带来了大量资源和针对不同领域的深入见解。经过许多个小时,我找到了我的解决方案,并创建了这个模组。

常见问题

我安装了但没有看到承诺的大幅提升?\

较新版本的 MC 已经实现了对 AI 的修复。在最近几个版本中,除了其他修复之外,还实现了旋转修复。因此,本模组的影响远低于旧版本。

这个可以只安装在服务端吗?\

可以,本模组的编码使其无需客户端也能运行。

这个可以只安装在客户端吗?\

可以,不过它可能对提升 fps 帮助不大。

配置文件在哪里?\

.minecraft/config/bbm/AI_Improvements.cfg

如果我禁用 EntityLookHelper 替换会发生什么?\

你不会在 AI 代码中看到太大的改进。不过,如果你启用了其他禁用配置,应该也没问题。

这个模组是如何修复性能的?\

这取决于功能和 Minecraft 版本。大部分性能提升来自于对大量计算值的缓存。其结果是减少 CPU 时间,代价是可忽略不计的内存占用。具体细节请参阅功能列表……

当前功能:

用于禁用 AI Watch Closest Entity 的配置

默认情况下,该配置设为 false,不会做任何事。当改为 true 时,它会移除一个名为 EntityAIWatchClosest 的 AI 片段。该 AI 片段负责处理编码 AI 将头部转向附近实体的行为。在视觉上,这会导致一些奇怪的问题。然而,对于 CPU 而言,这释放了大量由实体造成的占用。

用于禁用 AI 随机环顾的配置,该配置默认未启用

默认情况下,该配置设为 false,不会做任何事。将配置设为 true 会使实体不再使用“空闲环顾”AI 代码。这可以提升拥有大量人口的服务器性能。因为地图上几乎每个实体在无所事事时都会使用它。在视觉上,这有时会导致实体头部不旋转,但大多不会被注意到。

用于将 EntityLookHelper 替换为更高效版本的配置,该配置默认启用

这是该模组的主要功能,能以少量内存为代价大幅提升 CPU 性能。其原理是将 MC 的查找辅助代码替换为自定义版本。自定义版本会存储一些数据,从而更快地获取某个位置的角度。通过 VisualVM 进行的一些测试表明,AI 代码的 CPU 占用降低了 50% 到 80%。对于一个持续有 25 人在线的服务器,这带来了 5 到 7 tps 的提升。

评论

登录后评论和评分