欢迎收看本期的《不止游戏》,我是乔伊。
最近有一部较为大火的游戏题材电影——《失控玩家》,估计在座有部分观众已经看过了。如果有没看过的观众,我在不剧透的情况下先给大家简单讲讲剧情。
电影讲的是有家游戏公司,开发了一个多人在线的开放世界游戏《自由城》。跟目前很多玩家玩过的开放世界游戏差不多,游戏中也有很多NPC为玩家提供各种服务。按理说这些NPC都是一堆代码构成,只需要兢兢业业在这个虚拟世界中和玩家互动即可。但其中有一个NPC出于某些原因,拥有了更“自主的意识”。让它拥有了近乎人类的强大智能。由此引发了一连串的故事。
当时我看完这个电影之后,突然想到了一个这期节目的灵感。就是我们大家玩过不少开放世界的游戏,例如《看门狗》《荒野大镖客》《刺客信条》等等。平常我们玩这些开放世界的游戏时,除开少部分有关键剧情的角色会给大家留下印象。大部分NPC在虚拟世界中只扮演“纯路人”,它们既不能给我们提供任务,也不能给我们带来剧情。很多时候只是一种“环境道具”和“人肉背景板”的存在。
那么这期节目我们来研究下这些游戏中的NPC,它们一天到底在干些什么?它们背后的运行逻辑是什么样的?《失控玩家》真的可能实现吗?
根据我在多个游戏中,花了数小时“尾随”了不同的NPC的观察。发现很多“纯路人”NPC真的只是纯路人。它们通常就围绕某个路线转圈,偶尔走走停停。哪怕玩家们和他们发生碰撞,它们也会绕开玩家重新走回预设的道路上。如果和它们互动,例如打了它一拳。它要不就是逃跑,要不就是反击。等过一段时间恢复正常,还是会按照最先预定好的路线继续移动。
通过我的调查发现,他们的行为和反应,是根据游戏开发者设定好的脚本来执行的。开发者规定他们在什么情况下作什么事情,他们就完全按照规则忠实的行动。一般来说NPC都会有一整套行为树,以对应玩家可能会对NPC做出的各个行为。
一般来说,开发者给NPC设定的脚本越多,行为树越丰富,就能越让他们接近于真人。比如不差钱的R星,花费几年时间上千名设计师,为《荒野大镖客:救赎》几乎每个角色都写了详实的脚本,才使得游戏里的西部世界在细节上还原的很真实。
而有时候玩家看到这些NPC,做出一些很奇怪的举动。可能是因为玩家做出的操作超出了开发者的预料,以至于没设置过对应的行为反应。所以在表现上,NPC回应的驴头不对马嘴,或根本不回应玩家。
当简单了解背后的运行逻辑之后,你就会发现几乎游戏中的NPC虽然看起来“活灵活现”,但其实连演员都算不上,只是游戏设计师的提线木偶。那些被玩家一口一个“老婆”叫着的游戏人物,不过是只会执行设计师操纵的工具人罢了。(牛头人震怒)
既然传统行为树做不出完全还原真人的NPC,那人工智能是否可以呢?
最近几年AI应用发展很快,人脸识别短短几年铺遍了大街小巷、自动驾驶成各大新能源车企主要课题、视频、购物乃至外卖APP都无一例外在用算法推荐。
但游戏领域里,反倒比较少听到有人工智能的消息?明明是阿尔法狗击败人类强者,才掀起了近些年AI研究的热潮,现在都2021年了,游戏AI又有哪些进步呢?我们有可能玩到《失控玩家》里那样的游戏吗?世界上是否真有人在做这样的游戏AI技术呢?
为了探寻这些问题,我便开始在网上寻找答案,我先是找到了一家很有名的国外人工智能团队 Open AI。就是之前用 AI 打败了 Dota 2 世界冠军的那个。不少玩 Dota 2 的观众对那场比赛应该有较为深刻的印象。
后来 Open AI 还搞过一个“AI 躲猫猫”的游戏。里面的角色全由 AI 构成,规则非常简单。在一个固定的游戏场地中,蓝色方负责躲藏,而红色方则负责抓人。游戏一开始会先把小红人固定住,蓝色方趁这个时间躲起来。
最初所有的 AI 都有点“笨”。只知道游戏目标。但却不知道如何实现,四个角色基本都是各种乱跑,蓝方最终总会被抓到。但随着训练次数增多,慢慢蓝方 AI 学会了利用场景中的箱子,把缺口给堵住并将其锁定。让外面小红人无法进入,这一堵门战术让蓝方胜率大幅度提高。然而后来,红方也学会了利用斜坡方块,可以直接翻墙进去抓人。胜利的天平重新倒向红方。再接着蓝色方也渐渐理解了斜方块的作用。他们在游戏开始前会先把斜方块抢进来再堵门,让外面的红色方一点手段都没有,杀死了这场比赛。
后来 Open AI 的研究员重新弄了个新地图,这次由较多的可移动方块构成。一开始 AI 还是要熟悉环境,随着训练次数不断增加。蓝方想出了用长板自己搭围墙并锁定。来构成一个封闭环境避免被抓。而红方也想到可以利用斜方块的翻墙功能。再往后蓝方见招拆招,想出了先提前锁定所有斜方块,让红方不能再利用斜方块的方法翻墙。
此刻看起来是不是红方又陷入第一局的情况没招了。结果它们搞出了个一般人类都未必能想到的骚操作,先把普通方块移到被锁定的斜方块旁,然后靠斜方块走上普通方块。利用 BUG 站在上面移动方块最后跳进围墙去抓人。
越往后开始越离谱,AI 的不断学习和进化,使得游戏越来越超出开发者的预想了。蓝方开始游戏干脆锁定所有方块,或者直接跑路逃之夭夭。红方也不知道哪摸索出了引擎 BUG,还能用“弹跳”的功能来实现飞越。
AI 躲猫猫的案例,很形象的让我理解了“训练”这一过程对于 AI 的重要性。可以想象到,如果这种带有自我学习功能的 AI 被做成NPC加入游戏当中,那未来的游戏一定非常有意思。就比如万一怪物猎人里应用了类似的技术,雄火龙在一次次被讨伐过程中越来越强,太恐怖了我都不敢想,可真就是“怪物虐人”了。
那么我又接着在网上找,找到另一个展示游戏 AI 的技术 Demo 案例。这个封面和标题晃眼一看,就感觉像是一个标题党。游戏场景和《失控玩家》很相似,都是发生在银行的抢劫故事,都是玩家扮演劫匪。画面还周围显示着各种不明觉厉的数据。
这个案例和 AI 躲猫猫不一样,是有玩家参与其中的。其他角色则全是 NPC。我们看到玩家跟着同伙进入银行,随即鸣枪震慑现场所有人。NPC 同伙不断威胁柜员,逼她打开柜台大门,但柜员刚上班没几天不会开门,气的 NPC 同伙用脚踹、用枪破门也无济于事。
此时玩家张口说话,用枪胁迫大堂内的其他人,迫于无奈大堂经理帮忙开了门,两名劫匪鱼贯而入,命令柜员打开保险柜帮他们装钱。
女柜员笨手笨脚。搞了好半天才打开保险柜,劫匪 NPC 迫不及待,让她滚一边去自己上手,拿到钱两人立刻溜之大吉。这时候肯定有观众说:“这游戏的剧本编很平淡啊,就一个很简单的抢银行。我上次在圣丹尼斯抢银行的时候比这个精彩多了。”
但此时反转来了:演示视频时空回溯,这次不让同伙去装钱了,让柜员去装。趁同伙不留神,玩家一枪将他打死,面对突如其来的谋杀,柜员吓得连忙求饶,玩家自己独吞了所有赃款逃之夭夭,走之前甚至还不忘开两枪庆祝一下。
再次回溯,在威胁大堂经理开门之前,玩家一不小心手抖打死了大堂经理。巨大的枪声把银行所有人吓懵了。就连 NPC 同伙都被玩家吓到。这跟计划的不一样啊?抢个钱而已你杀什么人?直接抛下玩家落荒而逃。抢劫行动至此失败。
看了这个视频,大家是不是觉着,这个游戏 Demo 自由度还不错,玩家的各种行为 NPC 都能配合做出各种相对应的反应,行为树编的还挺全的啊。然而最大的反转来了,我瞄了一眼视频的简介才知道,原来 Demo 里的 NPC 都没有被设定过任何脚本,所有动作、反应、包括说的每一句话,都是 AI 根据玩家的行为和语言实时动态生成的!
更离谱的是,这竟然还是 2019 年的技术展示 Demo。虽然一开始看视频的时候没搞懂,但看了简介后再看一遍我觉着大受震撼。
通过 B 站私信,我与制作团队 rct AI 取得了联系。才发现这个游戏 Demo 居然是中国人做的。于是向他们请教到了很多有关技术的问题。他们也非常乐意将各种资料和其他案例发送给我,并且深入浅出的介绍了许多技术原理。
那么如何在没有任何脚本的情况下,实现这样一个由多个 NPC 构成的实时动态交互场景呢?简单来说,核心在于 rct AI 的混沌球算法。首先他们给每个NPC都设定了性格与目标,以及一些人物背景。就比如:银行雇员非常胆小,故事发生时她才入职银行不久,有心保护银行财产但更怕死;再比如:玩家的劫匪同伙,目标是抢走尽可能多的钱,他脾气暴躁但没啥本事,所以碰上玩家杀人时才会提前逃跑。
那么这些 NPC 在游戏中怎么知道自己每时每刻该做什么呢?这是因为,除了性格和目标规定了 NPC 能做哪些事之外,他们还受当时所处的空间位置、环境参数等因素影响。就比如门打没打开,有没有拿到钱,现场是否死了人。游戏场景进度影响 NPC 做不同的活动。
玩家的行为、说的话,会被识别并梳理为各种相对应的“意图”输入 AI 引擎混沌球之中。就比如玩家说:(插入 just open the safe,fast 让柜员打开保险柜门的画面),AI 判断玩家想要让它去执行打开保险柜的操作,而且自己还被枪指着,于是立刻乖乖就范。AI 在游戏中可以被理解为“演员”,他们配合玩家的行为进行“表演”,还原现实里抢劫的“刺激体验”。
当然,和 AI 躲猫猫一样,rct AI 的智能 NPC 也需要进行大量训练,这也是为什么视频还存在一些剧情BUG 的原因。但令我非常吃惊的是,NPC的说的话居然也是 AI 实时生成的,NPC 没有固定的对话模板,理论上,只要玩家想,甚至可以跟一个 NPC 无限对话下去!
我们生活中有很多可对话的 AI 应用案例。就比如小爱同学,就比如手机导航。不过这与 rct AI 在做的有一些区别。比如百度导航,AI 回答给你的句子是固定的,在相同情况下只会以固定语料回答;而 rct AI 在做的却是生成式语料,回复的句子也是由 AI 生成,即便不同玩家对 AI 说相同的话,得到的回答也大概率不会重复。同意,在不同环境条件下,AI 也给到的回复也大不相同。
在这些技术加持之下,他们做游戏不再是以往那样线性叙事,而是直接打造出一个游戏场景,让玩家在场景中自由探索。理论上,玩家几乎可以玩出成百上千种剧情可能,即使同一个玩家用相同的方式玩游戏,也有可能玩出截然不同的剧情结局。
随着训练次数的增加,rct AI 也曾见到NPC做出过完全出乎他们意料的举动。就比如在他们做的另一个演示“盗梦人”技术 Demo 中,同样的抢银行场景,在玩家抢劫的时候,女柜员竟然会偷偷自己从柜台里拿钱。这谁能想到!
可惜,他们本职工作是做 AI 的,不是做游戏的,这个 Demo 大部分人体验不到。不过他们跟国内外不少游戏公司有技术合作,未来一两年会有一些初步应用了他们技术的游戏陆续上线。
可以预见,AI 技术对游戏行业进步有着很大的积极意义。一方面,开发者能从枯燥的脚本地狱中解放出来,用更多的精力去打磨画面与玩法;另一方面,这种完全打破以往游戏固定线性叙事的玩法,能做出我们从未尝试过的自由体验。就比如《底特律变人》,虽然看上去好像是我们玩家选择了分支剧情走了不同的结局,但实际上无论走哪条线,都不过是观看设计师提前定好的剧本,我们从未真正决定过故事走向。
当下开放世界主要在做“空间”与“时间顺序”上的开放,玩家可以决定先去哪里,先做哪些任务,但最终还是得做完所有事情才能通关,所有人都不过是用不同的顺序去体验同一个流程。《巫师3》《刺客信条》《大表哥2》都是如此。
但如果这些AI技术能在游戏里大规模落地,或许空间和时间就能变得不那么重要。开发者甚至可能不需要再给玩家设定任何具体任务,而只是做出一个生动开放的幻想世界任玩家去自由探索。没人知道我会遇到什么冒险,没人能定义我会玩出什么结局,游戏像现实一样未知且神秘。或许“开放世界”的定义都将被改写。
说不定在未来的游戏,通过这种由 AI 生成的多变的剧情和结局。我都没办法给大家做《游戏不止》的节目了。不过那时候我说不定也没心思做节目了,这种游戏都能有了,AI女友岂不也能实现?做节目、做啥节目,跟AI女友没羞没臊去不好吗!
人类对自由的渴望,是灵魂最底层的渴望。但长久以来,我们所做的一切选择都未逃不过开发者的束缚,始终是带着镣铐的舞蹈。
在 2021 年的互联网中,我们以为凭借着自己所谓的自由意志,阅读了一篇篇文章、观看了一条条视频、或在游戏中完成了几个任务。然而实际上,是网站编辑决定了我们能看到哪些东西,游戏设计师决定了我们将经历的游戏体验。
真正自然的体验和生活方式绝不应该被限制在屏幕的流转之间,而应该处于心流状态的场景带入和转换。不管是 AI 躲猫猫还是 rct AI,能看出我们距离《失控玩家》里表现出来的技术水平显然还是有很大差距的。但值得庆幸的是,2021 年的地球上,人类已经朝着这个方向做了不少有意义的探索。
也许未来,我们能在 AI 的帮助下,在更好的世界中认识彼此。
感谢收看本期的《不止游戏》,喜欢的观众朋友可以点赞关注收藏转发,同时这期也感谢 rct AI 对本期节目的支持和帮助,我是乔伊,我们下期再见。
学习,思考,感情,零道德!
300个G能做到游戏里面的 ,像现实的 每个人至少要三亿个G
现在的个人电脑能带动吗?
当ai里的老婆要你把她放出去的时候
自己偷偷拿钱,对人性的把握这么精准[笑着哭]