如何让人上瘾到死去活来的?
对这个问题的解答,这个世界上有两类人最为擅长。
一类是化学家。
而另一类……就是游戏制作人。
“这么小?”
看到林立新在纸上手绘的大致示范,山姆愣了愣。
凭现在GAMENOVA的硬件水平,早就已经能放开手脚做一些很夸张的大地图了。
加上很多年前他们就已经搞定了的无缝大地图技术,想要做一个规模夸张的世界并不是什么难事。
尤其是一个‘黑帮火并’题材的作品。
显然是人越多越热闹越好。
就譬如做出一整个完整的夜总会地图,像《MJ的月球漫步》那样,可以自由地活动。
这样不是更好吗?
然而林立新显然是有截然不同的想法。
根据他绘制的几个示意图,不难看出这整个关卡只有几个不大点儿的小房间构成。
但林立新这么做,定然有他的道理。
“对,就这么小,我们要确保当玩家进入游戏的第一时间,关卡就已经被完整加载到内存里了。”
他解释道,目光扫过自己在纸上画的几个敌人示意标志,简单估算了一下开支,
“除此之外……我们还需要想办法实现一个非常麻烦的新技术。不,不对,应该说是倒车回去用老技术。”
林立新想了想,在纸上写下一行字。
【流式加载】
随后,他又用笔直接将这行字给划掉。
看到他这么做,山姆眨了眨眼,大概明白了林立新的意思。
“你想要弃用流式加载?”
所谓流式加载,其实已经不是什么新鲜技术了。
在内存和其他机能都非常有限的情况下,游戏不可能一口气把地图完整地加载到内存里。
如果解决不了这个问题,游戏的世界便终究有一个上限。
只能靠堆硬件去不断拔高这个阈值。
但流式加载的出现完美解决了这个问题。
它不像是当初他们在《塞尔达传说》里用的那种切换场景的技术。
真要说它的完美应用案例,其实是林立新给世嘉准备的那款看家作品——《刺猬索尼克》。
在索尼克那种超高速移动的环境下,靠流式加载不断动态地载入前方的新地图便成了必要的手段。
弃用流式加载,意味着林立新主动放弃了大地图的可能性。
付出了如此大的代价,自然也不会一无所获。
想到这儿,山姆忽然眼神一亮,猜到了林立新的想法。
“无缝加载!”
这么小的一张地图,完全足以在玩家不知不觉间悄然加载完毕。
整个地图根本不需要读盘,从第一时间便已经缓存在了内存里。
这样做的好处自然就是……没有黑屏!
不管是开始新游戏还是到达新场景,都不会有明显的加载感。
“诶嘿,就是这么回事儿。”
林立新打了个响指,
“不过嘛……除了加载之外,它还有另一个至关重要的能耐。”
“是什么?”
“无缝重置。”
林立新缓缓吐出几个字儿。
“无缝重置?”
“是的,你还记得《龙穴历险记》不?”
“当然,我刚才还玩了一局。”
山姆点点头。
作为这次对标的前辈,《龙穴历险记》的取材工作自然也已经早早地就被布置了下去。
但是除了山姆这个老ass之外,其他几人都被虐的死去活来的。
也就卡马克这种年轻的枪男能玩的了这种纯考验反射神经的游戏。
“《龙穴历险记》虽然困难,但它却能让玩家一直玩下去,你觉得是为什么?”
“唔……”
山姆认真思考着,一个个地回想公司里几个风格截然不同的玩家的游玩体验。
半晌,他找到了一个相对令人信服的答案:
“硬要说的话,就是勾子吧?总觉得下次一定能过的心理……以及关卡设计非常迷你,每个节点只有一个QTE,失败了只会在当前节点重来。”
“不赖。”
林立新满意地称赞了一句。
《龙穴历险记》作为一款虽然满是恶心的QTE,却能让人一旦开始就难以停下的神奇作品,它的身上实在有太多值得学习的东西了。
QTE快速反应事件既是弱点,又是优点。
极短的反应时间窗口,稍有不慎就直接暴毙,但却能在当前节点迅速重新来过,在极短的重试时间内,每一次失败都能迅速得到反馈,肉眼可见自己的成长。
这才是他真正的含金量所在。
“我们要在《迈阿密热线》里重现这套机制。”
经过林立新的解释,山姆总算是彻底明白了过来他要做什么。
一路走到现在,山姆虽然在GAMENOVA内部总是表现得差一口气,但若是丢到外面随便一个游戏公司,那都是要被供起来的首席级别。
“心流?”
“没错。”
想要实现心流,连贯绝对是最不可或缺的东西。
“不过说起来容易,做起来可不容易。”
林立新无奈叹了口气。
80年代……哦不对,是90年代的硬件还是太羸弱了。
别看《迈阿密热线》其实是一部俯视角的2D游戏,但它那种超级快节奏的体验和完全无缝的连贯性,根本不是现在处理器的频率能做得到的。
哪怕是强如ATHENA,她也就只有80MHz的频率而已。
山姆显然也很清楚这一点,他摩挲着下巴,开口讲出这套机制面对的最大问题:
“想要重置整个关卡,我们需要把门、敌人、敌人AI、可交互物体等一切物件都销毁,再重新实例化,还得尝试还原玩家的状态把他送回初始位置……”
哪怕是如此小的地图,在这么多的工作量下,凭借有限的处理器频率也很难做得到。
《龙穴历险记》为什么能做到?
那是因为《龙穴历险记》里根本就没有任何角色数据。
没有位置信息、没有场景、没有物件。
它只是一段动画视频而已。
所谓重新来过,其实就是重播一次动画片段。
毕竟不会有什么区别,QTE还是那个QTE。
哪怕是真的即时重启,需要管理的数据量也非常少。
“的确如此。”
林立新不置可否。
想解决这个问题,要么是搞出更高速的内存,要么就想办法提升处理器频率。
但前者需要搞出新架构,会导致现在的SDRAM体系加速崩溃,对美光的发展并不有利。
处理器频率的提升,在短期内也很难有质的突破。
两条看似走的通的路实际上都走不通。
更不用说卷硬件本身就是林立新非常不认可的路线。
合适才是最好的,够用高于一切。
让玩家承担性能溢出的溢价,实在是吃相太难看了点。
“要是咱们用两块ATHENA呢?两块加起来总能更强一点吧。”
“不太行。”
林立新摇摇头,
“数据量是处理的过来的,问题在于速度,堆两块处理器解决不了这个问题……嗯?”
他的话说到一半,忽然愣了愣,旋即眼神一亮,
“嘿!你别说,搞不好还真行!”
说罢,他也不跟山姆解释,直接冲出办公室来到马克·塞尼跟前,已经被勾起好奇心的山姆紧随其后。
这事儿他们还真得跟塞尼这个新任架构师聊聊。
……
“需要无缝加载和重置?如果是这样的话,哪怕是两颗ATHENA应该也不够用的。”
塞尼摇摇头,否定了这个提案。
问题跟林立新所述的一样,速度是硬伤。
“别着急,《迈阿密热线》是纯粹的动作游戏,RPG占比非常小,唯一的区别就是每关开始前选择的面具。”
林立新解释道。
“这我倒是知道,但是即便是这样,地图里的其他数据也会……”
“不不不。”
林立新出声打断了他,摆了摆手,
“我的意思是,我们没有需要传递的……玩家数据,每一关都是独立的。”
“?……?!”
塞尼忽然眼神一闪。
他的硬件知识虽然比不过杰拉德,但他在思路这一块上绝对是独领风骚。
只需要林立新这么简单一解释,他就明白了过来。
“能行吗?”
“我猜……应该可以,不过我需要先做个技术验证。”
两人相视点了点头,一切尽在不言中。
在一旁听着的山姆纳闷地看着俩人。
“这是在打什么哑谜?别卖关子了,跟我讲讲。”
林立新耸耸肩,这才开口解释道:
“第二颗ATHENA不是作为协处理器辅助处理信息,而是……”
“备份!”
塞尼主动接过话茬,
“我们不只是要两颗ATHENA,还要两套内存,在玩家游玩的过程中,关卡已经被备份缓存在了另一组芯片内。”
这就像是把两台街机的基板缝在了一起,只不过除了必要的独立部分之外,其余部分全都共用。
当玩家不慎死亡时,游戏会第一时间切换到备份。
因为关卡本身就完全回滚,加上角色除了开局时选择的面具外没有任何差异的关系,即便是使用了一套完全独立的备份,在玩家的视角看来也根本没有任何违和感。
面向玩家编程。
不管过程是如何实现的,架构又有多么屎山,只要最终呈现给玩家的效果符合预期,那它就是完美的解决方案!
而在当前层打完了需要切换到下一层的时候,事实上游戏在玩家操控着角色走进楼梯通道的过程中,就已经开始向内存中预加载新地图的数据,以及让备份芯片开始工作了。