很多人的童年都有《超级马里奥》(Super Mario)的陪伴!这部传奇游戏的主人公马里奥已成为游戏产业的标志性符号;伴随人工智能机器人的研究,马里奥可能会成为人工智能发展史上的一座里程碑呢。今天,跟大家一起聊聊《超级马里奥》的人工智能化的故事。

像做数学题一样玩《超级马里奥》

2013 年,一位名叫 Tom Murphy 的计算机科学研究员在 SigBovik2013 会议上提交了他构建的一个 AI 程序,该程序可以让智能机器人自己玩《超级马里奥》。Tom 利用“词典顺序(Lexicographic Order)”方法(一种十分简单但有效的数学算法,常用于判断一组数值的最佳排序,如按字母顺序排列图书等)使程序可以像解决数学难题一样的通过游戏关卡。

Tom Murphy 在视频中解释程序是如何运行的
Tom Murphy 在视频中解释程序是如何运行的

Tom 创建了两个程序,一个命名为“LearnFun”,另一个命名为“PlayFun”。他记录下玩《超级马里奥》第一关时所有按键动作、得分、生命数值、敌人位置、马里奥位置等数据,输入到 LearnFun 算法中进行分析,然后让 PlayFun 利用来自 LearnFun 的信息资料进行游戏。其结果令人印象深刻:LearnFun 使得马里奥像被真实玩家操作一样,知道何时以及如何跳跃,如何顶方块吃金币。

有“意识”的“超级马里奥 AI”

今年初,德国蒂宾根大学(The University of Tubingen)开发了一个叫做“超级马里奥 AI”的项目,该项目可以让游戏中的马里奥具有一定的“意识”。游戏中的马里奥可以通过玩家直接给予的语音指示进行学习,也可以间接从玩家的指示中探索学习。

由德国蒂宾根大学研发的“超级马里奥 AI”
由德国蒂宾根大学研发的“超级马里奥 AI”

在游戏中,玩家可以用语音和马里奥进行“沟通”,比如当你问他“你现在感觉如何?(How did you feel now?)”,马里奥会回答你“我感觉很好!(I feel very good!)”。

“超级马里奥 AI”可以在游戏中与玩家进行互动
“超级马里奥 AI”可以在游戏中与玩家进行互动

玩家可以通过指示让马里奥改变情绪。例如你可以告诉他不要那么开心,马里奥就会“委屈”地回答你“不知道为什么,我感到不那么开心了(Somehow, I feel less happy)。”与此同时,马里奥的“幸福储备”(Happiness Reservoir)就会相应降低。当你再次询问他感觉如何时,他就会回答你“不怎么好(Not so good)”了。

“超级马里奥 AI”根据玩家的命令改变“情绪”
“超级马里奥 AI”根据玩家的命令改变“情绪”
“超级马里奥 AI”根据玩家的命令改变“情绪”
“超级马里奥 AI”根据玩家的命令改变“情绪”

另外,玩家可以通过不同方式让马里奥“学习知识”。如果你用语音告诉马里奥“踩上板栗仔(Goomba)就可以消灭它”,马里奥就会接收到这个命令,并在你再次问他对板栗仔知道些什么时,回答你“踩到它它就会死”,又或者你可以先不告诉马里奥,而是通过操作马里奥消灭一只板栗仔的方法,同样也会使得马里奥学习到“踩上板栗仔就可以消灭它”这个事实。

通过玩家的指令,“超级马里奥 AI”在游戏中学习
通过玩家的指令,“超级马里奥 AI”在游戏中学习

用 AI 来设定游戏关卡

在上月底,佐治亚理工学院对外展示了一个全新的人工智能系统。该系统能做的不只是代替你打游戏,而是不断让游戏产生新的、越来越难的关卡。人工智能机器人首先要观看一段来自 YouTube 或者 Twitch 的游戏视频,通过学习、分析其中的逻辑和规则,然后开始编程。

开发人员同样用《超级马里奥》做了测试。人工智能机器人关注的重点在这款游戏的地形和元素设置,比如水管、砖块与金币之间的关系。在机器人学会以后,它就知道板栗仔要在地上跑、章鱼怪要在水里游这些基本设定,也明白了砖块要设计成多宽,以便让马里奥可以跳过去。这台机器人会根据游戏视频中玩家耗时最多的部分,判定哪个区域的互动性最强,继而进行数据挖掘,编写出新的关卡。

对玩家来说,机器人生产出的新关卡是全新且难度越来越高的。这些关卡好玩不好玩我们尚不清楚,佐治亚理工学院的研究人员说,他们下一步的打算是评估真实玩家对新关卡的反应,并把结果和原生关卡做对比。

也许在未来,设计出类似 Flipbird 这样结构简单又极具挑战的游戏,凭借人工智能机器人就可以搞定,不再需要关卡设计师动脑筋了。

本文来源于微信公众号“机器之心”(almosthuman2014),作者:知图君