用 AI 打造鸿蒙游戏 NPC 的开发体验与思考
AI NPC 在鸿蒙游戏开发中改变了传统脚本逻辑,通过端侧 AI 和多设备感知实现角色行为的不确定性。开发者从编写规则转向设计性格与安全边界,利用大模型增强交互体验,同时需应对调试复杂度和决策频率限制。这种模式让 NPC 从“写出来的”变为“表现出来的”,提升了游戏世界的真实感。

AI NPC 在鸿蒙游戏开发中改变了传统脚本逻辑,通过端侧 AI 和多设备感知实现角色行为的不确定性。开发者从编写规则转向设计性格与安全边界,利用大模型增强交互体验,同时需应对调试复杂度和决策频率限制。这种模式让 NPC 从“写出来的”变为“表现出来的”,提升了游戏世界的真实感。

如果你做过游戏开发,一定写过 NPC。而且大概率是这样写的:
if (playerNear) {
attack();
} else {
patrol();
}
简单、直接、可控。但也有一个明显问题:
NPC 永远是'写死的'
而当你把 AI 引入到 HarmonyOS 游戏里,事情会发生变化:
const action = npcAgent.decide(state);
这时候你会发现:
你不再是在'写 NPC',而是在'创造一个角色'
先看最核心的变化。
if (hp < 30) {
runAway();
} else {
attack();
}
特点:
const action = agent.decide({ hp, enemyDistance, history });
特点:
本质变化:
NPC 从'规则集合',变成'决策系统'
这是最直观的体验。
玩家靠近 → 攻击;玩家远离 → 停止。
可能会:
开发者的第一反应通常是:
'这行为我没写过啊?'
没错—— 这正是 AI 的价值
传统开发:
if (...) doSomething();
AI 开发:
prompt = `你是一个谨慎的敌人,优先保命,其次攻击`;
你在做的事情变成:
设计行为风格(Personality)
npcAgent.setProfile({ style: "aggressive", riskTolerance: 0.8 });
本质变化:
代码 → 行为设计
传统调试:
AI 调试:
console.log("state:", state);
console.log("action:", action);
你会发现:
Bug 不再是'代码错了',而是'AI 理解错了'
AI NPC 最大的特点:不可完全预测
// 有时候 NPC 突然不攻击
你会想:
'是 bug 吗?'
其实可能是:
AI 决策的结果
在 HarmonyOS 上,AI NPC 还有一些独特优势。
const action = localModel.infer(state);
优点:
AI 可以感知:
手机输入、TV 状态、传感器数据。
agent.decide({ playerInput, deviceContext, environment });
NPC 变成:
'全场景感知角色'
多个 NPC 可以协作:
teamAgent.decide(teamState);
形成:AI 队伍
我们做一个简单 Demo:
class NPCAgent {
async decide(state) {
if (state.hp < 20) {
return "escape";
}
if (state.enemyDistance < 50) {
return "attack";
}
return "patrol";
}
}
这是'规则 + AI'的过渡版本。
const action = npcAgent.decide({
hp: this.hp,
enemyDistance: this.distance
});
this.execute(action);
execute(action: string) {
switch (action) {
case "attack":
this.attack();
break;
case "escape":
this.runAway();
break;
}
}
这就是最小 AI NPC 架构:
State → Agent → Action → Execute
如果你接入大模型(LLM),NPC 会更'人性化'。
async decide(state) {
const prompt = `当前血量 ${state.hp} 敌人距离 ${state.enemyDistance} 你会怎么做?`;
return await llm.generate(prompt);
}
效果:
先用:
规则 → 简单 AI → LLM
if (!validAction(action)) {
action = "idle";
}
log.push({ state, action });
setInterval(() => {
agent.decide();
}, 500);
传统 NPC:你写'它做什么'
AI NPC:你定义'它是什么样的人'
在 HarmonyOS 上,用 AI 做 NPC,本质是一次角色设计方式的升级。
可以总结为四个变化:
if/else → AI 决策
写代码 → 设计行为
查 bug → 调 AI
NPC → 角色
最后给你一个很有意思的结论:
当 NPC 不再是'写出来的',而是'表现出来的',游戏世界就开始变得真实。
而这,可能才是 AI 游戏真正的开始。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online