AI行为
Aine的奇妙冒险 - 一个正在开发中的基于Unreal GAS的俯视角RPG技术原型
在这个正在开发中的的C++项目中,我使用虚幻的Gameplay Ability System (GAS) 实现了三种类型的敌人(战士、游侠和巫师)。他们的游戏能力包括:
-
召唤小怪的技能
-
强力的远程魔法攻击
-
共通的近战和远程普通攻击
关于该项目的更多信息:
-
俯视角RPG的控制器和核心玩法实现
-
增强游戏体验的辅助功能
跨越重洋 - 一个FPS的关卡原型
在这个为期 3 周的项目中,我的近战和远程敌人的AI行为包含三个目标功能:
-
类似于《毁灭战士》的基于token的战斗逻辑(获得token的人方可进行攻击行为)
-
通过 EQS 导航(追逐、扫射和跳跃)
-
看起来比较聪明(寻找掩护并治愈)
AI 控制器 - 我为该项目中的所有敌人实现了 AI 控制器。该控制器包含以下功能:
-
初始化
-
感知功能
-
视觉
-
声音
-
伤害
-
-
仇恨忘记
-
寻找攻击来源
-
向盟友通报威胁

所有敌人的基本行为包括三种状态:战斗、调查、巡逻和被动。每个状态都是一个子行为树。通过在基础行为树蓝图中设置共享的基本状态,我可以减少行为树的耦合。

这是近战敌人的行为树。近战敌人会在不挥舞武器(剑)的情况下被动巡逻。然后,如果它进入战斗状态,就会拔出武器,跑向攻击者所在的位置,并进行徘徊,直到获得token后才会发动攻击。

基础的敌人类包含两个接口,用于处理AI行为和伤害计算。接口对于提醒我实现关键功能和减少功能冗余总是很有用的。

所有敌人的基本行为包括三种状态:战斗、调查、巡逻和被动。每个状态都是一个子行为树。通过在基础行为树蓝图中设置共享的基本状态,我可以减少行为树的耦合。
所有 AI 行为均通过结构化的行为树实现。我创建了一个父类的行为树来处理共享行为,同时让子行为树处理特定功能的行为,使用到的是:
-
Service
-
Tasks
-
EQSs
-
Decorator
关于该项目的更多信息:
-
第一人称射击游戏控制器和游戏玩法的实现
《鼠鼠骑士》 - 一个3D动作平台游戏的Boss战竞技场原型

Boss 战斗原型 - 在游戏原型的第一个版本中,团队指派我创建一个包含以下参数的Boss战斗竞技场:
-
包含两项能够检验玩家的所有技能的掌握程度的技能
-
根据Boss血量产生变化的竞技场
-
强调与巨大体积的敌人战斗的感觉
流程图 - 在向团队领导展示我的设计想法后,我制作了这个流程图来演示boss战斗逻辑。
BOSS 战的核心是捡取奶酪。每当玩家捡起3个奶酪时,BOSS 就会变弱,玩家可以在完成平台跳跃挑战后对Boss造成伤害

类图 — 在确认了Boss战需要哪些API后,我快速设计了这个类图来帮助我组织 Boss 的有限状态机 (FSM)。逻辑从 Initialization()(一个“工厂函数”)开 始,初始化 Boss 战竞技场中的所有对象。此外,为了将来的实现,我创建了一个虚拟类“Enhancer”。这个类将包括所有玩家需要交互的游戏对象。为了管理 Boss 的 FSM,我使用枚举项记录她的状态。
由于我被要求在 7 小时内完成原型,并且没有任何可用资产,因此我使用几何体快速构建了测试地图和竞技场环境。Boss战斗关卡具有以下特点:
-
两种挑战玩家移动跳跃能力水平的技能
-
以普通攻击方式发射火球
-
每当玩家收集到奶酪时就会发射火焰新星
-
-
竞技场的两个区域挑战玩家不同的进阶技能掌握程度
-
Enhancer和随机奶酪的位置带来的多样化平台跳跃体验
关于该项目的更多信息:
-
《鼠鼠骑士》的关卡设计




