联系
我们
投稿
反馈
评论 返回
顶部

内容字号: 默认 大号超大号

段落设置: 段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

不是延期就是崩盘 游戏移植到底有多难

2018-11-28 11:46 出处:互联网 人气: 评论(
杀人蜂幼虫 山什么地什么的成语 山止川行 闪电十一人go游戏 上情下达 神奇宝贝xy图鉴 神武100副本 神武小贝新手卡

尽管在缺少官 方信息的情况下,外人无法剖析更为深入的原因,但《黑暗之魂》的移植工作或许也卷入了相似的漩涡。试想一下,结合之前那些苦痛的案例,当你需要重整几万行陌生的代码时,它的困难与否自然也就心中有数了。

那些对“传火”近乎痴迷的冒险者,如今在探索罗德兰王国时恐怕已不再那么苦痛,他们可以瘫倒在床、卷入被窝,舒适的从北方不死院踏上征程。但在这背后,《黑暗之魂 重制版》迈向 Switch 的旅途却并不顺利,维塔士大约从去年8月起就接手了移植工作,经历了漫长的等待后,这款作品直到今年10月才正式发售。

移植游戏得花上一年多的时间?这或许让人有些困惑。有人将延期的原因归咎于平台的性能问题,也有不少人认为任何理由都是托词,甚至衍生出“是为了给其它作品发售让路”的阴谋论。这些言论并非单单针对某一款产品,它们或许已经成为玩家看待移植工作的普遍观点。

面对人们积蓄已久的不满情绪,维塔士制作人 Lukas Codr 此前还详细剖析过项目的难点,尽管这项工作看似只是简单的“搬家”,但在实际进行操作时,无论是代码的兼容、还是帧率的匹配,亦或是截然不同的网络系统都暗藏着巨大挑战。

这并非个例,Team Cherry 在将《空洞骑士》捣腾到 Switch 平台时,前前后后也花去了一年时间。移植同样成为了许多日本厂商难以跨过的高槛,内容搬运后缺胳膊少腿、错误频出早已被视为一种正常现象。如此看来,要做成这门“吃老本”的生意没有想象中容易,它背后又需要突破哪些关隘?

在高级语言和跨平台的游戏引擎兴起之前,各平台的内容移植成本可能难以想象。不同硬件的运行规则,几乎可以将底层的逻辑全都翻新一遍,随之而来的结果便是:仅有关卡、数值和系统这些概念层面的东西能够沿用下来,而图形素材、音乐资源往往都得重新制作。

作为佐证,上世纪八九十年代的游戏在移植过程中往往被改得面目全非。1984年,《炸弹人》开发商 Hudson 与任天堂合作,负责将几款 FC 上的作品搬到家用电脑 PC-8801 和夏普 X1 上,其中不少游戏受经移植后已经完全变样,这种改变甚至深入到核心的设计部分。

原版《马里奥兄弟》(水管马里奥)的主要玩法是从下层撞击平台,将敌人撞翻后跑过去消灭它们。底层中央还有个名为“POW”的方块,撞击后所有在场的怪物都会翻转过来,等同于 STG 游戏中的“保险”。但经由 Hudson 过一道手,PC-8801 上的《马里奥兄弟 特别版》简直可以当成另一款游戏。

劣化后的图形素材暂且不提,特别版的关卡和玩法几乎完全变样。玩家时而需要穿梭左右横移的平台,时而又需要利用“蹦床”震翻敌人,游戏还加入了限时收集道具的元素。有趣的是,这些魔改当时并不让人反感,设计上也有许多独特之处,反而彰显了第三方厂商的创意和实力。

从技术层面来看,Hudson 对内容进行换皮和翻新或许也是被逼无奈。早期的游戏基本都由汇编构筑代码,与今天编程的高级语言不同,它有时会具体到寄存器和内存地址的调用,而在移植过程中,每个平台、每块芯片的指令集、位宽,甚至连寄存器数量都不一样,这成了难以调和的麻烦事。

以 SFC 和 MD 为例,它们处理器分别为65c816和摩托罗拉68000。前者只有2个寄存器,而68000则包含8个通用寄存器和8个地址寄存器,两者的寻址逻辑、调用命名、资源的处理和存放地址截然不同。

对于汇编而言,在 x86 架构转向 x64 架构时,改一下数据格式和名称还勉强管用,而放到 ARM 架构时这套规则就像天书,有时重写代码还要更为效率。

2013年时,有开发者试图将 SFC 上的《星际火狐》移植到 MD 平台,但他最终只完成了一个简单的 Demo。不仅缺少声音和精细的图形素材,整体的运行效率也就8~9帧,完全算不上一款可玩的游戏,足以见得这背后的困难程度。

不过,随着硬件性能的提升,人们想到另一个围魏救赵的办法:既然重构老游戏的汇编代码这么麻烦,倒不如重构老游戏的运行环境,将程序和模拟器捆在一起。一个较为常见的说法是,如果新平台和老平台的指令集、操作系统完全不同,那么大致需要10~40倍的 CPU 算力才能实现模拟,这在今天已经不是问题。

西班牙开发商 BlitWorks 就是“模拟移植法”的好手,该公司的创始老哥 Angel Horna 痴迷于钻研新旧游戏平台的特性,曾经还编写过盛名在外的 Nebula(星云)模拟器。它们在2012年接到世嘉委托,负责将 DC 上的《街头涂鸦》(Jet Set Radio)高清化,并移植到各个主流平台。

尽管 DC 上的游戏已开始通过高级语言编写,但要对细枝末节进行修改,并将其带到 PC、移动端和其它主机平台仍是不小的工作量。让人出乎意料的是,BlitWorks 只花9个月就完成了任务,达成这项壮举的诀窍在于,它们构建了一种新的混合技术,从而使得新平台能够运行旧代码 —— 说白了,其实也就是将 Dreamcast 模拟器和游戏整合了一下。

实际上,为了让新机器能够玩上老游戏,索尼这些年来也一直在研究模拟器。PS3 上有 PS1、PS2 的模拟器,PS4 上也默默出了几个 PS2 游戏的模拟版,与 BlitWorks 的逻辑可能十分相似。而在刚刚发布的 PlayStation Classic(迷你 PS)中,索尼还植入了它们过去所反对的东西:以开源架构设计的民间模拟器 PCSX ReArmed。从中也能看出潜移默化的态度转变。

如果说太久远的作品有点难搞,那么隔代、或者同世代游戏的移植又如何呢?它们的出产日期最多差个 6~7 年,代码和硬件制式的变化也没那么大。在这一点上,虽然现今的内容移植确实简单不少,但如果要彰显诚意,保留原汁原味的体验、甚至高于原汁原味的体验,同样是个劳神费力的苦差事。

分享给小伙伴们:
本文标签:

更多文章

相关文章

Copyright © 2002-2014 版权所有