今年初发布的《2021游戏市场风向标报告》显示,越来越多的游戏开发商认为跨平台成为游戏成功的关键策略之一。无论是多人 FPS、开放式 RPG 还是冒险解谜,如果能接触全平台的受众,无疑给游戏成功增加了一份胜算。
虽然跨平台移植的成本不小,但是过来人都表示物有所值。随着任天堂 Switch 持续火热(全球销量超过 7 千 8 百万),Switch 也成为了移植游戏的首选平台。我们有幸请到了恐怖主题的动作冒险解谜游戏《DARQ》的开发者,Wlad Marhulets,来讲述自己的开发经历。
《DARQ》曾荣获 2015 年 Steam 绿光最受欢迎的十大游戏之一,以小男孩 Lloyd 在一场逼真恶梦中的冒险为主轴,游戏营造了阴森、诡异的氛围,在正式发布之前就吸引了众多玩家。
在历经五年的长跑后,Wlad Marhulets 成功地将《DARQ》搬上了 PC、Xbox One、Xbox Series X、PlayStation 4、PlayStation5,以及最近的 Nintendo Switch 这几个主要主机平台。整个开发和搬运过程非常艰难,但 Marhulets 凭借自己的韧性、乐观精神、周围好友及 Unity 的支持,终于与全球各种平台的玩家分享了自己的作品。
与我们分享一下创作《DARQ》的故事吧,你是一开始就计划把它搬到多个平台上吗?
Wlad Marhulets:我最初接触游戏开发是在 2015 年。那时我刚毕业,从事电影作曲的工作,有一次难得地出现了一个月的空档期,于是我决定利用这段时间发展一个新爱好。在此之前我从未接触过游戏制作,在下载了 Unity 之后,我立马入坑了,并在一个月后就完成了一个游戏原型。
在一个朋友的鼓励下,我做了一支预告片放到 Steam 绿光(Steam 的初创鼓励计划 Steam Greenlight)上。起初并没有很高的期待,但《DARQ》出乎意料地成为了 Steam 绿光投票前十的游戏,我当即决定把爱好当作事业来试一试。当时并没有在游戏主机上发售的计划,一部分原因是我都不知道自己能不能做出个成品来,与我而言,所有东西都得从零学起。当然,这个过程是十分充实的。
这款游戏花了 3 年半的时间完成,开发期间有多家发行商找上我,我都觉得不太合适,于是决定在 19 年自行发售,以 PC 玩家为主要目标玩家。直到 20 年我才遇到了合适的发行商,这才将游戏搬上了主机。游戏现在不仅支持 PC,还支持 Nintendo Switch、PS5、PS4、Xbox Series X|S 和 Xbox One,未来还将发售实体版。
为什么选择 Unity 来开发呢?
Wlad Marhulets:我曾经在为独立游戏《A Cat’s Manor》作曲时,很惊讶地发现这款高质量的游戏完全由单人开发,这点让我非常吃惊,也因此知道了 Unity。随着《DARQ》开发的推进,官方详细的编程教程和随问随答、亲切友善的开发者社区给我提供了很大帮助。现在我正与一支颇具规模的团队制作第二款游戏,大家也都在用 Unity。Unity 引擎改变了我的生活,我是它的忠实粉丝。
你在为多平台移植游戏时,都遇到过哪些困难?
Wlad Marhulets:抛开技术问题不谈,开发过程中最麻烦的一点是在全球疫情下的跨时区协作。我们团队散布在波兰、芬兰和加州,相互之间使用Slack聊天软件来沟通、跟进项目进度。
另一个难题在于统一游戏在各平台上的观感,因为各平台的渲染方法有些许差异,最后我们还是手动调整了明亮度、对比度、色饱和度、色调以及光照。我们还遇到了由于浮点精度不同而造成的渲染瑕疵:比如一块四边形放在另一块上方稍微偏移的位置,在 PC 端可以正确地渲染出来,但在主机上会出现闪烁现象。于是我们不得不通过手动调整位置来解决此类问题。
你为什么决定将游戏搬上 Switch?
Wlad Marhulets:Switch 是粉丝们呼声最高的一个平台,同时也是我自己在玩的主机。把《DARQ》搬上 Switch 是个顺理成章的决定,也使我的梦想成真。
介绍下你的 Switch 移植经历吧。
Wlad Marhulets:《DARQ》使用了大量的实时体积光、满是 FMOD 音频事件的音效、反向动力学和大型预制件,所有这些都需要时间加载。这些系统在高配置 PC 上可能不会造成性能问题,但在 Switch 上就不行了,我们必须找出新颖的优化方案才能让《DARQ》流畅运行。
这里最主要的挑战是尽量在不牺牲画面效果的前提下实现稳定的 30 帧。优化的大部分时间都花在了开销“高昂”的体积光和阴影投射上。还有解决过多 FMOD 事件同时触发产生的音频瑕疵,游戏里的谜题不能在小屏上清楚显示,必须要调整摄像机角度才行等问题。UI 也同样需要调整,许多图标和文本必须适当放大来方便玩家查看。最后,为了迎合 Switch 的操作惯例,我们还修改了移植版的操作方式,把动作按钮分配到了“A”键上。
你是怎么解决这些挑战的呢?
Wlad Marhulets:首先,我列出了几个非必要的阴影投射物和体积光,为求原汁原味,我将两者的数量删去了约 25%。我还重新设计了 FMOD 的脚步音效系统,减少了运行所需的事件与音频通道,原先包含多条音频轨道的事件被压缩到了一条轨道,除此之外还有很多关于音频的优化。
在反向动力学方面,系统会在每一帧上运行,这在 PC 上并不会有什么影响,但在 Switch 上,我们就要为不牺牲太多画面效果而充分利用起 Switch 的硬件性能。在大型预制件方面(如整个关卡),我们采用了异步加载的方法,并用一条进度条来跟踪加载进度。所有这些,外加上降低精灵图集分辨率,实现了可观的性能提升。
在移植过程中,有没有让你感到特别骄傲的技术成就?
Wlad Marhulets:让《DARQ》可以在 Switch 上保留许多实时光源和阴影投射物,这些优化工作让我感到特别骄傲。值得一提的是,《DARQ》内的几何形并未作改动,这对一款以精美环境为卖点的游戏意义巨大。起初我以为一定要减去模型的面数,结果却不需要,模型仍旧保持着相同的细节程度。在所有移植版中,我敢说 Switch 版本在优化方面是最为出色的。
对那些想要移植 Switch 平台的工作室,你有什么经验可以分享吗?
Wlad Marhulets:主要有以下几点:
首先,代码的结构必须要有条理,必须遵循一条命名规则。我移植时就因代码不连贯吃了苦头。这个问题在大型项目中更常见,多名编程可能各为其主,做不到风格统一。同时,为了保证编辑器内的每个场景都能运行,我们要缩减注释,用描述性语言来命名类、方法和接口的做法可以省去注释,加快开发速度。为了避免出现有上千行代码的“巨无霸”,我们可以按逻辑拆分代码,尽量避免依赖(形成所谓的面条式代码)。
其次,使用 Profiler 分析器分析纹理内存,用精灵图集让对象共享纹理。这种方法可以减少绘制调用,帮助实现稳定帧率。
最后,Switch 这类手持设备体积较小,因此 UI 需要适当地进行调整,原先适用于 PC 的字体和 UI 需要重新调整大小。
如果让你重来一次,有哪些地方的做法会不一样呢?
Wlad Marhulets:我一定会更早地入坑 Unity!
不过说真的,我自觉非常幸运,一路上虽然犯了很多错,但并不感到后悔,我从每一次错误中学到了很多。我做梦都没有想到《DARQ》能有一天与《末日余生 2》、《死亡搁浅》、《无主之地3》、《使命召唤:现代战争》等其他 3A 大作一起获得提名。小岛秀夫(主导开发了世界上第一款战术谍报动作游戏《合金装备》,是全世界最知名的游戏制作人及日本游戏界的标志性人物之一)是我童年的英雄,能与他竞争我虽败犹荣!
我对每一位将《DARQ》推向成功的人都心怀感激,我要感谢的人实在太多了:感谢 Unity 团队自始自终的支持,感谢 Scott Millard(Feardemic 的董事总经理)、Piotr Babieno(Feardemic 母公司 Blobber Team 的 CEO)和 Joni Lappalainen(Dreamloop Games 的 CEO)。
来源:Unity官方平台
原文:https://mp.weixin.qq.com/s/xo9knVgeDstrH6eV9gvVSw