欢迎光临
我们一直在努力

用 AI 做鸿蒙游戏 NPC,是一种什么体验?

在这里插入图片描述

在这里插入图片描述

子玥酱
(掘金 / 知乎 / CSDN / 简书 同名)

大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。

我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括 前端工程化、小程序、React / RN、Flutter、跨端方案, 在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。

技术方向:前端 / 跨端 / 小程序 / 移动端工程化 内容平台:掘金、知乎、CSDN、简书 创作特点:实战导向、源码拆解、少空谈多落地 文章状态:长期稳定更新,大量原创输出

我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍,希望能帮你在实际工作中少走弯路。

子玥酱 · 前端成长记录官 ✨ 👋 如果你正在做前端,或准备长期走前端这条路 📚 关注我,第一时间获取前端行业趋势与实践总结 🎁 可领取 11 类前端进阶学习资源(工程化 / 框架 / 跨端 / 面试 / 架构) 💡 一起把技术学“明白”,也用“到位”

持续写作,持续进阶。 愿我们都能在代码和生活里,走得更稳一点 🌱

文章目录

    • 引言
    • 一、从“脚本 NPC”到“智能 NPC”
      • 传统 NPC
      • AI NPC
    • 二、第一感受:NPC“活”了
      • 传统 NPC
      • AI NPC
    • 三、第二感受:你开始“调性格”,而不是“写逻辑”
      • 示例
    • 四、第三感受:调试方式完全变了
      • 示例
    • 五、第四感受:不确定性
      • 好处
      • 坏处
      • 示例
    • 六、鸿蒙上的独特体验
      • 1、端侧 AI
      • 2、多设备感知
      • 示例
      • 3、分布式协同
    • 七、一个完整 AI NPC 示例
      • 1、NPC Agent
      • 2、接入页面
      • 3、执行行为
    • 八、进阶:接入大模型
      • 示例
    • 九、开发建议
      • 1、不要一开始就用大模型
      • 2、加“安全边界”
      • 3、记录行为日志
      • 4、限制决策频率
    • 十、最大的变化
    • 总结
      • 1、逻辑变了
      • 2、开发方式变了
      • 3、调试方式变了
      • 4、体验变了

引言

如果你做过游戏开发,一定写过 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“活”了

这是最直观的体验。

传统 NPC

玩家靠近 → 攻击
玩家远离 → 停止

AI NPC

可能会:

  • 先观察你
  • 选择绕后
  • 假装撤退再反击

开发者的第一反应通常是:

“这行为我没写过啊?”

没错—— 这正是 AI 的价值

三、第二感受:你开始“调性格”,而不是“写逻辑”

传统开发:

if () doSomething()

AI 开发:

prompt = `
你是一个谨慎的敌人,
优先保命,其次攻击
`

你在做的事情变成:

设计行为风格(Personality)

示例

npcAgent.setProfile({
style: "aggressive",
riskTolerance: 0.8
})

本质变化:

代码 → 行为设计

四、第三感受:调试方式完全变了

传统调试:

  • 打断点
  • 看变量
  • 查逻辑

AI 调试:

  • 看输入
  • 看输出
  • 调 prompt

示例

console.log("state:", state)
console.log("action:", action)

你会发现:

Bug 不再是“代码错了”,而是“AI 理解错了”

五、第四感受:不确定性

AI NPC 最大的特点: 不可完全预测

好处

  • 更真实
  • 更有趣
  • 更耐玩

坏处

  • 难调试
  • 难复现
  • 可能“失控”

示例

// 有时候 NPC 突然不攻击

你会想:

“是 bug 吗?”

其实可能是:

AI 决策的结果

六、鸿蒙上的独特体验

在 HarmonyOS 上,AI NPC 还有一些独特优势。

1、端侧 AI

const action = localModel.infer(state)

优点:

  • 实时决策
  • 无网络依赖

2、多设备感知

AI 可以感知:

手机输入
TV 状态
传感器数据

示例

agent.decide({
playerInput,
deviceContext,
environment
})

NPC 变成:

“全场景感知角色”

3、分布式协同

多个 NPC 可以协作:

teamAgent.decide(teamState)

形成: AI 队伍

七、一个完整 AI NPC 示例

我们做一个简单 Demo:

1、NPC Agent

class NPCAgent {

async decide(state) {

if (state.hp < 20) {
return "escape"
}

if (state.enemyDistance < 50) {
return "attack"
}

return "patrol"
}

}

这是“规则 + AI”的过渡版本。

2、接入页面

const action = npcAgent.decide({
hp: this.hp,
enemyDistance: this.distance
})

this.execute(action)

3、执行行为

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)
}

效果:

  • 会说话
  • 会表达情绪
  • 会“演戏”

九、开发建议

1、不要一开始就用大模型

先用:

规则 → 简单 AI → LLM

2、加“安全边界”

if (!validAction(action)) {
action = "idle"
}

3、记录行为日志

log.push({ state, action })

4、限制决策频率

setInterval(() => {
agent.decide()
}, 500)

十、最大的变化

传统 NPC :你写“它做什么” AI NPC: 你定义“它是什么样的人”

总结

在 HarmonyOS 上,用 AI 做 NPC,本质是一次角色设计方式的升级。

可以总结为四个变化:

1、逻辑变了

if/else → AI 决策

2、开发方式变了

写代码 → 设计行为

3、调试方式变了

查 bug → 调 AI

4、体验变了

NPC → 角色

最后给你一个很有意思的结论:

当 NPC 不再是“写出来的”,而是“表现出来的”,游戏世界就开始变得真实。

而这,可能才是 AI 游戏真正的开始。

赞(0)
未经允许不得转载:171主机测评 » 用 AI 做鸿蒙游戏 NPC,是一种什么体验?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址