游戏开发 / 策略对战游戏(类炸弹人)
面向独立游戏或移动端休闲竞技领域,实现多人对战AI与完整游戏循环。
点击空白处退出提示
游戏开发 / 策略对战游戏(类炸弹人)
面向独立游戏或移动端休闲竞技领域,实现多人对战AI与完整游戏循环。
地图系统:17×17网格地图,支持不可摧毁墙体、可破坏障碍物、道具生成与地板实例化渲染,基于InstancedStaticMesh优化性能。
角色系统:玩家与AI角色共用基类,支持平滑移动(Timeline插值)、网格坐标同步、攻击(放置炸弹)、死亡/复活(含动画定时器)。
属性系统:炸弹范围、炸弹上限、移速等级、护盾层数,受道具影响实时变化。
AI行为树(BT):寻找障碍物:BFS搜索可破坏建筑,选择最近并导航至其相邻空地,到达后攻击(放置炸弹)。
追逐敌人:实时获取游戏状态中所有存活Pawn,选择距离最近且在警戒范围内的目标,动态更新追踪路径。
寻找道具:BFS搜索道具格子,优先拾取增益道具。
随机移动:在安全空地中随机选择目标点,增加行为多样性。
放置炸弹:基于冷却和概率自主放置炸弹,与攻击行为解耦。
紧急逃生:检测当前格子是否处于炸弹危险区,BFS搜索最近安全格并切换为逃生模式(打断其他任务)。
移动执行:BFS实时计算路径并缓存,逐格推进,支持任务中途重置、超时保护、目标失效检测。
炸弹系统:爆炸延时(3秒),向四方向扩展(受炸弹范围属性影响)。
伤害判定:(对玩家/AI)、摧毁障碍物、连锁引爆其他炸弹。
粒子特效与音效反馈,爆炸范围可视化(通过GetDangerCells动态计算)。
道具系统:四种道具(爆炸范围+1、移速提升、炸弹上限+1、护盾),生成概率80%,拾取后应用效果并销毁。
游戏状态管理:GameState统一管理所有Pawn引用,供AI查询敌人位置,支持动态注册/清理。
输入与视角:玩家键盘控制移动(WASD/方向键),空格放置炸弹;相机固定俯视角,自动聚焦地图中心。
碰撞与寻路:基于网格的通行性判定(空地/道具可通行,墙体/障碍物/炸弹不可通行),危险区动态排除,保证AI路径安全。
引擎与语言:Unreal Engine 5(C++),使用AIModule、BehaviorTree、Blackboard、GameplayTasks构建AI框架。
核心算法:寻路:BFS(广度优先搜索)计算最短路径,缓存路径节点,支持动态避障(危险区实时过滤)。
危险区域检测:基于炸弹爆炸范围动态生成TSet,O(1)查询效率,用于AI逃生决策。
路径回溯:通过二维前驱数组记录父节点,逆向还原完整路径。
架构设计:角色继承链:AA_Pawn(基类)→ AA_PlayerPawn / AA_AiPawn,复用移动、攻击、属性逻辑。
行为树节点:每个BT任务独立封装(UBTTaskNode子类),职责单一,支持热插拔和参数配置(范围、概率、冷却)。
组件化地图:AA_Map管理网格数据、障碍物/道具/炸弹Actor数组,提供位置转换、安全查询接口。
对象池思想:通过InstancedStaticMesh渲染大量墙体/地板,降低DrawCall。
移动平滑:使用UTimelineComponent配合浮点曲线,实现线性插值移动,旋转同步过渡,保证视觉顺滑。
交互反馈:音效(死亡、拾取、攻击)、屏幕调试信息(GEngine->AddOnScreenDebugMessage)辅助开发调试。
鲁棒性处理:空指针检查、边界校验、超时保护(移动超时3秒重置)、任务状态互斥(避免任务冲突)。
扩展性:道具类型通过TMap映射网格体,新增类型仅需扩展枚举和ApplyTo逻辑;AI参数(搜索半径、概率、冷却)均暴露为UPROPERTY,支持蓝图调整。



评论