XSEED 原文网址:
https://goo.gl/yJyTDZ
来自闪之轨迹吧网友翻译: 翻译作者:昀山雾雨
https://goo.gl/dPUeQP
本文翻译译文有询问过原作者,经过同意转载。
也答应作者必须告诉他转载的地方
《英雄传说:闪之轨迹》个人电脑版嘉宾博客一号——性能篇
作者:彼得·“杜兰特“·托曼
当XSEED联络我让我参与他们开发中的《英雄传说:闪之轨迹》(以下简称“闪轨“)的
个人电脑版本的移植(以下简称”PC移植“)时,我对这个项目的前景就感到十分兴奋。
《空之轨迹》系列是我在PC上十分喜爱的JRPG之一,因此我也十分期待让这个系列的后继
作品能在PC上有着尽善尽美的表现。
当然,刚开始的时候我并不知道我对这个项目的参与程度有多深:我以为我只会对部分程
序作优化,大概一两周的全职工作即可完成任务。现实却大不相同。本系列文章将会详述
其中的原因。
本系列文章目前计划分为三部分,在八月二日发售日之前将会逐步放出:
1. 第一部分即为本文,此部分将会展现性能部分的状况,大部分与帧率以及加载问题相
关。
2. 第二部分将会展现PC版本的图像改善以及图像选项,以及实现提升的过程。
3. 第三部分将会展现PC版本上一些独特的功能以及加入这些功能时遇到的一些困难,需
要注意的是这些功能与图像改善并没有直接相关。
性能故事的开端
关于程序的故事以加载问题为开端往往是合适的,而我最开始被咨询到的问题就是读取时
间。当时的PC版本在配置良好的机子上,读取时间常态性地需要花费20秒以上,而且这些
读取并不是偶然间的大型读取,而是任何需要读取的情况都会遭遇如此长的读取时间,例
如每一次开始战斗以及战斗结束。另外,整个游戏都出现多处的读取拖慢现像。
这当然是一个不能接受的版本。经过长时间的分析,我发现造成拖慢以及读取问题的主要
原因都在于游戏引擎使用了“Nvidia Cg“(目前来说一款非常老旧、没有技术支持的高级
着色器语言工具),游戏常态性地使用这款工具来编译及加载着色器。通过缓冲以及重新
使用着色器的编译成果,我成功地将读取时间(在第一次读取过后)降到了2-3秒,并消
除了在开始后的大部分拖慢现像。我对刚开始接手的这个问题的进展感到满意,我汇报了
我的发现并开始编程。
标准
过了一些时日,我被分配到了为游戏的最终发售进行润色的任务。当时我花费了一些时间
来改善当时还存在的以Cg为基础版本的游戏的图像性能表现,在几次游玩测试后我逐渐对
其性能表现感到失望。
因为游戏起先是在PS3甚至是PS Vita平台上发售的(尽管PC版本只会使用PS3级别,甚至
更好的材质以及特效),我所期望的结果是配置良好的桌上型电脑可以极其轻易地运行游
戏。然而,在当时我就已经发现了一个场景中的某个摄影机视角会让我的电脑掉帧到
45FPS,而且完全是CPU的限制。通过使用了数种分析工具,我发现这个问题主要与这个引
擎处理着色器阶段的OpenGL/Cg的渲染后端相关,并导致了每个绘图指令都会请求数十个
阶段设定指令。通过更多的优化和微调,我将测试场景的性能提高到了55FPS。在此时,
我预估即使对Cg为基础的渲染器进行完全的优化,在我的电脑上也最多只能把帧率提高到
80FPS。
这样子的结果着实不够好。
我永远无法接受在PS3上以30FPS运行的游戏,在经过我的优化后只能在我2015年配置最好
的桌上型电脑上以80FPS的帧率运行,尤其是我的名字还要出现在工作人员名单上。实际
上,我更希望这样的游戏能在低功率的便携式电脑(如GPD Win)上运行,然而这阶段的
性能表现抹杀了这种可能性。
中途换将
这个性能问题的唯一真正的解决办法是完全替换渲染后端。游戏使用的引擎已经有了DX11
后端,然而Falcom在制作《闪轨》时显然只是使用了OpenGL/Cg,游戏本身以及其材质使
用了大量在DX11后端里不存在或者无法正常运行的功能。因此,转换到不同的渲染器其实
是到目前为止PC移植的最大改变。
下面是DX11版本开发时我拍的第一张截图,请注意,这张截图拍摄时我已经修复了一系列
让游戏甚至无法运行的问题。
http://i.imgur.com/iLo8erg.png
在这张截图你能够看到超过十数个的渲染问题,其中的一些问题需要从基础上拓展引擎以
及重做才能修复。然而,这只是与更换渲染后端相关的57个分别渲染问题(不是单独的例
子)的最终合集。我没办法每个问题都展示出来,但是下图是我在开发后期处理时的一张
特别好笑的截图——如你所见看起来不是太糟糕了:
http://i.imgur.com/LXw2Dei.png
结果
尽管有着这么多的问题以及花费了很多功夫才把游戏移植到了一个完全不同的渲染后端,
在最后结果还是让人满意的。下图是游戏在不同阶段在我的电脑上的(CPU)性能表现
http://i.imgur.com/YlGBFGl.png
游戏目前的阶段,代号为“DX11优化版本“,与大家所期望的优秀的PS3移植到PC版本的
游戏相符。
关于这个图标我要指出重要的一点:请不要使用这个图标作为DX11比OpenGL快多少的论点
这个结果是在相同引擎下这些应用程序接口使用不同渲染后端的直接后果。
我猜想GL/Cg的版本更多的是设计用来在家用机及相似的目标平台上的开发工具,
而不是满足PC版本上的性能指标。
在高端的PC上达到300FPS固然不错,但是在回合制的JRPG上就显得意义不大了。
更值得关注以及真正的成果是游戏运行在低端系统上的性能表现。
本影片(此处应有开发试玩影片https://goo.gl/4JXy5C)展现了游戏在GPD Win上以
1280x720P的分辨率流畅运行。至于图像设置,影片上的游戏
使用了“ 便携式电脑“的设定,图像就如字面所示一样简陋,同时在拥有卓越性能的PC上
也有可以花费的新功能,但这就是《闪之轨迹》PC移植版的下一篇博客的内容了。
(以上翻译来自闪之轨迹吧的网友:"昀山雾雨"
原文著作权归XSEED所有,翻译权归本人所有)