在10月24日,微软正式上架了首批13款支持向下兼容的初代 Xbox 游戏,包括《忍者龙剑传 黑之章》《黑煞》《星球大战 旧共和国武士》,实现了 Xbox One 的又一次突破。从2015年 Xbox One 向下兼容服务正式推出以来,已有数百款游戏加入了兼容的行列。在这背后,其实有着非常多有趣的故事。IGN 的 Ryan McCaffrey 特意前往 Xbox 总部,与向下兼容团队的成员进行了一次深度的访谈,来了解这背后不为人知的故事。
在这个故事开始之前,有个问题想请问一下各位玩家,你最喜欢哪一届的 E3 展会?相信每个人都会有自己的答案,而对于在微软工作了28年的老将凯文·拉·夏贝尔(Kevin La Chapelle)来说,他会直截了当地说出一个坚定的答案:2015年的 E3。
那一年的微软 E3 展前发布会引起了很大的欢呼。盖伦中心此起彼伏的掌声并不是因为《光环》《战争机器》之类的新作公布,而是因为 Xbox 主管菲尔·斯宾塞在舞台上正式公布了“向下兼容”服务,这个由拉·夏贝尔的团队耗费数月开发的 Xbox One 新功能。
“这是我职业生涯中最骄傲的时刻。整个房间沸腾了,而我则是热泪盈眶。我们的努力获得了极大的认可。”拉·夏贝尔脸上还洋溢着当时的兴奋情绪。
拉·夏贝尔的得力助手,同时也是微软首席软件架构师的乔纳森·莫里森(Jonathan Morrison),正坐在拉·夏贝尔和 Xbox 软件工程部副总裁卡利姆·乔杜里(Kareem Choudhry)身边。
乔纳森·莫里森回忆道:“我对那时候的印象,就是当提词机已经出现了那个词语,而菲尔还没开始说出它的时候,房间里的大家屏息凝神等待着他的发言。那时我手上的寒毛都竖起来了。”
“向下兼容”,这个让粉丝欣喜若狂的功能诞生于微软研究院的两支研究队伍,原本计划于 Xbox One(当时它的内部代号还叫 Durango,并且在硬件上已经集成了这一功能)首发时就推出。但由于发售前微软对 Xbox One 的一些政策上的改变(比如废除永久在线)而被迫推迟。
现在“向下兼容”这个功能不但实现了,还扩展到了初代 Xbox 的游戏兼容。Xbox One X 同样拥有这项功能,并且有一小部分的 Xbox 360 游戏在 Xbox One X 上运行还能获得 10bit 色彩深度、各向异性过滤以及高达9倍分辨率提升的强化效果。
为了了解这群人,以及他们为何要做这个功能,想做到什么地步,我花了一天时间与 Xbox 向下兼容的团队进行交流。两个感受就是:
微软是家大公司。虽然其中很多团队都会相互合作分享经验,但也有相当数量的团队在私下进行自己的研究项目,直到他们需要将项目的规模扩大时才会公开。这也就是为什么乔杜里和 Xbox 核心平台主管凯文·盖弥尔(Kevin Gammill)发现,有两支队伍正在研究的内容可能会帮助 Xbox One 实现兼容 Xbox 360 游戏的功能。而在当时,Xbox 360 已经通过内部代号为 Fission 的模拟器实现了兼容部分初代 Xbox 游戏的功能。
2007年的时候,一支队伍正在设计 PowerPC CPU 的模拟方式,来让未来64位架构的第三代 Xbox 主机能运行 Xbox 360 上的32位代码(即 Trioxide 项目)。而另一支来自北京的队伍,则开始构建基于 Xbox 360 GPU 架构的虚拟 GPU 模拟器。“(这两个项目)就像花生酱和巧克力。”乔杜里回想着当时的情景,“所以我们就想,为何不把它们结合起来呢?”
乔杜里于是就决定开始动手,于是开启了如今的 Xbox One 向下兼容项目,当然他开始着手研发这个功能的时间,要远远早于确定新主机(Xbox One)的名称和技术规格。
随着 Durango 项目的不断进展,Xbox 360 游戏兼容项目也被计划搬上这个新平台。“这本来是一次软件测试,但我们赶在硬件诞生之前就已经将它实现了。”盖弥尔说道,“之后我们还得将兼容功能集成到 Xbox One 的芯片里。”这项工作在2011年的时候完成。初步测试的结果表明,仅仅通过软件来支持 Xbox 两个关键的中间件,XMA 音频和纹理格式,是非常麻烦的事情。
盖弥尔提到,XMA 音频部分需要占用 Xbox One 六核 CPU 中的2到3个核心。而若是在 Xbox One 的芯片组里内置 Xbox 360 的 SOC 芯片(就像索尼当时实现初版 PS3 兼容 PS2 游戏那样),不仅造价高昂,也容易限制兼容团队的工作。“如果我们必须通过 Xbox 360 的 SOC 芯片来实现(向下兼容)的话,那就基本等于我们什么都没做。”他说道,“这不是我们的目标。”最后团队将 XMA 和纹理格式的处理方式塞进了 Xbox One 的芯片中。
2014年,菲尔·斯宾塞接替唐·马崔克(Don Mattrick,前 Xbox 负责人)成为 Xbox 新主管之后,他就和乔杜里商量重启兼容计划。“对我而言,这是个进行了好几年还没完成的事情。”乔杜里说。他还提到了上文所述的 Trioxide 项目。但意料之外的兼容计划挑战随之而来。
“我真是蠢到家了,我居然以为编写模拟器是这个项目里最困难的事情。”他接着说,“(真正的问题其实是)我们怎样才能在一个新平台上发售那些不属于我们的 IP 作品?”
乔杜里首先召集了一位名副其实的微软老员工——拉·夏贝尔(他的奥迪 R8 有着他定制的 Xbox 绿色刹车钳以及夸张的 Xbox 主题车牌。他办公室的墙上还有一块木制的时速记录表,记录着自己在一次合法的活动飙到 200 英里/小时的时刻)。
随后,拉·夏贝尔抓到了莫里森,之后一同又把原“Trioxide”项目组成员之一的巴瑞·邦德(Barry Bond)拉入伙。莫里森建议先拿一款游戏做测试。
“我们需要挑选一款合适的游戏,让我们在合理的时间内测试完毕。同时它还需要有 Xbox Live 联网内容。”莫里森说道。
最后他们选择了《城堡破坏者》(Castle Crashers)这款由 The Behemoth 工作室制作,广受欢迎的四人联机合作游戏。显然一款老游戏不会轻易地通过模拟器就能在新平台上运行。“我们很快就意识到我们有麻烦了。当我们遇到问题时,屏幕上就会出现一串数字。”这些数字是解读问题的关键,但他们当时并没有能把这些数字翻译成有用信息的工具。
拉·夏贝尔随即决定尝试秘密联系 The Behemoth 工作室的人(该项目当时只有内部成员知道)。他通过领英上的信息与工作室 CEO 取得联系,在保密协议下知晓了这些数字的含义。“他们太棒了,帮了我们很大的忙。”拉·夏贝尔表示,在这之后团队工作的效率得到了极大提升。
游戏初步运行的问题得到解决,但这并不能解决另一个问题:在新平台上无法使用存档来测试后面的关卡。所以他们只能自己手动一关一关的游玩来获得所需要的数据。莫里森回忆道:“我们没法使用存档。所以凯文就肩负起了玩游戏的重任。”
拉·夏贝尔笑着接话:“你是不会为了钱而去玩《城堡破坏者》的。”
在实现了把存档进行转移这一功能后,上面所说的这个问题就得到了解决。团队决定要在 E3 2015 公布向下兼容项目,并于秋天正式开放该功能。在那个时候,向下兼容的首批游戏已经谈妥了。不过当时他们对外承诺说要在年底前把兼容游戏阵容扩大至100款。除此之外,在 E3 即将到来的日子,还是有很多游戏会出现问题。“有一款游戏刚开始运行的时候,每秒只有1帧,还好后来测试人员把这个问题修复了。”拉·夏贝尔回想着说。
拉·夏贝尔、莫里森以及其他25名团队成员绞尽脑汁试着去解决上述问题。直到莫里森突然来了灵感,他在想:Xbox 360 本体运行起来跟 Xbox One 上的 Fission 模拟器运行 Xbox 360 相比,究竟有什么本质上的不同?答案就是调度程序(大体上就是 CPU 内部的一个交警,告诉数据该往哪里走,走多快)。调度程序在 Xbox 360 上是以一个速度正常运行,在 Fission 模拟器上则是以 Xbox One 默认的速度运行。
当莫里森在 E3 期间分享这个想法的时候,拉·夏贝尔对他说:“好了,我现在知道你回家都干什么去了!”
调度程序的变化起作用了,效果比他们预想的还要好。团队紧锣密鼓地准备着,确保新的调度程序能及时完成。最后他们在向下兼容功能推出的第一年里,提供了104款兼容游戏。
不过,《光环 致远星》一开始在 Xbox One 上出一些了问题,游戏刚刚支持兼容时,玩家发现在 Xbox One 上运行本作,帧数并不稳定。
“不得不承认,我们在《光环 致远星》上犯错了。我们的办法并不奏效。”史迪威提到那时整个团队仿佛遭受了重创。
“我们的目标是游戏的表现至少要与 Xbox 360 版持平。然而《光环 致远星》是第一款我们没达到目标的游戏。我们从中了解到我们的主观测试并不够好。因此我们开发了一套更客观的测试工具。”
《光环 致远星》的问题在后来得到了解决,一部分要归功于首席软件工程负责人布莱恩·斯班顿(Brian Spanton)的团队主导开发的 XCPA 工具(Xbox Compatibility Performance Analyzer,Xbox兼容表现分析工具)。
“找到 Bug 的成因并非易事。”斯班顿说,一些错误是原本游戏中就有的,还有的错误就是模拟器引发的。
接受采访时,斯班顿展示了这套工具。工具上有两个窗口在同时运行《战争机器3》,一张折线图实时显示游戏帧数。这时候帧数其实是越低越好。斯班顿分析了其中的一个场景,并表示帧数太高的话就会导致一些之前遗漏的问题被隐藏起来,难以再被发现。
在有了数百款 Xbox 360 向下兼容游戏的经验后,项目也达到了一个新阶段——团队给 Xbox 开发者们写了一份白皮书,介绍了应当如何写出能经得起时间考验,能够更方便地进行兼容的代码。他们还在致力于让一部分 Xbox 360 游戏在 Xbox One X 上获得更大幅度的强化效果。
兼容团队准备好迎接新的挑战:让 Xbox One 兼容初代 Xbox 游戏。该项目内部代号为 Fusion,首席软件工程师斯宾塞·佩罗特(Spencer Perreault)参与了进来,并在2016年11月将其变为了现实。
“有一天佩罗特来找我说‘我觉得我能实现它’。所以我们让他放开手脚去做。是他的激情给我们带来了这项伟大的功能。”拉·夏贝尔说道。
佩罗特于2009年毕业后加入微软,原先在初代Kinect团队工作,后来转到Kinect 2.0的团队。在2014年他抓住机会加入了兼容团队。“我一直以来都对模拟器这个东西有着极深的个人感情。”他说道。
他最开始想尝试在 Xbox One 上模拟 Xbox 360 上的 Fission 模拟器(对,通过模拟模拟器),来运行初代 Xbox 游戏,但他感觉会失败。结果的确失败了,而且“完完全全在意料之中”。初代 Xbox 的内存管理以4KB为一个增量,Xbox One 则是 64KB;初代 Xbox 使用的是32位 CPU,Xbox One 则是64位。这都是要解决的问题。“那时,在我头脑保持清醒的时候,我都在思考要怎么实现它。”佩罗特说道。
Dolphin 这款包含在初代 Xbox 开发套件中的工具,是第一个能在 Xbox One 上(兼容)运行的软件。“虽然看起来有些不太对劲,但它确实是 Dolphin,确实运行起来了。”佩罗特笑着说。之后拉·夏贝尔带来了自己收藏的一堆 Xbox 游戏给他测试。一开始他预估只有10%的游戏能够运行 —— 有些确实跑起来了,有些则遇到了严重的图形问题。
大约一两个月之后,90%的游戏能够运行起来了。“不断尝试不同的游戏确实大有帮助。”现在已经有13款初代 Xbox 游戏上架 Xbox 商城,其中包含了经典的《忍者龙剑传 黑之章》和《星球大战 旧共和国武士》。更棒的是,他们不仅仅是兼容,而是强化。所有游戏会以 1080P 分辨率运行(Xbox One X 则会更高),同时会有更高或者更稳定的帧数表现。
当对比用 Xbox 和 Xbox One 游玩《旧共和国武士》时,会发现画面和运行效果的提升是很明显的。《忍者龙剑传 黑之章》得益于原生支持宽屏输出,使本作看起来几乎就是一款本世代游戏。《血色苍穹》中玩家还能与人联机匹配。开发团队成功用一台初代 Xbox、一台 Xbox 360、一台 Xbox One S,以及一台 Xbox One X 测试了联机模式。
“这些游戏其实早就有了这些棒极了的细节,只不过当时的技术力限制了它们的表现。”首席软件工程师艾瑞克·赫奇(Eric Heutchy)说道。
比较不幸的是,由于法律问题我们可能玩不到太多的 Xbox 游戏。毕竟有些游戏发行商已经不在了,有些游戏因为原先合同的丢失导致无法处理,有一些则是因为音乐或其他版权许可的问题。但兼容团队仍在谨慎地兑现承诺,但我们还是希望有一天他们能火力全开全速前进。
那么?玩家们要怎么做才能帮助兼容游戏越来越丰富呢?
“支持它。获得玩家的支持就有希望帮助我们解决一些法律上的问题。”Xbox主机市场高级总监阿尔伯特·佩内罗(Albert Penello)表示,发行商是会看到数据的。
史迪威也同意说:“粉丝是关键。我们一直在努力,但有些时候事情就是会因为法律问题而无法实现。但有了更多粉丝的支持,发行商就会看到更直观的数据,我们就能实现得更多。话虽如此,但我们也不会抱怨。因为我们已经得到极大的支持和鼓励了。”
本文翻译自 IGN ——《THE UNTOLD STORY OF XBOX ONE BACKWARDS COMPATIBILITY》一文,部分内容有所修改。原文地址请点击【IGN网站】。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved