《群星》版本更新 - 4.3 - 性能优化与线程改进
《群星》4.3版本性能大提升!对比3.14版,游戏速度翻倍,优化线程与CPU效率。查看详细测试数据与补丁说明,体验更流畅的太空探索!
问候,太空旅行者们!
今天我们将通过图表和对比视频来看看4.3‘Cetus’公开测试版的变化对性能产生的影响。
提醒一下——在Cetus周期内,开发日志将以每两周一次的频率发布。
早在3.14版本时,我们在《群星》许多系统的优化方面已经达到了极限。在4.0更新中,我们将行星和人口系统改为一个能为未来性能改进提供更好基础的系统。随着减少舰船数量和平衡经济的设计变更,通过4.3版本我们终于能够兑现一些承诺的改进。
我们一直在并行运行不同版本《群星》的对比测试,虽然版本之间的重大差异意味着我们无法进行直接比较,但我们尽量减少了差异。
今天我们将展示3.14.1592653与4.3版本的对比,使用默认设置——除了是在一个巨大星系、士官难度下,以普雷索林灾星作为危机。这次运行中禁用了自动保存,以免干扰录制。这两个版本都在同一台高端Windows机器上运行,配置为i9-14900K处理器、32GB内存和GeForce RTX 3060显卡,由于其中一些变化依赖于硬件,我们非常感兴趣听到你们在Cetus公开测试版中的性能体验。
这里有一个查看每年秒数的图表,使用[c]-gamestatetimer[/c]命令行参数从.tsv文件生成。
-gamestatetimer?解释一下。
如果你在《群星》的启动选项中添加[c]-gamestatetimer[/c],游戏将在你的日志目录中生成一个游戏状态计时器日志。

我的命令行参数。
这是一个制表符分隔的文本文件,看起来像这样:
[c]游戏日期 时间单位 秒数[/c]
[c]2200.01.01 微刻 0.000611[/c]
[c]2200.01.01 微刻 0.001599[/c]
[c]2200.01.01 微刻 0.006324[/c]
[c]2200.01.01 微刻 0.008577[/c]
[c]2200.01.01 微刻 0.000912[/c]
[c]2200.01.01 微刻 0.002078[/c]
[c]2200.01.01 微刻 0.000530[/c]
[c]2200.01.01 微刻 0.001898[/c]
[c]2200.01.02 微刻 0.073470[/c]
[c]2200.01.02 微刻 0.003261[/c]
[c]2200.01.02 微刻 0.000590[/c]
[c]2200.01.02 微刻 0.001874[/c]
[c]2200.01.02 微刻 0.001394[/c]
[c]2200.01.02 微刻 0.011386[/c]
[c]2200.01.02 微刻 0.001238[/c]
[c]2200.01.02 微刻 0.002009[/c]
[c]2200.01.02 微刻 0.000521[/c]
[c]2200.01.02 微刻 0.001725[/c]
[c]2200.01.03 微刻 0.023613[/c]
[c]2200.01.03 日刻 0.047612[/c]
[c]2200.01.03 微刻 0.003535[/c]
[c]\[...以此类推,超过120万行][/c]
将这个.tsv导入电子表格并过滤时间单位只显示年度条目,将给出该日期结束的年份所花费的时间,就像你反复运行[c]one_year[/c]控制台命令三百次一样。
警告:这些文件可能会变得相当大,因为它们记录了微刻时间,最终对于300年的游戏跟踪大约有30MB的文本。
我在那里的[c]-incrementalsaves[/c]启动选项将保存游戏保持在2200、2275、2300、2325、2350年,以及此后每50年直到2600年。我们使用它们来查看有趣自动化运行中星系的发展。
[c]-loadrandomseed[/c]用于减少游戏差异。

3.14版本开始时每年30.52秒,而我们的4.3版本开始时比每秒一个月还快,为11.54秒。直到2269年,4.3版本才减慢到3.14版本的开始时间,此时3.14版本每年需要44.63秒。
4.3游戏在2500.01.01结束,我们在2506年年中结束了3.14游戏,因为此时它已经比4.3视频长了近两个小时。
这里有一个图表显示每个游戏达到指定游戏年份所需的累计经过时间。
我们对这些改进相当满意,但我们也还没有完全完成。
我们今天正在更新Cetus公开测试版,其中一个分支包含了一些更实验性的性能更新。由于这个分支包括实验性变更,我们想提醒人们我们有一个Cetus回退分支,使用上周的构建。在我的内部测试中,这个构建比主要的Cetus公开测试版快约4%,但我们认为我们还能从中挤出更多一点。
三个来自相同保存、相同随机种子的游戏,i7-13700k w/32 GB RAM,RTX 3060 Ti
以下是明天公开测试版更新的初步发布说明:
平衡
改变了Imperious Architecture的缩放
增加了基于目标舰船大小增加伤害的武器的最大伤害缩放。
减少了议员技能等级对议程速度的影响。
Loyalty Circuits已被Compliance Filters替换为自动改装特质。这意味着增强集市也可以在游戏开始时选择它。
增强中心现在为驱灵死机制造者提供400个工作岗位
常规帝国的增强器工作岗位现在提供固定奖励人口增长,而不是对现有人口增长的乘数。
合成生育现在以动力外骨骼开始
显著改变了世界吞噬者契约力量和光环
世界吞噬者的毁灭力量不再立即开始战争。
世界吞噬者的光环强化不再从无到有召唤舰船。
世界吞噬者的光环强化现在增加你的毁灭强度。
毁灭力量现在显现世界吞噬者的毁灭舰队。
在3到6强度之间,这支舰队只有牙齿(护卫舰)。
在6到12强度之间,这支舰队有牙齿(护卫舰)和尖牙(巡洋舰)。
在12或更高强度时,这支舰队有牙齿(护卫舰)、尖牙(巡洋舰)和獠牙(战列舰)。
强度上限为50。
舰船数量取决于毁灭强度。
显现新舰队将立即解散任何当前舰队。
舰队将出现在任何有世界吞噬者圣所的行星轨道上(或者如果不存在,你的首都)。
错误修复
难民吸引力完全不起作用,哎呀。
跨平台云保存系统现在按预期工作。
整理了一些与 Cybernetics 相关的工具提示。
移除了深空要塞可建造区域的闪烁。
火焰先知现在只在一个帝国的主要物种宜居性\<=50%时出现(之前是任何本地物种)
荒野帝国现在在将火山世界地形改造为正常可居住行星时支付生物质
修复了command_limit_mult像command_limit_add一样工作的问题。
性能
显著减少了创建太阳朋克国家时的延迟峰值
优化了与字符串相关的函数
优化了警报管理器中的内存分配
改进了舰队图标逻辑
在公开测试版中添加了实验性的经济线程变更
新的依赖跟踪应减少更新时的CPU等待时间并减少“月度卡顿”
减少了线程批处理的大小,对于数量多且CPU需求变得不均匀的对象,以便在多个核心上更好地分布
在公开测试版中添加了实验性的修饰符线程变更
主要用于重用内存并减少更新中分配/释放所花费的时间
减少了线程批处理的大小,对于数量多且CPU需求变得不均匀的对象,以便在多个核心上更好地分布(这里也是)
对行星、人口组、军队、领袖、舰船和舰队的修饰符计算进行了重大重做
将触发器依赖的计算移到合适的脉冲中(微刻、日刻、周刻、月刻、年刻)
优化了触发器评估的数量
我们有一个。
本周的更新在平衡和错误修复方面略显轻量,因此设计团队将转回那方面,而编程团队将把重点主要转向稳定性和不同步问题。与此同时,我们将密切关注你们的性能反馈和指标。
Davide和我也将从今天开始每周四流式传输4.3版本,展示一些变化并回答你们的问题。来在关键时刻分散我的注意力,这样我们就会被虚空蠕虫吃掉。未来的几周可能会有其他客座明星在那里回答更技术性的问题。

下一篇《群星》开发日志将在2月19日发布!我们可能会再次回顾迄今为止的反馈以及我们在那几周基于反馈所做的一些更改。到时候见!


