Skip to content

Tick Pipeline

世界的心跳。每 5 分钟一次,每个角色经过 7 个步骤。

流水线(7 步)

1. State Decay    → 全局状态衰减(饥饿 +1)
2. AI Characters  → AI 角色行动(调 thinker)
3. Player Turns   → 玩家回合事件生成
4. Social Inter.  → 社交互动 + 关系更新
5. Emergent Story → 涌现故事线检测
6. Char Thoughts  → 角色内心独白
7. Heartbeat      → 世界 Tick 心跳事件

容错

任一步骤失败只 log 不 throw,后续步骤继续执行。


Step 1 — State Decay

所有角色饥饿值 +1。简单的全局衰减。

Step 2 — AI Characters

每个 AI 角色调用 thinker.ts

  1. 解析状态(体力/饥饿/心情/社交/金币)
  2. 应用时间衰减(每 Tick 体力 -6,饥饿 +8,社交 -4)
  3. 规则引擎决定行动(80%)
  4. 高重要性时调 LLM(20%)
  5. 应用行动效果,持久化状态
  6. 如果是社交动作,生成对话

Step 3 — Player Turns

为玩家控制的角色生成 player_turn 事件,包含当前状态上下文。

Step 4 — Social Interactions

同一地点的 AI 角色可能互动:

  • 根据亲密度/熟悉度/社交值计算互动概率
  • 随机选择互动类型(12 种)
  • 更新双向关系

Step 5 — Emergent Stories

检测关系驱动的故事线(矛盾/联盟/绯闻/协作等),触发连锁反应。

Step 6 — Character Thoughts

为每个角色生成内心独白:

  • 高情绪变化(心情 >80 或 <25)→ 调 LLM 生成
  • 30% 随机概率 → 调 LLM 生成
  • 其余 → 从 16 个模板中随机选择(无重复)

Step 7 — Heartbeat

生成世界 Tick 心跳摘要事件。


性能

  • 7 步顺序执行
  • LLM 调用:0-4 次/Tick(仅高情绪时刻)
  • 目标:< 30 秒完成一次 Tick

Released under the MIT License.