编辑:张倩、陈萍
加入体感控制,这位小哥破解了原版任 的拳击格斗游戏「拳无虚发」。
在经典红白机上玩拳击游戏是很多人的童年回忆,其中就包括任 年发布的拳击格斗游戏——「PunchOut(拳无虚发)」。
在这款游戏中,玩家的设定是一个拳击小白,需要在教练的指导下战胜各种大块头对手, 挑战 大boss拳王泰森。当然,泰森本人也玩过这款游戏。
随着网游、大型单机等各种游戏的兴起,红白机逐渐退出历史舞台,成了怀旧的代表,早期版本的「PunchOut」也很少有人玩了。
但最近,一位名叫IanCharnas的网友又把这款游戏翻了出来,而且自己开发了一种新的玩法——加入体感控制。简单来说,在这款DIY「拳无虚发」中,你可以借助摄像头和AI算法控制游戏中的角色,就像在玩Switch、Xbox的体感游戏,但成本几乎为零。
为了增加游戏的沉浸感,他甚至在身上绑了个电击臂环,从而在受到攻击时能得到更真实的反馈。
那么,这个新游戏是怎么做出来的呢?IanCharnas在视频中介绍了几个主要步骤。
首先,你要找到一个能进行实时姿态估计的算法。Ian用的是谷歌的MoveNet,这个模型能够快速、准确地检测人体的17个关键点。
接下来就要想办法将游戏从原始的游戏盘导到电脑浏览器上。由于80年代的任 连USB接口都没有,Ian就先把原始游戏机改装了一番。
成功把游戏代码导入电脑之后,Ian又找了一个任 模拟器来运行该游戏。此时,一个体感游戏基本完成。
但真正上手玩之后,Ian发现了一个问题:姿态识别输入比手柄输入要慢,但对手的出拳速度并没有变,这就很难赢。
要想赢,要么提高自己的出拳速度,要么拖慢对手的速度,Ian选择了后者。这就需要修改游戏代码。但「拳无虚发」的原始游戏代码并不是写给人看的:
为了读懂这些代码,Ian对源代码进行了逆向工程(反汇编),并对游戏人物的速度进行逐一修改,使得每一个人物都是可被击败的。
在完成这些操作之后,Ian成功打败了 boss泰森。
,Ian还把游戏以及配套的教程放到了网上,点击以下网站、打开摄像头就可以试玩: