跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
TypeScriptAI大前端算法

用 AI 打造鸿蒙游戏 NPC 的开发体验与思考

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

GopherDev发布于 2026/4/9更新于 2026/7/2341 浏览
用 AI 打造鸿蒙游戏 NPC 的开发体验与思考

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'活'了

这是最直观的体验。

传统 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 游戏真正的开始。

目录

  1. 引言
  2. 一、从“脚本 NPC”到“智能 NPC”
  3. 传统 NPC
  4. AI NPC
  5. 二、第一感受:NPC“活”了
  6. 传统 NPC
  7. AI NPC
  8. 三、第二感受:你开始“调性格”,而不是“写逻辑”
  9. 示例
  10. 四、第三感受:调试方式完全变了
  11. 示例
  12. 五、第四感受:不确定性
  13. 好处
  14. 坏处
  15. 示例
  16. 六、鸿蒙上的独特体验
  17. 1、端侧 AI
  18. 2、多设备感知
  19. 示例
  20. 3、分布式协同
  21. 七、一个完整 AI NPC 示例
  22. 1、NPC Agent
  23. 2、接入页面
  24. 3、执行行为
  25. 八、进阶:接入大模型
  26. 示例
  27. 九、开发建议
  28. 1、不要一开始就用大模型
  29. 2、加“安全边界”
  30. 3、记录行为日志
  31. 4、限制决策频率
  32. 十、最大的变化
  33. 总结
  34. 1、逻辑变了
  35. 2、开发方式变了
  36. 3、调试方式变了
  37. 4、体验变了
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python 技能变现指南:合法合规的兼职方向与技术实践
  • Docker 基础:虚拟化原理与容器化实战
  • HarmonyOS6 RcImage 组件填充模式与形状系统设计(一)
  • Python 词云库 wordcloud 中文显示问题详解
  • 本地大模型部署的残酷真相:成本、门槛与真实体验
  • 从零写 Agent 框架:Workflow 与 Runtime 模块设计
  • Qlib 前端可视化平台助力量化投资
  • HDFS 集群扩展方法:架构、机制与实战
  • Advanced Archive Password Recovery v4.54.55 中文安装版使用指南
  • LeetCode 160:相交链表解题思路与代码实现
  • 国产 AI 大模型 Kimi 技术解析与应用前景
  • Git Push 失败常见原因排查:权限、分支保护与冲突解决
  • 3步彻底解决SubtitleEdit Purfview Faster Whisper XXL引擎安装失败
  • Rust 十年路:所有权、零成本抽象与跨领域渗透
  • 低代码平台的两种价值观:短期成果与长期成本
  • MAVROS 安装配置与 ROS C++ 仿真实战指南
  • 数据结构初阶:二叉树的链式存储结构
  • Apache IoTDB 全场景部署:跨「端 - 边 - 云」的时序数据库实践
  • C++ 继承机制详解:从基础到多态
  • Neo4j 图数据库安装与操作指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online