从“杰弗里斯”到“绝悟”,浅谈游戏AI正在发生的深层次变革

2023-10-25 18:40

本文主要是介绍从“杰弗里斯”到“绝悟”,浅谈游戏AI正在发生的深层次变革,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在过去相当长一段时间内,游戏AI整体都没有发生过太大的变化,亦或者可以说是驻足不前。从以卖数值为核心的网游和手游的低智能寻敌AI,到ARPG中相对硬核以数值+技能+攻击节奏变化为核心思路的人机对抗,再到MOBA、RTS游戏中以操作和运营为核心策略的人机竞技,游戏AI大多都在一个品类下进行形式上的调整,鲜有本质上的变化。近些年,游戏引擎、画面、声乐一次又一次改朝换代,游戏AI却从未发生过一场轰轰烈烈的“革命”。
 


游戏中的常见AI机制

在众多游戏的PVE对抗中,AI都是其核心逻辑,《明日方舟》中怪物的进攻波次、《只狼》中敌人技能的释放、《星际争霸2》电脑一方的运营与攻防策略,其本质都是AI逻辑的实际表现。虽然游戏类型和战斗规则千变万化,但AI的本质却疏通同归,常规游戏AI的实现大致分为两种:有限状态机(Finite-State Machine,缩写FSM)和行为树AI。

有限状态机(FSM):

顾名思义,这种游戏AI其本质为拥有有限个不同状态的机器人,而在机器人设定上,寻敌、进攻、逃跑等都是设计者赋予机器人的状态,FSM机制下的机器人的状态为互斥,即同一个时间点机器人有且仅有一个状态,即寻敌的时候不会进攻,而切换到进攻状态时会脱离寻敌。

这里以RPG游戏中常见的战斗AI来举例:假设机器人有休息、寻敌、战斗、逃跑四种状态,其不同状态的切换大致如图:
 

简单的FMS AI机制


FSM这种AI逻辑与生物简单的行为类似,状态与状态之前的切换有明确的因果关系。也正因为如此,在机器人需要相对多的状态时,需要非常多的状态,而且不同状态间会有一定的逻辑关系,这样会导致AI逻辑的复杂度成倍上升,如图:
 

比较复杂的状态机


逻辑复杂度的提升带来的直接问题就是逻辑混乱,使得AI新规则的添加和维护变得异常复杂,甚至会产生一些设计和逻辑上的BUG,直接影响到玩家的体验。

所以,FMS往往适用于逻辑相对简单的游戏AI,比如ARPG中单一角色的战斗逻辑,游戏中NPC的行走逻辑等等。而涉及到策略与战略等复杂逻辑是就需要用到行为树了。

行为树:

行为树的两个状态间的逻辑和FSM略有相似之处,也是通过逻辑来触发,不同之处在于,行为树的一个状态可以根据条件不同而后延伸到其多个分支下的多个节点,从而细致又明确的执行一系列指令。依旧使用上面的角色状态来举例,大致逻辑如下:
 

简单的行为树


与FSM相比,行为树的的结构更清晰,在面对复杂的行为逻辑时维护和调整更加方便。

这两种机制可以说是当前市面上绝大多数游戏AI内核,简单到人物行走,复杂到4X游戏和RTS的策略变化,二者结合共同构成了玩家与机器人交互的核心体验。

那么,游戏AI是否有更多的可能性呢?

“杰弗里斯”与“绝悟”:思路的转变与内在的革命

从去年到今年的游戏圈,有两件事绝对值得注意:《炉石传说》推出的完美卡牌“了不起的杰弗里斯”和《王者荣耀》新版人机AI“绝悟”。PS:《星际争霸2》中的AIphaStar与“绝悟”机制类似,不过到目前只与职业选手较量过,未公开面对玩家。

了不起的杰弗里斯:

杰弗里斯是《炉石传说》仅有的一张“智能”卡牌,QQ靓号交易其战吼效果可发现3张最适合当下情形的卡牌,比如空费时会发现背刺、跳费,铺满场时容易获取斩杀和咆哮,需要扩大场面时会获得佛丁,缺少斩杀手段时能获得火球术、熔岩爆裂等等,总结来说就是杰弗里斯可以从控场、铺场、补牌、斩杀等状态的不同给出最优解。

杰弗里斯的发现机制


不过杰弗里斯的发现机制并非智能AI,其本质依旧是行为树,发现机制的内在是官方设定好的多种选项,之后筛选出符合条件的卡牌,也就是我们常说的if_else。

在卡牌对战中,关键字和状态是其核心逻辑,机器人(炉石的酒馆老板)的AI逻辑和运算量相对简单,而且卡牌构筑强度较低,玩家在与AI的对局中很难体验到乐趣。杰弗里斯的特别之处在于它将这种高强度AI实现的使用权交给了玩家,这在众多游戏中都是绝无仅有的。

“绝悟”——新一代人工智能AI:

在今年《王者荣耀》例行的“五五开黑节”上,绝悟绝对是最亮眼的角色。作为新一代人工智能,绝悟通过模仿玩家行为进行学习,基于强大的GPU和CPU,它在8小时训练后就能达到游戏内置人机的强度,30小时达到王者水平,70小时就能接近职业水准。而在实际对局中绝悟也战果斐然,在与玩家的2100对局中,绝悟仅负4场,且主要输在暴击率这一随机因素上。
 

绝悟的学习速度


“绝悟”是游戏AI的全新形态,它的存在得益于这几年炒的热门概念——机器学习,而相比语音识别、图像识别等,MOBA、RTS、围棋等存在较多变数且拥有极强的策略复杂度的竞技项目更适合用于机器的深度学习。“绝悟”可以说是AI在本质上的一次变革,一方面机器人方不再受到行为树规定规则的约束,另一方面AI强度会跟随玩家整体强度进行自我提升。

游戏游戏AI变革的意义

策略复杂度与灵活性提升:

再复杂的游戏AI也终究抵不过人类的发散思维与创造性,这在以往众多的游戏中都得到了印证,比如《只狼》中玩家可以利用BOSS的寻路漏洞卡地形无伤消耗,WOW中众多BOSS在开荒期过后都进入了无聊的刷材料模式。相对简单的AI在前几次游戏体验中还会觉得有趣,但多次体验后必然会觉得无聊,如果没有数值和材料的驱动,必然会导致玩家弃坑。
 


如果AI具备更强的随机性或者逐步自我完善的特性,至少在有限次的对局中漏洞不会轻易被找到,多次挑战也会存在不同的变数。

更有活力的游戏环境:

《炉石传说》让人越发觉得枯燥,除了套牌强度稳定后环境固化,还有插件和大数据带来的透明化,即在对局中我们可以根据几张卡牌就能分析出对方的套路,实战多了几分稳定,少了几分随机与乐趣。杰弗里斯的加入则为对局提供了相当的变数,尤其是在盗贼手中可以触发多次效果,至少在有宇宙体系的对局中,游戏不再那么枯燥了。

自给自足的生命力,可持续发展的游戏环境:

如果你是近几年《王者荣耀》的新玩家,或者有玩过小号,很容易发现在钻石以下的对局中经常出现“人机局”,比较简单的就是对面全员人机,且经常6分投;稍微复杂一点的会在双方都置入机器人,不能C也不会故意送人头,但几乎不会与队友配合,非常影响游戏体验,“钻石才是入门”这个观点的出现多多少少有这方面的原因。
 

5分钟上高地的人机局


随着游戏运营时间变长的是老玩家的流失,新加入的玩家数量不足是MOBA游戏PVP对局内置机器人的主要原因。低配合的游戏AI影响己方的游戏体验,高强度的AI又有可能将对手轻松击溃,而动态生成天梯几十个段位难度的AI又是一个复杂且繁重的工作。此时“绝悟”的优点就体现出来了:在学习当前段位的玩家行为后,其水准与此阶段的玩家相当,除了局内的文字或语音沟通外,几乎可以完美融入玩家对局;而随着游戏版本的更迭、玩家水准的提升,它还能学习新的玩家玩家行为,学习新的操作、运营思路与决策。从游戏持续的生命力和稳定的环境来看,新的智能AI无疑是当下最好的选择。



结语

玩家体验是游戏AI的核心出发点,传统AI的数值强度+节奏变化的调控模式并非糟粕,其结合不同游戏类型、不同难度也都能给玩家带来不错的游戏体验。“杰弗里斯”的设计初衷也是为了让炉石相对固化的对局更加有趣;“绝悟”的存在除了比原有的人机更有趣外也能给低段位的对局注入新的生命力。整体来讲,新的AI机制并非刻意为击败玩家,其目的更倾向于优化玩家的游戏体验。

这篇关于从“杰弗里斯”到“绝悟”,浅谈游戏AI正在发生的深层次变革的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/284474

相关文章

浅谈mysql的sql_mode可能会限制你的查询

《浅谈mysql的sql_mode可能会限制你的查询》本文主要介绍了浅谈mysql的sql_mode可能会限制你的查询,这个问题主要说明的是,我们写的sql查询语句违背了聚合函数groupby的规则... 目录场景:问题描述原因分析:解决方案:第一种:修改后,只有当前生效,若是mysql服务重启,就会失效;

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java终止正在运行的线程的三种方法

《Java终止正在运行的线程的三种方法》停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作,停止一个线程可以用Thread.stop()方法,但最好不要用它,本文给大家介绍了... 目录前言1. 停止不了的线程2. 判断线程是否停止状态3. 能停止的线程–异常法4. 在沉睡中停止5

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll