《全面战争:幕府将军2》(Total War: Shogun 2)发售至今已逾15年,近日迎来了一款由社区开发的性能优化补丁。据称,该补丁在受限于CPU的战斗场景中可将帧率提升约50%,而在战役地图上的提升幅度更为可观。

这款名为s2fix的开源模组由模组作者Meisgoot312开发,最初针对的是近期发售的《全面战争:幕府将军2——完整版》(Total War: Shogun 2 – Complete Edition),可实现30%以上的性能提升。但开发者随后发现,该重制版保留了2011年原版中许多相同的渲染瓶颈,因此这些优化同样可以移植到两个版本上。
问题的根源在于《幕府将军2》低效且严重依赖单线程的渲染管线。尽管游戏会调用多个CPU线程,但大部分渲染工作——包括准备并向GPU提交绘制调用——仍集中在单一主线程上。这造成了严重的CPU瓶颈,导致现代显卡的性能被大幅闲置,在大规模战斗中尤为明显。
为解决这些限制,s2fix引入了一系列引擎级优化,包括利用DirectX 11延迟上下文实现多线程绘制调用提交、改进渲染列表排序、更高效的缓存机制、并行化渲染工作负载,以及优化CPU线程分配。原版游戏还受益于现代化的翻转模型呈现路径,有望减少帧生成节奏问题和输入延迟。
根据开发者进行的大量测试,这些改动在多个测试场景和帧率百分位下均带来了约50%的性能提升,其中一项基准测试从142帧提升至210帧。GPU利用率同时从约40%升至70%–80%,充分说明原渲染管线浪费了多少性能。
值得一提的是,新发布的s2fix v0.2.3版本更进一步,解决了战役地图上的额外瓶颈。通过缓存此前冗余的派系关系和角色外观查询,开发者报告称,一个空闲的战役地图场景从62.6帧提升至148帧,涨幅高达136%。此次更新还将原版游戏报告的显存上限从约3GB提升至近4GB,这也是其引擎所能支持的上限。
当然,这些数据均来自开发者自行测试,尚未在不同硬件配置上经过独立验证。性能提升幅度也在很大程度上取决于游戏是否受限于CPU,而非已经跑满GPU。
该模组可通过GitHub Releases获取,分别为32位原版游戏和64位完整版提供了独立安装包。安装时只需将相应文件解压到游戏目录即可,且需要DirectX 11支持。兼容性测试主要基于英伟达(NVIDIA)驱动,不过开发者表示,该模组与多款热门玩法模组一同测试时也运行正常。
即便搭配现代高端CPU,《全面战争:幕府将军2》的战役地图仍难以维持高帧率,主要原因是其老旧的引擎代码效率低下,无法充分利用当今的多核处理器。
考虑到世嘉(SEGA)与Creative Assembly曾因完整版质量饱受批评而将其暂时下架,这一成果尤为难得。这也延续了我们近期对《全面战争:罗马2》(Total War: Rome II)CPU性能修复补丁的报道——该补丁使平均帧率最高提升20%,0.1%低帧提升33%。社区模组作者(借助AI编程助手)在Creative Assembly这些老旧策略游戏中不断挖掘出如此多未被释放的性能,着实令人惊叹。


