3879 字
19 分钟
战斗AI设计文档 - 《无尽牌域》敌人AI系统
2026-05-11

战斗AI设计文档#

《无尽牌域》敌人AI系统#


📋 文档信息#

  • 版本: v1.0
  • 日期: 2026-05-08
  • 作者: GameDesigner
  • 对应GDD: GDD-roguelike-card-game.md
  • 状态: 设计阶段

🎯 AI设计目标#

核心原则#

  1. 可预测性 - 玩家能够理解敌人的行动逻辑
  2. 公平性 - AI不依赖”作弊”数值,而是智能决策
  3. 多样性 - 不同敌人有不同行为模式,避免单调
  4. 可调性 - AI难度可以通过参数轻松调整

AI设计禁忌#

  • ❌ 不允许AI”开图”看到玩家手牌(除非特殊敌人)
  • ❌ 不允许AI使用玩家不可用卡牌
  • ❌ 不允许AI在普通难度下做出”完美决策”
  • ✅ 允许AI在困难模式下有”预判”(模拟高级玩家思维)

🧠 AI决策框架#

决策优先级系统#

所有敌人AI基于优先级评分系统进行决策:

# 伪代码:敌人决策逻辑
def enemy_turn(enemy, player, game_state):
# 1. 评估当前局势
threat_level = evaluate_threat(player)
self_preservation = evaluate_self_hp(enemy)
# 2. 根据敌人类型选择行为模式
if enemy.type == "AGGRESSIVE":
actions = prioritize_damage(enemy, player)
elif enemy.type == "DEFENSIVE":
actions = prioritize_survival(enemy, player)
elif enemy.type == "STRATEGIC":
actions = strategic_decision(enemy, player, game_state)
# 3. 选择最高评分行动
best_action = max(actions, key=lambda x: x.score)
# 4. 执行行动
execute_action(best_action)
# 5. 更新意图预告(给玩家看)
update_intent_display(best_action)

📊 敌人行为模式分类#

类型1:激进型 (Aggressive)#

设计理念:优先造成伤害,忽视防御

决策权重

  • 攻击玩家:权重 70%
  • 防御自己:权重 20%
  • 使用特殊技能:权重 10%

典型敌人:哥布林战士、狂暴野猪

AI逻辑示例

哥布林战士:
类型: 激进型
生命值: 30
攻击力: 8
防御力: 2
决策逻辑:
- 如果玩家生命 > 50%: 90%概率攻击
- 如果玩家生命 < 50%: 100%概率攻击(处决模式)
- 如果自身体力 < 30%: 40%概率防御
特殊技能: "偷袭"
触发条件: 玩家手牌数 > 5
效果: 偷取玩家1张随机手牌
使用概率: 15%

类型2:防御型 (Defensive)#

设计理念:优先保证生存,伺机反击

决策权重

  • 防御自己:权重 50%
  • 攻击玩家:权重 30%
  • 回血/增益:权重 20%

典型敌人:亡灵骑士、铁甲兵团

AI逻辑示例

亡灵骑士:
类型: 防御型
生命值: 50
攻击力: 6
防御力: 10
决策逻辑:
- 如果自身防御 < 10: 80%概率施加防御
- 如果玩家攻击力 > 10: 60%概率使用"盾挡"
- 如果自身生命 < 30%: 100%概率使用"生命虹吸"
特殊技能: "亡灵守护"
触发条件: 生命值首次低于50%
效果: 获得"无敌"1回合
使用限制: 每场战斗1次

类型3:策略型 (Strategic)#

设计理念:根据局势动态调整,模拟”智能对手”

决策权重:动态变化

典型敌人:巫师、首领、智慧型BOSS

AI逻辑示例

暗影巫师:
类型: 策略型
生命值: 40
攻击力: 10
防御力: 3
决策逻辑:
回合1-2: 优先施加Debuff(弱化玩家)
回合3-5: 如果玩家攻击力 > 12,优先防御
回合6+: 如果自身生命 > 70%,激进攻击;否则保守防御
特殊技能: "暗影诅咒"
触发条件: 玩家生命 > 80% 且 玩家手牌 < 3
效果: 玩家每回合流失3点生命,持续3回合
优先级: 高(如果触发条件满足,90%概率使用)

类型4:狂暴型 (Berserker)#

设计理念:生命值越低越危险,高压迫感

决策权重:与生命值成反比

典型敌人:狂暴巨魔、血怒狼人

AI逻辑示例

狂暴巨魔:
类型: 狂暴型
生命值: 80
攻击力: 10 (基础)
防御力: 5
狂暴机制:
生命值 100-70%: 攻击力 = 10,行为 = 普通
生命值 70-40%: 攻击力 = 15,行为 = 激进
生命值 40-10%: 攻击力 = 20,行为 = 疯狂(无视防御)
生命值 < 10%: 攻击力 = 30,行为 = 自杀式攻击
特殊技能: "血怒"
触发条件: 生命值首次低于50%
效果: 攻击力永久+10,防御力永久-5
使用限制: 每场战斗1次

🔥 BOSS AI设计#

BOSS设计原则#

  1. 阶段性 - BOSS应有至少3个阶段(100-70% / 70-30% / 30-0%)
  2. 预告性 - 强力技能必须提前1回合预告
  3. 反制性 - BOSS应针对玩家的卡组类型调整策略

BOSS示例1:炎魔领主#

炎魔领主:
生命值: 200
攻击力: 15 (基础)
防御力: 8
=== 第一阶段 (100-70% 生命) ===
行为模式: "试探"
回合1:
行动: 施加"AOE火焰" (对所有敌人造成5点伤害)
意图预告: "准备释放火焰"
回合2:
行动: 普通攻击 (造成15点伤害)
意图预告: "攻击最弱的敌人"
回合3:
行动: 防御 (获得10点护甲)
意图预告: "准备防御"
循环: 回合1-3循环
=== 第二阶段 (70-30% 生命) ===
行为模式: "狂怒"
解锁新技能: "火焰风暴"
火焰风暴:
效果: 对所有敌人造成12点伤害 + 施加"燃烧"(每回合3点伤害,持续3回合)
使用条件: 每3回合可使用1次
意图预告: "2回合后释放火焰风暴!" (提前2回合预告)
决策变化:
- 攻击频率 +30%
- 防御频率 -20%
- 如果玩家有"燃烧"Debuff: 50%概率使用"AOE火焰"(引爆燃烧)
=== 第三阶段 (30-0% 生命) ===
行为模式: "死亡挣扎"
解锁终极技能: "地狱火"
地狱火:
效果: 对所有敌人造成30点伤害
使用条件: 生命值低于10%时必定使用
意图预告: "即将释放地狱火!" (下回合行动)
特殊: 释放后BOSS进入"疲劳"状态(1回合无法行动)
决策变化:
- 优先使用高伤害技能
- 不再使用防御
- 如果玩家生命 < 30%: 100%概率使用"地狱火"(提前释放)

BOSS示例2:冰霜女巫(策略型BOSS)#

冰霜女巫:
生命值: 150
攻击力: 8 (基础)
防御力: 5
核心机制: "冰霜值"
- 每回合积累1层"冰霜值"
- 冰霜值达到5: 释放"暴风雪"(AOE + 冻结1回合)
- 释放后冰霜值清零
=== AI决策树 ===
常态决策:
IF 玩家有"燃烧"Debuff:
优先级1: 使用"冰霜冲击"(克制火系)
ELSE IF 玩家攻击力 > 15:
优先级1: 使用"冰墙"(获得20点护甲)
ELSE IF 冰霜值 >= 4:
优先级1: 保留行动,等待释放"暴风雪"
ELSE:
优先级1: 使用"冰锥术"(造成8点伤害 + 减速)
特殊机制: "反制预判"
触发条件: 玩家连续2回合使用同一类型卡牌
效果: 女巫获得"抗性"(对该类型卡牌伤害-50%)
设计目的: 鼓励玩家多样化出牌

🎲 意图预告系统 (Intent System)#

系统设计目的#

  • 公平性 - 玩家有知情权,可以提前规划
  • 策略性 - 玩家可以根据敌人意图调整出牌
  • 可读性 - 用图标+文字清晰展示

意图类型与图标#

意图类型图标描述文案玩家应对策略
普通攻击⚔️”攻击造成X点伤害”防御/回血
强力攻击⚔️🔥“强力攻击造成X点伤害”优先防御
AOE攻击💥“对所有敌人攻击”分散火力/防御
防御🛡️”获得X点护甲”蓄力/施加Debuff
回血❤️”回复X点生命”尽快输出/沉默
增益⬆️”提升攻击力”尽快打断/控制
特殊技能“准备释放XXX”根据技能具体应对
未知”???“保留应对手段

预告时机设计#

敌人决策时机轴:
我方回合结束
敌人开始"思考"(0.5秒动画)
显示意图预告(持续到我方下回合结束)
敌人执行行动
(如果有下回合特殊技能)提前显示"下回合:XXX"

特殊情况处理

  • 如果敌人被”沉默”:意图图标变灰 + “无法行动”
  • 如果敌人被”混乱”:意图随机变化
  • 如果敌人死亡:意图消失

⚙️ 难度梯度设计#

简单难度 (Story Mode)#

AI调整参数

决策优化:
- AI决策延迟: +0.5秒(让玩家有反应时间)
- 完美决策概率: 20% (大部分时候会"犯错")
- 暴击率: -20% (降低伤害波动)
数值调整:
- 敌人攻击力: ×0.8
- 敌人生命值: ×0.9
- 敌人防御力: ×0.7
特殊照顾:
- 第一局游戏: 敌人"有意"不使用特殊技能
- 如果玩家连续失败2次: 下场战斗敌人攻击力再-10%

普通难度 (Normal)#

AI调整参数

决策优化:
- AI决策延迟: 0秒(即时决策)
- 完美决策概率: 50%
- 暴击率: 正常
数值调整:
- 敌人攻击力: ×1.0 (标准)
- 敌人生命值: ×1.0
- 敌人防御力: ×1.0
特殊机制:
- 敌人会根据玩家卡组调整策略(见下文"智能反制")

困难难度 (Hard / Ascension Mode)#

AI调整参数

决策优化:
- AI决策延迟: -0.3秒(更快决策,增加压迫感)
- 完美决策概率: 80%
- 暴击率: +20%
- 解锁"预判模式": AI可以"预测"玩家下回合行动(模拟高玩)
数值调整:
- 敌人攻击力: ×1.2
- 敌人生命值: ×1.15
- 敌人防御力: ×1.1
特殊机制:
- 敌人特殊技能使用频率 +30%
- BOSS阶段转换时回复10%生命
- 解锁"组合技"(敌人连续使用配合技能)

🧩 智能反制系统 (Smart Counter)#

设计目的#

让AI看起来”聪明”,而不是靠数值碾压

反制逻辑示例#

# 伪代码:AI识别和反制玩家策略
def detect_player_strategy(player):
"""识别玩家的主要策略"""
deck_analysis = analyze_deck(player.deck)
if deck_analysis.avg_cost > 3:
return "控制流" # 高费用卡牌多
elif deck_analysis.attack_cards > 0.6:
return "快攻流" # 攻击卡牌占比高
elif deck_analysis.defense_cards > 0.4:
return "防守流" # 防御卡牌占比高
else:
return "均衡流"
def counter_strategy(enemy, player_strategy):
"""根据玩家策略选择反制方案"""
if player_strategy == "控制流":
# 反制:快速输出,在玩家抽到高费卡前击杀
enemy.priority = "AGGRESSIVE"
enemy.buff("敏捷", 2) # 每回合多抽1张牌
elif player_strategy == "快攻流":
# 反制:高防御 + 回血,拖后期
enemy.priority = "DEFENSIVE"
enemy.ability("生命虹吸") # 攻击时回血
elif player_strategy == "防守流":
# 反制:无视防御的技能
enemy.unlock_ability("穿透攻击") # 攻击时无视50%防御

实战示例#

场景:玩家使用”快攻流”卡组(低费用高攻击卡牌)

回合1:
玩家出牌: "快速攻击"(1费,造成6点伤害)
敌人AI识别: "快攻流特征检测 +1"
敌人行动: 普通攻击
回合2:
玩家出牌: "连击"(2费,造成10点伤害)
敌人AI识别: "快攻流特征检测 +2 → 确认策略"
敌人行动: 使用"防御姿态"(获得15点护甲)
回合3:
敌人AI决策: "玩家快攻流已确认,启动反制模式"
敌人行动: 使用"生命虹吸"(攻击时回复生命)
结果: 玩家高攻击被敌人高防御抵消,敌人开始回血 → 玩家策略失效

设计价值

  • 玩家不能一套卡组通吃所有敌人
  • 鼓励玩家根据敌人类型调整卡组
  • 增加重玩价值

📈 AI行为调试工具#

调试模式功能#

为了便于测试和调整AI,建议开发以下工具:

AI调试面板:
功能1: "AI决策可视化"
- 显示AI当前考虑的Top 3行动
- 显示每个行动的评分
- 显示AI的决策依据
功能2: "AI参数实时调整"
- 滑动条调整:攻击倾向 / 防御倾向 / 技能使用频率
- 开关:开启/关闭"智能反制"
- 开关:开启/关闭"预判模式"
功能3: "AI行为日志"
- 记录每回合AI的决策过程
- 导出为CSV供数据分析
- 标记"异常决策"(评分异常高/低的行动)

AI平衡性测试清单#

测试项目 | 通过标准 | 测试结果
----------------------------|------------------------|----------
简单难度AI是否"放水" | 新手胜率 > 70% | [待测试]
普通难度AI是否公平 | 玩家胜率 45-55% | [待测试]
困难难度AI是否有挑战性 | 玩家胜率 25-35% | [待测试]
AI是否会"作弊"(开图看牌) | 0次检测到 | [待测试]
BOSS阶段转换是否清晰 | 100%测试者能理解 | [待测试]
意图预告是否准确 | 准确率 100% | [待测试]
智能反制是否过于强大 | 玩家能找到破解方法 | [待测试]

🔄 AI扩展性设计#

未来可添加的AI类型#

类型5: 群体协作型 (Swarm)
特征: 多个小怪协同作战
示例: 3只哥布林,一只攻击时其他会"呼应"(额外效果)
类型6: 变身型 (Shapeshifter)
特征: 每回合随机变成不同类型
示例: 史莱姆王,每回合随机变为"攻击型/防御型/回复型"
类型7: 学习型 (Learning)
特征: 记住玩家过去3回合的行动并模仿
示例: 镜像法师,复制玩家上回合使用的卡牌
类型8: 环境型 (Environmental)
特征: 利用场地机制
示例: 沼泽怪物,每回合在场地施加"毒雾"

📊 AI数值平衡表#

参数简单难度普通难度困难难度备注
攻击力加成×0.8×1.0×1.2
生命值加成×0.9×1.0×1.15
防御力加成×0.7×1.0×1.1
暴击率-20%标准+20%
特殊技能使用率×0.5×1.0×1.3
决策完美度20%50%80%
反应延迟+0.5秒0秒-0.3秒
智能反制关闭基础高级

⚠️ AI设计风险与应对#

风险1:AI过于智能,玩家感到”被针对”#

应对

  • 限制AI的”预判”能力(只在困难难度开启)
  • 让AI的”失误”看起来合理(不是代码bug,而是”角色性格”)
  • 提供”AI行为说明”(在图鉴中解释敌人逻辑)

风险2:AI决策过于随机,玩家感到”不公平”#

应对

  • 随机性只体现在”同优先级行动选择”上
  • 核心决策逻辑必须稳定可预测
  • 用”性格差异”解释随机性(如”哥布林性格鲁莽,有时会犯傻”)

风险3:复杂AI影响性能(移动端)#

应对

  • AI决策逻辑放在服务器端(如果是在线游戏)
  • 单机游戏:简化AI计算,用”预设行为树”而非实时计算
  • 每回合AI思考时间上限:0.1秒

📝 版本日志#

v1.0 (2026-05-08)#

  • 初始版本创建
  • 完成4种基础AI类型设计(激进/防御/策略/狂暴)
  • 完成2个BOSS的完整AI设计
  • 完成意图预告系统
  • 完成难度梯度设计
  • 完成智能反制系统

附录:AI决策树可视化(示例)#

敌人决策树(激进型)
开始敌人回合
生命值 > 30%?
├─ 是 → 优先攻击(70%概率)
│ ↓
│ 有强力技能可用?
│ ├─ 是 → 使用技能(20%)
│ └─ 否 → 普通攻击(80%)
└─ 否 → 疯狂模式
攻击力 ×1.5
100%概率攻击
结束敌人回合

下一步行动

  1. 将AI逻辑转化为技术文档(供程序员实现)
  2. 在Paper Prototype中测试AI决策
  3. 调整各类型AI的参数权重
  4. 设计剩余的敌人类型(目标:20种不同行为模式)

文档结束 | 问题反馈请联系设计团队

战斗AI设计文档 - 《无尽牌域》敌人AI系统
https://021028.xyz/posts/default/58/
作者
021028
发布于
2026-05-11
许可协议
CC BY-NC-SA 4.0