第13章:AI/ML 在游戏平衡中的应用

AI/ML 可以在远大于人工测试规模的状态空间中寻找策略、发现异常组合并预测玩家风险,但它优化的永远是被定义出来的目标。错误的奖励、偏置的日志或无法解释的自动动作,会把局部统计规律放大为系统性伤害。本章把机器学习放回数值策划的决策链:明确任务、构造评估、限制自动化边界,并让模型在版本漂移和对抗环境中保持可审计。

学习目标

  • 用 MDP、策略分布与覆盖率描述 AI 测试问题
  • 理解自博弈、课程学习和对手池对自动平衡的作用
  • 设计玩家聚类、流失与付费预测的正确目标和验证方式
  • 用代价敏感指标评估作弊与异常行为检测
  • 识别奖励投机、离线评估偏差、概念漂移与反馈循环

13.1 先决定机器学习是否是正确工具

13.1.1 四类任务,四种证据

游戏数值中的 ML 任务可分为:

任务 典型输出 主要评估 是否说明因果
描述 玩家群、行为嵌入 稳定性、可解释性
预测 流失概率、付费概率 校准、排序、时序外验证
检测 异常分数、作弊风险 精确率、召回率、处置代价
决策 推荐动作、动态难度 策略价值、护栏、实验 需要额外识别

如果明确规则已能可靠解决问题,就不必为了“智能”引入模型。模型适合边界模糊、特征众多、模式会从数据中重复出现的任务;账本守恒、概率上限和配置合法性更适合确定性规则。

13.1.2 决策价值而非模型分数

准确率提高不一定产生业务价值。模型的价值取决于它改变了什么动作:

$$V=\sum_a P(a\mid \hat y)\cdot \left(B(a,y)-C(a,y)\right)-C_{\text{model}}$$ 例如流失模型即使 AUC 很高,若团队只能发送同一种无差别奖励,增量价值也可能很低。先明确可选动作、资源约束和错误代价,再选择目标函数。

13.1.3 数据切分必须尊重时间与实体

随机打散所有对局会让同一玩家或同一版本同时出现在训练集和测试集,造成泄漏。更可靠的切分包括:

  • 按时间:用旧版本训练、未来版本验证
  • 按实体:玩家、公会或设备不能跨集合泄漏
  • 按环境:保留地图、角色或地区作为域外测试
  • 按补丁:报告同版本性能和跨版本性能

模型必须与一个朴素基线比较,例如最近均值、简单规则或线性模型。复杂度只有在提升决策价值时才值得。


13.2 强化学习与 AI 对手

13.2.1 将游戏形式化为 MDP

马尔可夫决策过程由 $(\mathcal S,\mathcal A,P,R,\gamma)$ 构成:状态、动作、转移、奖励和折扣因子。策略 $\pi(a\mid s)$ 的目标是最大化期望回报: $$J(\pi)=\mathbb E_\pi\left[\sum_{t=0}^{T}\gamma^t r_t\right]$$ 真实游戏往往是部分可观测的。玩家看不到对手手牌、隐藏冷却或服务器完整状态,应使用观测 $o_t$ 与历史记忆,而不能让训练 AI 偷看玩家不可见信息,否则得到的是不可比较的“全知策略”。

13.2.2 奖励设计与奖励投机

只给最终胜负奖励最接近目标,却稀疏且学习缓慢;加入击杀、资源或地图控制等塑形奖励能加速训练,却可能改变最优策略。一个常见形式是: $$r_t=w_1\Delta \text{胜势}+w_2\Delta \text{资源}+w_3\Delta \text{地图控制}-w_4\text{无效行为}$$ AI 会寻找公式漏洞,而不是理解设计意图。若奖励“造成伤害”,它可能反复攻击可回血目标;若奖励“存活”,它可能拒绝交战。塑形奖励应做消融实验,并以最终胜率、策略多样性和合法性作为外部评估。

13.2.3 自博弈、对手池与非传递性

自博弈让策略与自己的历史或当前版本竞争,适合缺少高质量标签的对抗游戏。但只与最新策略对战,可能发生遗忘和循环克制:

Rush 策略克制 Economy
Economy 克制 Turtle
Turtle 克制 Rush

因此需要维护多样化对手池,混合历史检查点、脚本策略、人类回放和专门的反制策略。评估不能只给单一 Elo;应报告策略对阵矩阵、最坏对手表现与元策略分布。

若零和对局的收益矩阵为 $A$,可寻找混合策略 $p$ 的最大最小解: $$\max_p\min_q p^\top A q$$ 它比“找一个最强 Bot”更适合判断是否存在被忽视的克制角落。

13.2.4 课程学习与行为约束

复杂游戏可由局部任务逐步训练:移动、资源管理、小规模交战、完整对局。课程难度必须最终覆盖真实分布,否则 AI 只会解决教学题。

若 AI 用作玩家对手,还要约束反应时间、每分钟操作、视野和输入精度。最强策略并不等于最好体验。可把体验设计成约束优化: $$\max_\pi J_{\text{challenge}}(\pi)\quad \text{s.t.}\quad E[APM]\le c_1,\ P(\text{不可读连招})\le c_2$$

13.2.5 AI 对手的难度与可读性

传统“增加血量和伤害”只改变数值,不改变决策水平。更自然的难度轴包括:

  • 感知延迟与信息噪声
  • 规划深度与候选动作数
  • 资源管理误差
  • 战术库丰富度
  • 对玩家习惯的适应速度

难度调节应保持可解释反馈。AI 可以偶尔失误,但失误要符合角色与情境,不能在玩家濒死时突然“放水”得过于明显。


13.3 自动平衡与大规模模拟

13.3.1 平衡是多目标约束问题

自动平衡并非让所有角色胜率等于 50%。需要同时考虑强度、选择多样性、技能表达、角色身份和改动成本: $$L(\theta)=\alpha\operatorname{Var}(W_h)+\beta D_{\text{meta}}(\theta) +\eta C_{\text{change}}(\theta)+\rho C_{\text{identity}}(\theta)$$ $\theta$ 是数值参数,$W_h$ 是条件化胜率,$D_{\text{meta}}$ 衡量 Meta 过度集中。角色克制可能使单项胜率偏离 50% 仍然健康,因此目标需在不同技能段、地图和阵容上定义。

13.3.2 可微代理与黑箱优化

当战斗公式可微且行为固定时,可用梯度研究参数敏感度;真实模拟常含离散事件和策略适应,通常是黑箱。常见选择有贝叶斯优化、进化搜索和多臂老虎机。

代理模型 $\hat f(\theta)$ 近似昂贵模拟结果,并用采集函数决定下一组实验参数。它节省计算,却可能在未覆盖区域自信出错。参数搜索必须限制在设计可接受区间,并由独立模拟与人工评审复核。

13.3.3 共同随机数与配对模拟

比较补丁前后时,随机地图、暴击和掉落会产生方差。让两个版本使用相同的随机种子与场景,比较配对差值: $$\hat\Delta=\frac{1}{n}\sum_{i=1}^{n}\left(Y_i^{new}-Y_i^{old}\right)$$ 若两版本结果正相关,配对设计能显著降低方差。但公共随机数不能掩盖结构变化;若新版本改变了随机事件数量,仍需检查耦合方式是否公平。

13.3.4 行为模型与策略适应

固定脚本会低估玩家对补丁的适应。某装备在旧策略下很弱,玩家发现新连招后可能超标。模拟应包含多种行为模型:新手启发式、专家策略、探索策略和历史回放策略。

自动平衡的可靠边界由覆盖率决定。需要维护覆盖矩阵:

             新手策略  专家策略  探索策略  极端构筑
地图 A          ✓         ✓         ✓         ✓
地图 B          ✓         ✓         △         ×
新角色组合      ✓         △         ×         ✓

覆盖空白必须进入风险报告,不能被总体百万局模拟数掩盖。

13.3.5 人在环路中的发布门

推荐流程是“模型提案—模拟验证—设计评审—灰度—线上实验—长期监控”。模型可以批量筛选候选,但以下动作不应无审核自动执行:

  • 改变玩家已付费资产的价值
  • 大幅调整经济产出或保底
  • 对个体施加惩罚或封禁
  • 跨越角色身份和玩法规则的改动

13.4 玩家行为聚类与画像

13.4.1 画像是决策工具,不是人格真相

聚类用于压缩行为差异,例如区分剧情探索、竞技冲榜、收集养成与社交协作。它不证明玩家具有固定人格,同一玩家会随赛季和生命周期迁移。

特征应与待解决决策相关,并统一观察窗口:

  • 时间分配比例,而非仅总时长
  • 模式、角色和 Build 的熵
  • 社交网络参与、队伍稳定性
  • 资源产消结构与失败后的行为
  • 账号年龄和内容可用性

对偏斜计数可做对数或分位数变换,对总量与比例分别处理。否则鲸鱼玩家的总量会支配所有距离。

13.4.2 距离、聚类与稳定性

K-means 假设欧氏空间中的近球形群;高斯混合允许软归属;层次聚类展示多尺度结构;密度方法可识别噪声与非球形群。算法名称不重要,关键是距离是否表达业务相似。

聚类质量不能只看轮廓系数: $$s(i)=\frac{b(i)-a(i)}{\max(a(i),b(i))}$$ $a(i)$ 是样本到同簇的平均距离,$b(i)$ 是最近其他簇距离。还应检查重采样稳定性、跨周迁移、可解释性和“不同簇是否对应不同动作”。

13.4.3 序列、嵌入与状态迁移

聚合特征可能丢掉顺序:“失败—强化—重试”和“强化—失败—离开”总次数相同,意义不同。可用序列表示或状态转移矩阵描述行为: $$P_{ij}=P(S_{t+1}=j\mid S_t=i)$$ 画像系统应记录不确定性。对边界玩家可用软归属概率,而非强迫贴唯一标签。

13.4.4 避免标签固化与歧视性使用

“低付费倾向”不应成为降低服务质量的依据,“高付费倾向”也不应自动触发更具压力的定价。画像应服务于体验适配,并受到公平性、隐私和可解释性审查。


13.5 作弊与异常行为检测

13.5.1 多层证据架构

作弊检测通常需要四层:

  1. 协议与完整性规则:不可能的移动、非法消息、篡改校验。
  2. 服务端守恒与物理约束:资源、射速、冷却和状态转移。
  3. 统计/ML 检测:看似合法但极不自然的组合与序列。
  4. 关系图分析:工作室、洗钱、代练和共享设备网络。

客户端信号容易被对手观察和模仿;最终裁决应尽可能基于服务端可验证事实。

13.5.2 不平衡标签与代价敏感评估

若作弊率为 0.1%,一个永远预测正常的模型准确率也有 99.9%。更有用的指标是: $$Precision=\frac{TP}{TP+FP},\qquad Recall=\frac{TP}{TP+FN}$$ 还要报告不同阈值下的处置成本、每千名被标记者中的误伤数,以及标签确认延迟。永久封禁要求很高精确率;用于人工审查的队列可以接受较低精确率换取召回。

13.5.3 图结构与团伙行为

账号是节点,交易、组队、设备或支付关联是边。异常团伙可能呈现星型汇集、闭环转移、同步行为和极端中心性。单个账号行为普通,并不代表网络普通。

图信号也有风险:网吧、家庭共享设备和大型公会天然密集。必须结合时间、价值流和多种边类型,并给正常高密度群体建立对照。

13.5.4 对抗适应、延迟封禁与申诉

作弊者会针对已知阈值调整。防御需要保留部分不可见规则、监测特征漂移并进行红队测试。批量延迟处置可减少对手即时反推检测条件,但延迟期间要限制经济伤害。

任何模型都可能误伤。证据快照、版本化模型、人工复核、可理解的处罚类别和申诉渠道,是检测系统的一部分,而不是运营附属品。


13.6 流失、付费与活跃度预测

13.6.1 预测时点、标签窗口与行动窗口

一个可执行的流失任务必须明确:在时点 $t$ 使用当时可见数据,预测未来 $H$ 天是否无有效游玩,并在真正流失前留出干预时间。

特征窗口            预测时点      行动窗口       标签窗口
[t-28, t)              t          [t,t+3)       [t,t+14)

使用标签窗口内的信息作为特征是泄漏。把“收到召回奖励”当特征预测流失也可能混入历史策略选择。

13.6.2 排序、校准与基准率

AUC 衡量随机正例排在随机负例之前的概率,不能说明预测概率准确。若模型给 1,000 人都预测 20% 流失,理想情况下约 200 人应实际流失,这称为校准。

当资源只能触达前 5% 高风险玩家时,应关注该区间的精确率、提升度和增量价值。基准率随赛季变化时,即使排序不变,概率校准也会漂移。

13.6.3 风险预测不等于可干预性

最可能流失的人未必最容易挽回。已经彻底离开的玩家风险高,但奖励无效;原本会自然回访的玩家不需要奖励。真正的目标是条件平均处理效应: $$\tau(x)=E[Y(1)-Y(0)\mid X=x]$$ 应通过随机干预数据估计“谁会因动作而改变”,而不只是“谁会流失”。这也是 uplift 建模与普通风险模型的根本区别。

13.6.4 反馈循环与策略污染

模型选择高风险玩家发奖励,奖励改变其行为,新数据再训练模型。久而久之,标签同时反映玩家和旧模型策略。必须记录决策概率、触达与否、奖励成本和实验组,并保留一定探索流量,否则无法评估新策略。


13.7 案例与方法迁移

13.7.1 AlphaStar 与复杂策略覆盖

《星际争霸》类任务说明,实时、部分可观测、长时序和巨大动作空间可以通过模仿、强化学习、自博弈与对手池等方法逐层处理。对数值策划最重要的迁移不是复制模型规模,而是:不要用一个“最强代理”代表全部玩家;用策略群体和对阵矩阵暴露非传递克制,并对操作能力施加人类可比约束。

13.7.2 OpenAI Five 与团队协同

MOBA 团队任务凸显个体奖励与团队结果的张力。过强的局部塑形可能让代理追逐击杀或资源,而忽略最终胜利。数值测试应分别观察团队胜率、资源分配、角色分工和策略多样性,避免一个聚合回报掩盖退化协作。

13.7.3 商业游戏 AI 的现实约束

类似《王者荣耀》的实时竞技产品中,研究级强度只是起点。正式工具还要面对版本快速变化、英雄池扩展、延迟预算、玩家可读性、内容保密和线上风险。因此更实用的架构往往是规则、搜索、学习模型与人工审核的组合。

13.7.4 小团队的轻量方案

小团队不需要先训练大型强化学习系统。一个高价值路径是:

  1. 建立可重放的确定性模拟。
  2. 用启发式 Bot 覆盖主流与极端策略。
  3. 用参数搜索找敏感区和反例。
  4. 将真实回放转为回归场景。
  5. 仅对人工难以表达的子任务引入 ML。

13.8 模型治理与上线工作流

每个模型应拥有一张“模型卡”:

  • 任务、所有者和允许的使用场景
  • 训练数据时间、版本、排除规则和隐私边界
  • 标签定义、已知偏差和不适用人群
  • 离线指标、线上指标和护栏
  • 阈值、人工复核与申诉流程
  • 漂移监控、回滚条件和退役日期

上线门禁可表示为:

数据契约通过
   ↓
时序外评估优于朴素基线
   ↓
切片公平性与压力测试通过
   ↓
影子模式 → 小流量灰度 → 随机实验
   ↓
长期监控、版本回滚与审计

影子模式只产生建议而不采取动作,适合发现延迟、漂移和意外分布。任何自动决策都应有安全默认值:模型不可用时,系统退回规则或固定配置,而不是停止服务。


13.9 本章小结

  • ML 的价值来自更好的行动,而不是更高的单一离线分数。
  • 强化学习测试必须控制信息、操作能力、奖励投机和对手覆盖;最强 Bot 不是玩家分布。
  • 自动平衡是带身份、Meta、风险和改动成本约束的多目标优化。
  • 玩家画像是会迁移的行为表示,不应固化为人格或差别待遇标签。
  • 作弊检测应结合确定性约束、统计模型、关系图和人工申诉,并按错误代价选择阈值。
  • 风险预测与干预效果不同;长期系统需要记录旧策略并保留探索,避免反馈循环污染。
  • 模型卡、影子模式、灰度、回滚和漂移监控使模型成为可治理的生产系统。

13.10 练习题

基础题

练习13.1 某战斗 Bot 的奖励为“每造成 1 点伤害得 1 分,获胜得 100 分”。测试发现 Bot 反复攻击会回血的敌人而不推进目标。解释原因并提出修改原则。

提示:比较可重复的局部奖励与一次性的最终奖励。

参考答案

伤害奖励可无限重复,累计规模可能远大于胜利奖励,Bot 正在正确优化错误目标。应以最终胜负作为主要目标,限制或势函数化局部塑形,使其不改变最优策略;对重复无进展伤害加边界,并用独立的胜率、目标推进和行为合法性指标评估。还应做去掉各塑形项的消融测试。

练习13.2 为什么不能只用一个最新自博弈 Bot 测试角色平衡?

提示:考虑遗忘、克制环与玩家能力差异。

参考答案

最新 Bot 只代表一个策略点,可能遗忘旧反制,并处于 Rush—Economy—Turtle 一类非传递循环中。它还可能拥有超人操作,无法代表新手和普通玩家。应维护历史、启发式、回放与反制策略组成的对手池,报告完整对阵矩阵、技能约束下表现和最坏对手结果。

练习13.3 某作弊模型在 100 万账号中标记 1,000 人,其中 800 人经确认作弊;系统另发现 200 名未被模型标记的作弊者。计算精确率和召回率。

提示:先写出 $TP$、$FP$、$FN$。

参考答案

$TP=800$,$FP=200$,$FN=200$。 $$Precision=\frac{800}{1000}=80\%$$

$$Recall=\frac{800}{800+200}=80\%$$

是否可用于自动封禁仍取决于误伤代价和证据强度;20% 的误报通常不足以支持不可逆处罚。

练习13.4 流失模型 AUC 为 0.85,但预测为 0.8 的玩家只有 30% 真正流失。模型有什么问题?它还能否用于行动?

提示:排序能力与概率准确性是两件事。

参考答案

模型可能排序良好但严重失准,即校准有问题。若行动只需要选择最高风险的一小群,它仍可能有用,但阈值和成本估算不能直接使用 0.8。应在时序外数据上做可靠性图与重新校准,并验证目标人群的增量干预效果,而非仅看风险。

挑战题

练习13.5 为一款三英雄组队竞技游戏设计自动平衡目标。至少列出四个目标/约束,并解释为什么“所有英雄 50% 胜率”不充分。

提示:区分边际胜率、条件胜率、身份和 Meta。

参考答案

可包含:按技能段和地图条件化后的英雄优势方差;阵容选择熵或最高选择率上限;极端克制对局的最坏体验;角色核心机制偏移成本;数值改动幅度;新手与专家差异;对局时长和滚雪球护栏。

所有英雄的边际胜率可因镜像局、高手选择、自带克制和阵容位置而接近 50%,仍可能存在单一必选阵容。反之,健康的克制结构会让特定条件胜率偏离 50%。目标应基于对阵矩阵和玩家分层,而非一个平均数。

练习13.6 你有 500 万局旧版本回放,准备训练补丁影响预测模型。列出四种可能的数据泄漏或分布偏移,并设计切分方案。

提示:玩家、时间、配置和策略都会泄漏。

参考答案

风险包括:同一玩家跨训练与测试导致身份记忆;使用对局结束后才知道的结果特征;配置 ID 暗含目标补丁;随机打散掩盖赛季和 Meta 漂移;重复回放跨集合。

应先按稳定对局 ID 去重,以时间和补丁为主轴切分,保证玩家或队伍在严格泛化测试中不跨集合;保留新地图/新阵容作域外测试。所有特征必须在预测时点可见。最终还需用新补丁的小流量真实数据验证,因为旧策略不会完整反映玩家适应。

练习13.7 一个高风险流失模型会给前 5% 玩家发 100 钻石。三个月后模型显示效果越来越好。为什么可能是反馈循环假象?如何重建设计?

提示:训练标签已经受到旧策略影响。

参考答案

被模型选中的玩家持续收到奖励,其回访标签同时由原始风险和奖励造成。新模型可能学会“谁会被旧模型奖励”,离线表现因此虚高;未触达高风险玩家的数据也越来越少。

应记录模型版本、分数、触达概率、奖励与成本,保留随机不触达对照和一定探索流量。用随机数据估计条件处理效应,比较“因奖励而改变”的玩家,而非最高风险玩家;训练与评估按策略时期切分。

练习13.8 设计一套从模型建议到数值补丁上线的门禁。要求覆盖模拟不足、不可逆经济影响与回滚。

提示:门禁应让每一步都能失败并安全停止。

参考答案
  1. 模型只在预设参数边界内提出候选,并附目标贡献、置信区间和覆盖空白。
  2. 用共同随机数、多个策略族、极端 Build 和历史事故回放验证。
  3. 设计与经济负责人审核角色身份、资产价值和跨系统影响。
  4. 影子环境对账,禁止产生正式资产。
  5. 小服务器灰度,资产发放设置上限并保留补偿方案。
  6. 随机实验检查主指标、护栏和群体异质性。
  7. 分阶段扩大,持续监控经济存量与 Meta 适应。
  8. 配置和迁移均可回滚;不可逆资产变更不允许仅靠自动化执行。

13.11 常见陷阱与错误(Gotchas)

13.11.1 用高准确率掩盖低基准率

极少数作弊、流失或付费事件下,准确率几乎没有意义。报告混淆矩阵、PR 曲线、目标阈值下的错误数量和真实处置代价。

13.11.2 训练 AI 拥有玩家不可见信息

全图视野、零延迟和精确冷却会制造不可实现策略。训练接口必须模拟真实观测、操作和网络约束,评估中单独审计信息使用。

13.11.3 把 Bot 胜率当玩家胜率

Bot 的策略覆盖与玩家不同,补丁还会改变玩家策略。模拟结论应被视为风险筛选,必须经真实灰度和分层数据确认。

13.11.4 聚类之后强行讲故事

任何聚类都能被命名,但名字不等于稳定机制。检查重采样、跨周迁移和动作价值;若两个簇接受完全相同策略,就没有必要维持区别。

13.11.5 特征泄漏与未来信息

结算排名、最终付费等级、未来收到的召回奖励都可能让离线指标虚高。用预测时点逐字段审计可用性,并按时间做最终留出验证。

13.11.6 自动处罚黑箱化

无法解释和复现的封禁会放大误伤与信任风险。保留证据、模型版本、阈值和复核链;高风险决定采用多证据和人工确认。

13.11.7 忽视概念漂移

新英雄、新活动和作弊工具会改变 $P(X)$ 及 $P(Y\mid X)$。同时监控输入分布、校准、目标指标和人工确认率,并设定降级条件。

13.11.8 过度自动化数值设计

优化器只能优化被量化的部分,无法自动守住角色幻想、公平感和长期信任。把模型定位为反例搜索器和候选生成器,由设计者承担价值取舍。