日期: 2025年12月11日 项目状态: 阶段 4 核心循环已跑通。正处于 V0.2 架构升级前夕。
I. V0.1 成果总结与架构状态
1. 核心功能验收 (V0.1 Done)
-
具身领袖: 玩家角色(执政官)可 WASD 移动。
-
近场沟通: 玩家靠近 NPC (德米特里) 3米内,底部对话框激活(显示👂图标)。
-
指令闭环 (Mock): 输入“砍树” → 德米特里移动到树 → 播放砍树动画 → 树消失 → 木材 +1。
-
UI 升级: UI 已经过古典石材风格重构,对话框精简,操作指引移至左侧(3A 风格)。
2. 当前架构状态 (Foundation Check)
我们已完成关键的工程化步骤,项目具备极强的扩展性:
| 文件 | 职责 | 扩展价值 |
app/config/GameConfig.ts | 配置中心。 集中管理移动速度、砍树时间等参数。 | 策划可随时调整游戏平衡性。 |
app/components/Game/GameState.ts | Zustand 状态库。 管理 logs, wood, isNearAgent, inputFocused 等全局状态。 | 单一数据源,易于追踪。 |
app/hooks/useGameLogic.ts | 逻辑中枢。 集中处理距离检测、指令解析、时间心跳等业务逻辑。 | 渲染与逻辑分离,便于调试和替换 LLM 模块。 |
app/components/Game/GameUI.tsx | 视觉呈现。 遵循古典雅典风格,具备 3A 级的 HUD 布局。 | 视觉效果已达标,后续只需增加新面板。 |
II. V0.2 核心目标:生存与智能体深化
V0.2 的主题是:将智能体从“工具”升级为“生命体”。
1. 核心体验目标
引入 饥饿压力 (Food Decay) 和 分工协作 (Hunter vs Worker),迫使玩家必须持续关注人民的生存需求。
2. 设计方案:三层优先级状态机 (HISMA)
| 优先级 | 层级名称 | 包含状态 (AgentState) | 行为逻辑 |
| 🔴 High | 生存本能 | STARVING, EATING, SLEEPING | 饥饿度低于阈值时,强制打断一切,进入 L1 状态。 |
| 🟡 Mid | 社会交互 | LISTENING, THINKING | 玩家靠近时打断工作,进入倾听状态。 |
| 🟢 Low | 职业工作 | IDLE, MOVING, WORKING | 默认状态。只有 L1 和 L2 不满足时才执行。 |
3. 数据层改造 (即刻要做的)
我们将把原本简单的 agentState 替换为复杂的 AgentProfile 字典。
// 新的 AgentProfile 接口结构
interface AgentProfile {
id: string;
name: string;
role: 'worker' | 'hunter';
stats: { satiety: number; energy: number }; // 引入饱食度/精力
state: AgentState; // 三层状态机中的当前状态
currentThought: string; // 智能体档案面板的“内心独白”
shortTermMemory: string[];
}
III. 下一步执行指令 (Execution Prompt)
这是在新对话中要执行的第一个、也是最关键的 Prompt。
Cursor Prompt 5.1 (Data Layer):
“@GameState.ts @GameConfig.ts
【V0.2 核心架构升级】
我们要升级智能体的数据结构,以支持 V0.2 的生存与分层状态逻辑。
1. GameConfig 升级:
在
GameConfig.NPC下添加maxSatiety: 100(饱食度上限),hungerRate: 1(每次心跳消耗),starveThreshold: 0(饥饿阈值) 等生存参数。2. GameState 重构 (核心):
定义新的状态枚举
AgentState = 'IDLE' | 'MOVING' | 'WORKING' | 'THINKING' | 'LISTENING' | 'STARVING' | 'EATING'。定义
AgentProfile接口(如上文所示)。Store 改造: 将原本分散的
agentState改为一个agents: Record<string, AgentProfile>字典。提供updateAgent(id, partialData)方法。全局心跳: 添加一个
tickSurvival()action,用于在useGameLogic中遍历所有 agents 扣除饱食度。请只修改数据层代码,确保类型定义严谨。”