欢迎光临散文网 会员登陆 & 注册

RoN支持者开发日志(50——2023/03/31

2023-04-01 17:37 作者:E1xP  | 我要投稿

摘要:重做警局/AI

写在前面的话

该篇内容来源于VOID向玩家群体所发送的邮件与Steam的公告。
该翻译旨在让更多的人了解与理解RoN游戏以及官方开发组。
如有错误,敬请指出

注:本篇部分表达经过润色与本土化,具体意思请以英文原文为准


2023.03.31 Ready Or Not 支持者开发日志 卷50

内容:重做警局/AI

来自 VOID Interactive

绪言

        嘿,老哥们!

        这是我们两周一次开发者日志的第50卷!为纪念这里程碑时刻,我们这次的日志将是一卷加长卷。上半篇章我们将来看看重做后的警局(Lobby),而下半篇章则用较长的篇幅来介绍我们RoN的AI系统。

        我们先来看看警局重做的咋样了,警局是几乎所有玩家第一个进入的场景,警局的整体的氛围与其破败的样子,隐射了Los Suenos(游戏世界)的背景,作为给玩家留下游戏第一印象的场景,其塑造十分重要。

        明显后改的房间,破败的建筑,都与高科技的现代警用装备强烈反差,向玩家明示着游戏世界的模样。

重做警局

        蛮多老地图都已经被翻新过了,而大本营——警局总不能还是现在这鸟样吧。在Adam(22年12月)更新中,警局就已经改过一版细节了,是时候给你们展示一下我们后续对警局的改动了。

稍微重做了一下靶场,现在靶位相比现在现在的更加开放一些。


警局的监控与系统组成了一张大网。LSPD(Los Senous Police Department)的状况惨不忍睹,得利用上一切所能利用的。记得定期跟调度中心沟通沟通。

        往后,警局会有更多的边边角角可供玩家探索,甚至还藏一个复活节彩蛋。大部分就像现在的帽子、咖啡机一样,而有一些甚至会给你、swat,甚至整个游戏体验带来变化。

证据室,在这里你可以看到被收缴的武器、毒品以及[涂黑内容]


LSPD警局相对平和的时候,珍惜暴风雨前的宁静吧。

Ali的RoN AI小课堂

        应你们的请求,参与Ready or Not AI开发较多的Ali,给我们写了一篇关于RoN中AI,如何依照各种态势决策并执行的文章。

        在RoN中,我们使用的AI系统是基于效用的AI系统(Utility-Based AI System)。该系统是一种决策模型。

        PS:常见的AI决策系统有:决策方法:有限状态机(Finite-State Machines),分层状态机(Hierarchical Finite-State Machines),行为树(Behavior Trees),效用系统(Utility Systems),目标导向型行动计划(Goal-Oriented Action  Planners),分层任务网络(Hierarchical Task Networks)[1]

        效用AI系统是通过在计算机中利用数值、公式以及函数曲线对人类行为建立数学建模。在这数学模型中试图模拟的“人”被称为智能体,更通俗一点叫“人工智能”。在不同的环境中,智能体都有其决策列表(或称行为列表)。每一个决策帧都将从行为列表中选择一个行为来执行。这就人工智能持续决策的核心。

        对于每个行为,其都有对应的多个决策因子,从数学层面上正是这些组成了决策模型,并最终得出该行为的得分。每个行为都会计算其得分,并将其聚合(通过某种评分方式)为最终得分,选择评分最高的行为作为AI决策行为。(PS:该方式可以简化地认为数值化参数并加权计算最优解,AI决策的核心便是依照决策模型,选择出模型认为的最优解)所得出的AI决策行为将作为AI的行动行为(利用行为执行系统进行执行),其决策也具有一定的有效时长,通过这种方式使得AI决策实施更具一贯性,而非摇摆不定、反复横跳。同时,我们还采用 行为中断系统(Commit Interrupts),其包含一系列行为,每个决策帧都将评估这些行为,若决策执行,则可以打断当前的行为。(PS:此处指的应该是无视决策有效时长,立刻中断。)这种方式能让我们更灵活地管控AI。

        得分只是基于四种基本运算——加减乘除所得出的结果。其相当简单,只是在计分器中进行四则运算。同时,模型师也能通过调整分数计算来影响决策模型。

        比方说,决策因子——“健康”。在不同的情形下,我们设计对应的函数对其进行评分,最终输出一个数值。对于“健康”,最简单的就是用 当前值/最大值 得到介于0.0-1.0的一个值(或称分数),如果需要的话也可以对其进行加权计算,来进一步调整AI的决策。你可以想象其他决策因子会有比这更复杂的评分函数。评分函数的得分还将被响应曲线进一步所映射,并作为最终的决策分数。默认的都是线性函数,但你也可以选择其他的缓冲函数,如指数函数、正弦函数(甚至你可以用自定义函数,我们将提供相对简单的方式来让你使用自定义函数)。

        0.9的健康度(依照函数变换后)可能有不同的得分导向(好或坏)。正向得分的比如无需找掩体,可以采取一些更激进的行为。假如说你希望决策偏向满血,则是负向得分,会促使智能体找掩体,并自己回血(当然,RoN里AI不会回血,只是举个例子,但能充分说明即使数值相同,采用不同函数也可以有不同的决策导向)。

        试想一下,决策模型涵盖数百个决策因子,通过调整其对应函数可以使得嫌犯/平民具有不同的性格特征,有些人更倾向于负隅抵抗,而有些人更倾向于当老六,甚至有些你行动慢了他就自杀。

        此外,我们系统中还有个不算啥创新,但确实其他效用AI系统中都没见过的设计。阈值门系统。他作为决策因子的辅助设计而存在。阈值门和决策因子类似,但输出并非浮点数,而是布尔类型的是或否,开放或关闭。其目的是控制决策时是否考虑某种行为。只有阈值都满足时,才会去考虑这个行为。其中一种用法就是实现冷却机制,用常规的决策因子和函数难以实现这种二进制(两状态)的判断。即冷却时间是否结束?这种冷却判断需要在考虑决策行为之前执行。在没有这种设计之前,有些时候AI会在没有外界刺激的情况下就自己投降,或者干一些我们不希望的事,但通过调试其分数权重,又确实符合函数。阈值门让我们多了一种调控AI的方式,(能够限制AI的行为边界)让他们不至于干一些离谱事,便于游戏设计师设计游戏。

        通过数学模型与公式来调整输出结果(利用权重、计分方式和响应函数),能让不同AI具有各种不同的特性,从而影响玩家的游戏体验,而这种特性难以通过手动编程来实现。我们先前的AI基本就是一个大型的有限状态机,只能通过硬编码的方式来进行调整。但如果要更进一步,实现更好的AI系统,让设计师可以在编辑器中快速地条恒AI行为,而无需程序介入,那就需要将决策系统从有限状态机换到效用系统了(这耗费了6个月的时间)。

        不过,像移动并捡起收缴武器、破门(含有多个中间状态)等具体行为,我们还是用的有限状态机。在宏观决策方面,决策核心都是基于效用系统的,不再需要按“如果怎样,那就怎样”这种模式来设计AI,而是为他们设计一套行为规则,然后让他们自行决策,(开发起来)相对更加简洁,也更像我们心目中的“AI”。

        我们开发要做的就是开发AI包含各种决策行动的模型(AI的定义/个性)。完成后,就可以给AI设置对应的模型。目前我们差不多有50个左右的AI模型,为了简化开发,一张地图中AI一般都具有类似的模型,毕竟没必要反复开发相同的东西,好用的模型能复用就直接复用;毕竟维护这些AI模型的投入也不小,开发还是尽量保持精简的好。

结语

        这就到了第49卷开发者日志的结尾,别忘了继续关注未来的开发信息。

        如果你们想要帮我们在Steam支持者的开发版本上测试新内容,并与我们反馈您的意见,亲自参加RoN的各种活动,欢迎来www.voidinteractive.net或在Steam商店页面购买成为支持者。

        若你是在Youtube或Twitch上想做点新游戏的视频创作者的话,要不要试试这游戏?Ready or Not已和Lurkit合作以提升创作体验。请务必在这关注我们:https://www.lurkit.com/games/ready-or-not/streams

脚踏实地,志存高远

VOID Interactive

参考/引用文献

注:关于效用系统可参照以下大佬所撰写的文章

[1] wolf96 游戏人工智能开发之6种决策方法 https://blog.csdn.net/wolf96/article/details/48310353

麻了,这篇是真的长

E1xP

2023/04/01


RoN支持者开发日志(50——2023/03/31的评论 (共 条)

分享到微博请遵守国家法律