在鸿蒙游戏开发中接入 AI NPC 的体验与实践
如果你做过游戏开发,一定写过 NPC。而且大概率是这样写的:
if (playerNear) {
attack();
} else {
patrol();
}
简单、直接、可控。但也有一个明显问题:NPC 永远是'写死的'。而当你把 AI 引入到 HarmonyOS 游戏里,事情会发生变化:
const action = npcAgent.decide(state);
这时候你会发现,你不再是在'写 NPC',而是在'创造一个角色'。
从脚本 NPC 到智能 NPC
先看最核心的变化。
传统 NPC
if (hp < 30) {
runAway();
} else {
attack();
}
特点包括可预测、可控制、可调试。
AI NPC
const action = agent.decide({ hp, enemyDistance, history });
特点则是不完全可预测、有行为风格、会随状态变化。本质变化在于 NPC 从'规则集合'变成了'决策系统'。
第一感受:NPC'活'了
这是最直观的体验。传统模式下,玩家靠近就攻击,远离就停止。AI NPC 可能会先观察你,选择绕后,或者假装撤退再反击。开发者的第一反应通常是:'这行为我没写过啊?'没错,这正是 AI 的价值。
第二感受:调性格而非写逻辑
传统开发依赖 if (...) doSomething(),AI 开发则是设计 Prompt:
prompt = "你是一个谨慎的敌人,优先保命,其次攻击";
你在做的事情变成了设计行为风格(Personality):
npcAgent.setProfile({ style: "aggressive", riskTolerance: 0.8 });
本质是代码向行为设计的转变。
第三感受:调试方式完全变了
传统调试靠打断点、看变量、查逻辑。AI 调试则是看输入、看输出、调 Prompt。
console.log("state:", state);
console.(, action);


