【严阵以待/熟肉】第50期周报-关于新准备室外貌和 AI 重修

欢迎来到 第50期 周报!
为了纪念这个里程碑,这次周报会稍微长一些。这次周报会带来一些有分量的 AI 系统改动,以及(车站)准备室的再度重修。先从准备室重修开始,作为大部分玩家接触的第一个区域,准备室的好坏决定了玩家对游戏的第一印象,周围的环境同时也作为了洛圣都的一个粗略缩影。房间里,重新修筑的内饰与崩毁的残垣断壁相互交织着,无处不与屋内先进的警用装备形成的鲜明的对比,让玩家沉浸在他们抉择的世界中。
浴火重生的车站(准备室)
我们可不会把玩家的家晾在一边,它会与所有参与重修中的地图一样并入重修计划。我们已经在亚当更新中加入了一阶段准备室,我们意识到是时候该开始更新剩余部分了。
以下:稍微重修了靶场的外貌和光影,把原先让人直犯幽闭恐惧症的狭小的空间稍微扩大到更加大气舒适。

以下:监控室和情报中心,特警们迫切需要这些情报的帮助。请尽量定期访问派遣讯息

在未来,车站内会有更多的犄角旮旯需要你去探索,你甚至会发现一些彩蛋。大致是类似于咖啡机和杀戮屋外的警帽这类,有些会给你,你的警员,以及游玩体验产生不同效果。
以下:证据室,你能在里面找到收缴的武器,毒,以及@#!¥(此处经过编辑)

以下:LSPD警局内相对清闲的时刻,在你还能享受的时候好好享受吧。

////来自严阵以待AI程序员 Ali 的一封信:经由大众请求,严阵以待中对 AI 的构筑最有话语权的程序员“Ali”,将向大家讲解严阵以待中的AI行为,以及AI如何基于环境因素而改变后续决策。我们使用的AI系统名为“Utility-Based”AI系统,即一个负责决策的模型。
简要原理就是通过数学模型里的公式,数字,曲线,来模拟人类的行为。而那个“人类”则被称为agent或者AI,每个AI在环境中都会被赋予一系列的决定表(Decisions list,或者也可以叫做“动作列表”)。每一帧中AI 都会跑一遍这个列表来看接下来将会选择执行哪个新动作。这个行为就叫做核心AI循环(core AI loop)在每个动作内,又有一个叫做“考虑列表”(Consideration list)的东西根据数学模型计算每一项考虑内容的分数,最后加起来就是如果去执行这个动作的总分,最后对比每个动作哪个总分最高就会优选出哪个动作。并且有些动作有最低承诺时间,哪怕下一帧决定执行b动作,但在动作 a 彻底执行完前 动作b 不会生效。而有些动作则可以在下一帧被打断。
计算最终分数仅仅只有四个数学执行单元,加减乘除,非常简便,计算后就是该动作的最终得分。举个例子“生命值”,根据现有/最大生命,我们会在[0,1.0]这个区间根据加权数得出一个分数,用这分数作为决定ai下一步行动的部分因素之一。实际上远远不只要考虑“生命值”带来的分数。默认计算单个分数是线性函数,但也可以使用指数函数,正弦曲线函数等等。
血量0.9/1.0可以是一个好坏兼具的事情,好处是血量高AI不太需要找掩体,可以冒险做出一些大胆的动作,坏处是如果AI被设定成想要一直保持满血,一点小伤就会去找掩体打药。(类似老头环boss一受伤就喝血或者apex被滋两滴就去打甲,很浪费时间)。当然ron没有打药这个东西,只是举个例子。


可以想象一下拥有一个几百项考虑选项的库,我们利用这些变量去创造不同AI的人格 或不同的行为习惯, 有些AI比其它AI更不会轻易投降,或更喜欢找掩体,或着在你处理不当下更倾向于自尽。

我们的系统中有另一个概念,我认为我在其他人的实用程序实现中没有看到过,但它不是什么开创性的东西。我们叫它“阀门”。它是对“考虑”的补充。“阀门”与考虑因素类似,但它们不弹出分数,只输出true或false、open或closed(是或不是两个选项)。阀门的目的是阻止我们不想让AI“考虑”的行动(举例:通过人为禁止来避免不成熟的系统设定出现让劫匪在特警面前换弹这种一眼就知道不符合常理的情况。说人话就是“考虑”系统不够智能的场景下就用程序员的“阀门”去手动操作)。所有的“阀门”都必须保持开启才能让“考虑”运行得分。冷却计时器就是一个很有用的例子,你没有办法通过考虑和权重来合理地做到这一点,它需要一个true or false的操作。冷却时间结束了吗?冷却时间结束后“考虑”才能再度运行(比如在劫匪开火的两秒内你可以任意使用致命武力还击,即使他投降,但两秒后“考虑”重新开始运行,你的攻击行为就可能会被判定为违规扣分)。在我们没有这个概念之前,劫匪会无征兆自己投降,或者做一些它们不应该做的动作,当你去调试发生了什么时,所有的程序运行又似乎都是合理的。“阀门”帮助我们更好地控制它们,使它们不会做出迷惑行为,不会做出意想不到的事情,这是我们的设计师愿意看到的的。

通过数学公式和函数来自动决定AI行为能做到纯手动可能做不到的事,每个AI行为都可能与别的AI有些微不一样。而之前的AI还是“有限状态机”,也只能被我们编辑,想要自如的为其他个人开发者提供调节AI行为的选项需要切换Utility(花费大约六个月才行)。然而,我们并不会完全抛弃“有限状态机”,向某方向移动以及捡起武器或者破门还是用的固定逻辑算法(包含大量状态),但是AI的行为决策和大脑都是基于Utility的,我们不用为他们的每一个行为都写一个“if发生a,then做出行为b”的代码,相对的我们会用一系列的行为交给他们自己决定,更逼近于一个“真实的”AI。作为一个编辑者,你唯一要做的就是创建一个AI框架(AI 的性格),然后再把这个性格下放给特定的AI,我们已经做了50个预设框架(性格),让不同的地图AI会有他们特定风格和行为方式,同一地图的AI性格也会相近。简单来说,我们不想创建几十个相同性格的复制人出来,但有时候也会重复利用比较优秀的AI性格。加上管理这么多架构的开支负担,让这些架构保持精简也是个好事情。