修改系统运行库、假装官方品牌,这个游戏当年把索尼的羊毛薅秃了
如果一款游戏为了顺利运行,直接上手修改了游戏机的操作系统,是不是听起来有点过火?
1996年的第一代《古惑狼》就这么干了。外媒Ars Technica前两天采访了顽皮狗联合创始人安迪·盖文,揭露了一些当年游戏开发时不为人知的秘辛。
其中一条,就是安迪修改了PS1的系统运行库,直接调用游戏的硬件资源,把一些运算的效率提高了将近10倍。另外,他还把不会用到的系统组件从内存里清除掉,这样在游戏运行的时候,可以多一些存放数据和美术资源的空间。
在PS1版《古惑狼》上市的时候,画面表现就震惊了所有人。游戏的色彩明亮,动作活泼,主角甚至有丰富的动画表情。游戏的关卡很长,中间却没有任何加载读条的分界。
同时期的《古墓丽影》,主角的面部特征非常简陋,动作僵硬,场景建模都是一些平直的方块,甚至连贴图颜色数量都有严格的限制。
《古墓丽影》其实做得已经挺不错的了。PS1能够直接被处理器读取的内存只有2MB,理论上一个场景里所有的关卡数据和美术资源都要放在这2MB的空间里面,超出的部分就只能读条加载。这对于场景切换很频繁的日式RPG或者AVG来说问题不大,但是对于动作游戏来说,这点容量实在是捉襟见肘。
而《古惑狼》则靠安迪各种脑洞大开的奇技淫巧,突破了PS1硬件纸面上的限制,最终成就了顽皮狗的传奇。
顽皮狗一开始索尼最初给PS1开发机配的说明书翻译得很差,安迪和同事们只能自己想办法研究和测试机器的性能特征。他们鼓捣了一阵以后发现,PS1的3D性能很不错,但是系统有一些局限,让性能无法完全发挥。
所以他们私底下和索尼进行了好几次交涉,最终索尼一个负责人悄悄把关键的技术细节向安迪透了底。在这个基础上,安迪开始着手在PS1运行的底层逻辑上进行优化。
最重要的一项优化,是安迪发明了一项分块存储系统,把每个关卡拆成64kb的小模块。在游戏运行的时候,可以按需求从CD上读取将要使用的数据,这样就突破了2MB的内存容量限制。古惑狼的一些关卡容量高达10MB,是其他游戏的五六倍,细节和内容自然要丰富得多。
这么做其实有很多局限,实现方法和现在的数据串流完全不同,在拆包以后做任何修改都非常麻烦
另外一项重要的优化则是用压缩图片的思路去压缩动画文件。古惑狼为了充分利用PS1的3D机能,采用了一个非常特殊的动画索引系统。这个系统对硬件算力的要求不高,但是文件尺寸非常大。安迪自己写了一个压缩算法,把动画文件缩小到原本的1/50,这样古惑狼才能做出旋转、跳跃的动作,实现各种各样的表情。
安迪还透露,在开发《古惑狼》的时候,顽皮狗属于环球影业旗下,商务资源比较丰富,其实也可以选择给任天堂或者世嘉开发游戏。但是他们当时想到,任天堂有马力欧系列,世嘉有索尼克系列,只有刚刚进入主机市场的索尼还缺少一款当家的吉祥物动作游戏。所以顽皮狗开发《古惑狼》,其实有一部分心思就是想混淆视听,让消费者以为这是索尼的官方吉祥物,提升游戏的知名度和销量。
顽皮狗的策略很成功。《古惑狼》质量过硬,又凭借开发者的天才有不少“神优化”,许多玩家真的以为顽皮狗和索尼有什么幕后交易,把古惑狼当成了索尼PS1的官方吉祥物。索尼尽管不情愿,也只能半推半就,暧昧不清。凭借这个特殊的卡位操作,初代《古惑狼》卖得越久反而知名度和销量越来越高,顽皮狗凭借这款游戏也一跃成为顶尖的工作室。
《古惑狼》的美国广告之一,跑到任天堂大楼下面喊话惹事
理论上来说,安迪不应该靠特殊手段修改游戏机底层代码。同样的,《古惑狼》用暧昧不清的方式假装索尼官方吉祥物,也多少有点擦边球的意味。不过假如安迪没有这种打破常规的勇气,我们可能就见不到现在的顽皮狗,也和《最后生还者》这样的游戏无缘了。或许想要获得命运的青睐,不但需要做好准备,也要勇于在正确的时机“猛薅羊毛”。