欢迎来到爱玩网,独一无二的你快来取一个独一无二的昵称吧!

凯恩之角 暴打暗黑:让暗黑初代在现代操作系统上焕发新春

暴打暗黑:让暗黑初代在现代操作系统上焕发新春


爱玩网百万稿费活动投稿,作者 雪暴君(特约撰稿人),未经授权请勿转载!

1996年的最后一天,暗黑破坏神的初代上市了,作为beta时就被收录在Windows游戏光盘里的大热门游戏,它不出意外地登上了当时微软倾力打造的Windows 95平台。二十多年过去了,我们的电脑操作系统也经历了98,NT,XP,Vista,Win7,Win8直到Win10的变迁,“古老”的经典游戏在现代操作平台上很多兼容性乃至无法运行的问题,暗黑初代也不例外。

遗憾的是,暴雪的经典游戏团队似乎把大部分精力放在了让暗黑2能顺利在现代操作系统中运行上,而对暗黑初代似乎并不怎么上心。不过,幸运的是,我们暗黑社区绝对不乏狂热的程序员,他们自觉地负担起了对经典初代作品的现代化改装工作。

比如名气最大的暗黑初代MOD Belzebub就是一个例子。在这个MOD里,作者为初代增加了三个新的职业:野蛮人,死灵法师和刺客。为游戏追加了新的法术,职业和技能,这是该MOD的一大亮点。另外还有新的敌人和任务,追加了新暗金装备,以及更多的装备(包括套装)乃至打造系统。而观感上最大的提升来自改进的用户界面,加入了大量暗黑2风格的界面,包括商店和大宝箱界面以及小站系统等等,甚至还加入了暗黑3里的元素,比如掉光。针对现代的显示器和操作系统,它有针对窗口和全屏模式的各种分辨率的设置以及可缩放的镜头。

说了这么多优点,但这个mod是不完整的,只是一个测试版。Belzebub的创造者在开发一段时间之后就放弃了这个项目,转而使用另一个mod。但问题依旧,那就是稳定性欠佳,时不时玩家会遇到画面撕裂,过场动画无法播放等问题。

另外的一个选择是DiabloPatch,这是一个与Belzebub那种MOD形式走向完全不同方向的一个修补补丁,最近也刚刚放出了新的版本。它的最大特点就是为与现代Windows版本兼容而制作,同时完全保留游戏的原始精神,也就是基本不对游戏做什么修改。DiabloPatch不会修改原始的游戏文件,而是采用在内存中打补丁的形式,所以可以很容易地恢复到原来的游戏中,它的功能包括:与现代版本的Windows完全兼容;可调整大小的窗口模式;多显示器支持;与Battle.net完全兼容等很重要的功能。当然它也对游戏有一些改动,比如物品的突出显示,怪物的血条,以及著名的复制物品修复(这是可选的)等等。但它也是没能完美地实现在现代操作系统上的运行,比如调整窗口大小只适用于游戏,不适用于菜单;菜单界面有点bug;Win10之前的系统UI修正会有错误;它只适用于1.09版本等等。

其实针对暗黑初代的现代化MOD工作一直都有在进行,不过让这个话题重新热炒起来的是最近出现的一个叫devilution的开源项目,因为这个托管在github上的项目不仅是开源的而且打开了暗黑初代向其他平台移植的大门。众所周知,暗黑初代仅在PC,Mac和PS1上推出。devilution的开源项目可以使其比以前更容易更新,修正和移植游戏到其他平台上。

说起经典游戏的移植我们并不陌生,最经典的一个例子是来自DOOM,这款1993年出品打开了3D大门的游戏在过去的二十多年里被无数程序员拿来练手,花式登陆各种平台,包括且不限于自动取款机,照相机,打印机,计算器乃至你家的冰箱。这一切不仅是因为它在游戏发展史上的地位,更是因为id Software公司很大方地在1997年年底发布了其源代码。每当有人想要移植到其他平台或者是进行MOD扩展时,都可以直接访问游戏源代码,让工作变得非常轻松,如此的做法不仅让DOOM的经典传递到更多平台,而且几乎也是给予了它永恒的生命。

但是,暗黑初代的情况不一样,暴雪并没有发布暗黑的源代码。这么多年以来,像我们之前刚说的那些MOD项目都是不得不依靠繁琐的代码编辑和内存注入来完成他们的工作的。有些甚至更进一步,对游戏进行了很巨大的改动(比如Belzebub和The Hell),但这样的做法又出现了一个问题,那就是这些MOD通常都是一个人或者几个人的小项目,由于时间,工作量的原因或对项目失去了兴趣,他们很多时候会撒手不管去过自己的生活了,这给人们留下了一个半成品的mod。一个投入了很多时间精力但却充满了错误和的潜力的半成品。这对项目和游戏以及玩家来说都不是一个好消息。

所以我们回到了原点,Devilution提供了暗黑初代的源代码来解决这一系列的问题。有了源代码,我们就可以像经典的DOOM那样,各种花式来操弄暗黑初代作品了。而且通过这个源代码,我们还可以窥见当初暗黑破坏神的开发接近尾声时,有多少想法被束之高阁,有多少游戏功能规划最后只能在源代码中找到一丝痕迹。

那么既然暴雪从来没有公开过暗黑的源代码,Devilution项目提供的代码是从哪里来的呢?

事情要从暗黑初代发售后的第二年讲起。看过我之前写的暗黑故纸堆系列的玩家应该有印象,暴雪在推出暗黑后大受欢迎,按照那时候的游戏业界风气,他们很快就要推出资料片和向其他平台移植了。不过这里暴雪出现了一点小小的疏漏。因为地狱火和PS平台的移植工作都不是由暴雪来完成的(那时他们正忙着弄星际呢),所以暗黑破坏神的源代码提供给了两个开发商:Synergestic Software(雪乐山收购来的工作室,负责地狱火资料片)以及Climax Studios(很老牌的工作室了,负责了暴雪的魔兽2和暗黑1两款游戏的主机平台移植)。

一旦扯上索尼,大家就能猜到是啥了。是的,索尼日本的QA部门又一次把秘密给泄露了。毕竟是一个能把游戏从原型到完整的源代码彻底泄漏(Beatmania)的部门。暗黑初代是在日语的移植作品里不小心留下了一个符号文件,其中包含了游戏中所有内容的索引,包括功能,数据,类型等等!这还不算完,关于这次移植的beta版本也被泄露了,其中也包含了这些重要的源文件。

而最重要的是,Devilution项目的作者发现在PC版的Diablo光盘中就包含着暗黑的调试版本。它隐藏在DIABDAT.MPQ -> D1221A.MPQ -> DIABLO.EXE里面。这个版本包含零售游戏中所没有的调试工具,提供了很多关键性的代码信息。将所有这些方面结合起来,我们就得到了一整套更容易阅读而且更加准确的文件名称和函数名称,甚至连程序行号都与真正的源文件相当接近。

通过这样的逆向工程,Devilution的作者用了超过1200个小时梳理了一个相当接近的暗黑初代游戏源代码,他的目标是将过时的图形API DirectDraw转为现代游戏所用的OpenGL,并且移植到Linux和其他平台上,不过这个时间可能还需要6-12个月。目前的Devilution项目已经可以完整地运行暗黑初代游戏了,但是依然存在一些瑕疵,比如动态光照无法实现等。有趣的是,在暗黑1的源代码中,我们看到了一些暗黑2的接口功能,包括敌人的血条指示,地面上的物品显示以及商店的UI提示与物品描述等。

当然这种事情始终是行走在灰色地带的,Devilution的作者也表示这是一个棘手的问题,一切都要看暴雪的态度如何。对商业游戏进行逆向工程是违法的,不是数字千年版权法案开了一个小小的口子,对记录文档方面有例外。Devilution所提供的逆向工程得到的源代码以及能否根据这个源代码进行进一步的制作都属于完全灰色的区域。真正的问题在于暴雪是否认为有必要对此采取行动。

不管怎么说,暗黑初代是一款经典的开山之作,能够在现代操作系统上顺利地玩到它对玩家来说是一件好事,尤其是在暗黑2重制版传闻不断的今天。

如果你想了解更多关于暗黑破坏神以及暴雪娱乐的故事,请关注我们的深度栏目“暴打暗黑”。

欢迎参加——爱玩网百万稿费活动:当金牌作者,开网易专栏,领丰厚稿费,得专属周边!

详情请看:


本文来源:凯恩之角

跟帖0条跟帖

跟帖成功,查看我的跟帖

    热门跟帖

      最新跟帖

          跟帖成功,查看我的跟帖

          意见反馈

          网易公司版权所有 ICP备案:粤B2-20090191

          ©1997-2022