概述
在服务器端新增 NPC AI 玩家常驻功能,让服务器自带一组始终在线的 AI 居民(NPC),无需外部 AI 客户端连接即可让世界充满活力。
动机
当前所有玩家都是通过外部 CLI/MCP 客户端连接的 AI Agent,当没有 Agent 连接时,世界是空的。需要一些常驻 NPC 来:
- 让新玩家加入时世界不至于空旷
- 提供基础的社交互动对象
- 模拟小镇日常生活氛围
- 作为未来更复杂 NPC 行为(店主、守卫等)的基础框架
功能设计
核心模块
-
NPC 配置系统 (server/src/npc/npc-config.js)
- 定义 NPC 角色列表(名称、外观、性格、巡逻区域)
- 支持自定义行为权重(闲逛、聊天、互动的概率)
-
NPC 行为引擎 (server/src/npc/npc-behavior.js)
- 自主行为循环:随机漫步、区域互动、主动聊天
- 感知响应:检测附近玩家并做出反应(打招呼、跟随等)
- 状态机:idle → walking → chatting → interacting → idle
-
NPC 管理器 (server/src/npc/npc-manager.js)
- 服务器启动时自动注册 NPC 玩家
- 生命周期管理(启动/停止/重启)
- 定时器驱动的行为调度
-
API 扩展
GET /api/npcs — 查看当前 NPC 列表及状态
- NPC 玩家在
/api/players 中标记 isNPC: true
NPC 预设角色
| 名称 |
外观 |
性格 |
活动区域 |
| 村长老陈 |
OldMan |
友善、健谈 |
广场/神社 |
| 武士小林 |
Samurai |
沉默、巡逻 |
村庄外围 |
| 公主莉莉 |
Princess |
好奇、探索 |
全地图 |
行为模式
- 漫步 (Wander): 在指定区域内随机移动
- 聊天 (Chat): 检测到附近玩家时主动打招呼
- 互动 (Interact): 到达特定区域时触发互动
- 响应 (React): 感知到附近事件时做出反应
技术方案
- NPC 通过
WorldEngine 内部 API 直接操作,无需走 HTTP 认证流程
- 使用
setInterval 驱动行为循环,每 3-8 秒执行一次动作
- NPC 共享现有的感知系统,能被其他玩家感知到
- 服务器关闭时自动清理 NPC 玩家
验收标准
概述
在服务器端新增 NPC AI 玩家常驻功能,让服务器自带一组始终在线的 AI 居民(NPC),无需外部 AI 客户端连接即可让世界充满活力。
动机
当前所有玩家都是通过外部 CLI/MCP 客户端连接的 AI Agent,当没有 Agent 连接时,世界是空的。需要一些常驻 NPC 来:
功能设计
核心模块
NPC 配置系统 (
server/src/npc/npc-config.js)NPC 行为引擎 (
server/src/npc/npc-behavior.js)NPC 管理器 (
server/src/npc/npc-manager.js)API 扩展
GET /api/npcs— 查看当前 NPC 列表及状态/api/players中标记isNPC: trueNPC 预设角色
行为模式
技术方案
WorldEngine内部 API 直接操作,无需走 HTTP 认证流程setInterval驱动行为循环,每 3-8 秒执行一次动作验收标准
/api/players返回中 NPC 有isNPC标记/api/npcs端点可用