CFan科学院:游戏中的人工智能

CFan 电脑爱好者 2020-02-27 10:33应用 标签:人工智能 科学院

游戏领域对人工智能的应用越来越多,包括自动寻径、攻击、角色成长、状态机等等多种人工智能技术,游戏中的NPC也变得越来越“聪明”,有时简直让人真假难辨。今天我们就对人工智能在游戏中的应用原理一探究竟,并讨论它们对未来的游戏发展将有着怎样的影响。

智能+自动——游戏中的人工智能

游戏中的不少操作需要一定的智能,比如在策略游戏中,我们指挥着大批NPC从一个位置移动到另一个位置,这中间需要考虑各种障碍的存在、敌方的火力点以及路径耗费等诸多因素。如果由我们玩家一个一个的具体操作,一定会累吐血,而如果任由NPC自动移动,那么如何找到最佳的移动路线,对这些并没有真正思想意识的游戏角色来说,并不是一件简单的事情。而现在的大部分游戏,类似这种对路线的规划,可借助大数据+智能自我学习,使得NPC具备一定的人工智能,从而完全可以替代玩家,自动实现最佳移动了(图1)。

201824jsjd1

图1 三国乱世新古城探宝路线规划图

高智商的背后——认识游戏中的人工智能

实际的游戏场景中,人工智能是怎样发生作用的呢?以《模拟人生》游戏为例,其中有大量的游戏场景是比较简单、机械的,只要做出简单的判断即可完成游戏操作。对于这样的游戏场景,人工智能一般借助“行为树”来实现。行为树通过状态枚举、流程来控制游戏中人物的行为,通过在节点添加“IF/THEN”式的判断,实现人物的智能行为。在《模拟人生》中执行“吃饭”动作,人工智能只要设置一个判断行为树就可以完成(图2)。

201824jsjd2

图2 行为树判断

以上只是简单的人工智能应用,对于FIFA、实况足球等游戏中的复杂场景,人工智能一般使用“多层状态机”进行团队协作。人工智能将整个团队分为1+X层,其中“1”是团队状态机,X则为每个角色的状态机(团队成员的起跑、传球、射门等各种状态)。在团队“1”的状态统辖下,X层的成员状态将会得到协调,从而实现每个团队成员的互相协作,从而完成各种复杂的游戏状态。

当然对于更复杂的游戏场景,并非简单的1+X就可以完成,为了让游戏角色更像真实的人类在玩游戏,人工智能还引入了神经网络、自我学习等应用。比如对于复杂的策略游戏,开发者会让人工智能扮演各自的角色进行互相搏击,然后通过一定的模型生成复杂的算法,再借助人工智能强大的自我学习能力,使得人工智能可以对游戏中各个场景进行游刃有余的应对。

FIFA游戏中还应用了一种深度神经网络Deepfakes算法,通过自动编码器(Autoencoder)和卷积神经网络,将视频中任何一张脸换成其他人的脸,从而生成极其逼真的足球队员的人脸(图3)。接着再从游戏的录像视频中截取大量玩家头像,获得各个角度的信息,通过模型架构和训练,让游戏角色变得更加真实可信。

201824jsjd3

图3 FIFA训练模型

当然,对于王者荣耀、英雄联盟这类大型策略游戏,有着丰富的走位、加血、加防御、减速等更复杂的因素,人工智能需要借助更先进的算法、更复杂的模型以及更强大的神经网络技术,对这些因素进行学习、训练。

不只是自动——人工智能在游戏中的更多应用

现在有不少游戏,具备自动挂机和升级的功能,当你一段时间没有上线之后,会发现自己的角色在自我成长,这些也都是人工智能的应用。无需玩家的操作,游戏角色实现很多自动化操作,规划旅游路径、设计攻击动作,甚至实现游戏自我学习,熟悉需要战胜的敌人和背景环境,来增强真实感和复杂性,让我们轻松实现对游戏的主宰。

另一方面,对于游戏开发者来说,运用神经网络和遗传算法等技术,针对不同玩家进行交互反应,实现不同于传统游戏中刻板的线性任务流程,让游戏更加灵活,这不仅节省了大量开发成本,也优化了游戏体验(图4)。

201824jsjd4

图4 配备AI Director后台核心的《求生之路》

不过目前游戏中的人工智能也并非万能,比如在星际争霸等即时战略游戏中,因为战争迷雾的存在,让游戏中对局双方无法知晓全部信息,在这种情况下,如何根据收集到的有限信息对时局进行判断就需要更高的智能。谷歌的AlphaGO曾在围棋大战中大出风头,但它目前在即时战略中的表现却并不如人意,人工智能的判断根本无法和人类匹敌。我们期待人工智能在这些游戏中有更好的表现,让今后的游戏对局更加精彩有趣(图5)。

201824jsjd5

图5 AI有些不知所措的《星际争霸》