《吃豆人》诞生40周年,AI用写游戏的方式致敬

游民圈子

新时代的惊鸿一瞥。

可能有人已经注意到了,文章开头这个《吃豆人》动图有些地方感觉怪怪的。因为这个动图上的画面不是真正的《吃豆人》,而是英伟达一个新的游戏AI算法“GameGAN”,复刻编写的一款“致敬吃豆人”游戏。

没有使用任何游戏引擎,也没有人为编程干预,这个“致敬版吃豆人”从玩法、画面元素再到敌人的行动方式,全部都是AI自己学习素材以后自动生成的。

这是一个真的可以交互的游戏,还原了原版《吃豆人》里绝大部分游戏规则。玩家需要操纵游戏里的吃豆人在迷宫里一边躲避小鬼一边吃掉豆子,但是吃掉大豆子以后就会得到短暂的无敌时间,小鬼也会躲着玩家走。角色从地图一边走出去以后,还会传送到另外一边走回来。

5月22日是街机版《吃豆人》诞生40周年的日子。这款风靡世界的元祖街机游戏给了无数玩家美好的回忆。当年想要设计这样一款游戏,不但需要知道如何编写让人头疼的汇编语言,还需要有相当扎实的电路和硬件知识,因为游戏的许多功能都是在专门的硬件芯片上实现的,调试起来十分麻烦。

游民圈子

40年后的今天,这一切都让AI代劳了。除了“复刻吃豆人”,其他类似画面和操作体验的2D游戏,比如《大金刚》或者《超级马力欧》这种的,GameGAN也能够轻松复制。

我们和英伟达的研究人员聊了聊这个AI的幕后情况。他们告诉我们,这项关于游戏开发AI的研究开始于8个月前,基于PyTorch,现在已经取得了很不错的成果。以《吃豆人》为例,从机器学习开始到开发出“致敬版”游戏,只用了短短4天时间。通过调整一些设定,这个AI甚至还能在学习原版吃豆人的素材以后,开发出视角固定在主角身上的新玩法。

游民圈子

在这里要特别说明两件事情。第一,这个AI“制作游戏”的方式是完全不同以往的。它不是一个“自动编程机”。在传统游戏里面,“按左键角色回往左走”这个动作,其实需要好几部分代码:用操作代码把玩家的按键输入和角色的运动方向对应起来,用物理代码确认角色的位置变化和与周围环境的互动,用渲染代码把角色的美术素材投射到屏幕上。此外可能还需要一套API便于调动硬件资源。

但是GameGAN一行代码也不会写,它输出的结果只有画面。当玩家按下左键的时候,这个AI会猜测画面的变化,并且生成一个“看起来是角色在往左走”的图像。中间发生的事情,全部都在AI的黑盒中。没人知道AI是怎么理解玩家操作的,得到的只有最终的输出结果。

游民圈子

深度学习网络取代了所有的游戏代码

第二,这个“AI”和之前引发广泛讨论的谷歌DeepMind还有Open AI也不是一回事。DeepMind和Open AI,是在现有的游戏框架里面,学习如何与人类博弈并且获胜。

而英伟达的GameGAN,重点则是在如何生成一套游戏运行机制与画面上。它不会让游戏里的敌人变得更强大或者更智能,但是会从其他方面帮助优化我们的游戏体验。比如说,AI可以帮助开发者快速创造大量的关卡和素材原型,便于他们寻找灵感,加速游戏开发过程。

和之前的DLSS类似,AI也可以起到辅助画面渲染的作用,帮助显卡运算抗锯齿、光线追踪和物理模拟,提高游戏的运行效率。英伟达还专门搭建了一个叫《Marble RTX》的测试游戏,帮助AI能够得到足够的学习数据。

游民圈子

通过《Marble RTX》这样的环境,AI也能学到关于光线追踪和物理互动的法则

GameGAN最大的意义还是验证了一个概念:AI复刻游戏,其实是在自己的“脑海”里创造一个虚拟世界,通过学习其他“世界”的素材,也可以把别的“世界”的运行规则套用到自己的世界里。

也就是说,有一天可能AI可能光靠看交通事故的小视频,就能制作一个分析车辆碰撞之后的损伤和变形的模拟软件。在搭建出足够复杂真实的“虚拟世界”以后,这些“虚拟世界”甚至还能用来训练其他的AI。再想下去,可就有点天网那味了。

目前这个“致敬版吃豆人”还没有发布,不过据英伟达说稍后会放出一个玩家可以上手体验的版本。想要体验未来科技的小伙伴可以持续关注一下。

修改于 2020-05-25 03:50

百家争鸣

深度好文,独到观点,全都在这里~

前往圈子

游民星空APP