Skip to content

设计游戏状态

变量系统是你赋予世界记忆的方式。

关于变量类型和指令的基础知识,请参阅入门指南:变量


创作决策:应该追踪什么?

在打开编辑器之前,可以先问自己:玩家需要感受到什么是真实的?

在生存游戏中,我们会需要:生命值、饥饿度、弹药。玩家需可能会生病,有各种状态。在恋爱游戏中,我们肯定会想要有好感度

不需要为每件事都创建变量。AI 能很好地自行处理叙事细节——除非天气在机制上有意义,否则不需要 current_weather 变量。 一个好的判断标准:如果这个值应该影响 AI 接下来写什么,例如生病会影响行动,好感度会影响对方答应和你出去玩还是拒绝,就创建变量。

玩家开始新会话时变量都是默认值,游玩过程中 AI 通过指令修改它,如果你向一个已有玩家在玩的世界添加新变量,现有存档在下次加载时会自动获得默认值。如果删除变量,它会被静默过滤掉。你可以放心地迭代变量设计,不会破坏任何人的存档(但是如果你的前端画面有显示这个变量的东西的话,这会有影响)。


选择合适的类型

四种变量类型(number、string、boolean、JSON)在入门指南:变量中有介绍。设计决策在于何时使用哪种,因为这个选择会影响 AI 与你的世界的交互方式。

Number:当值是数值、需要设置事件阈值、或变化幅度有意义时使用。数值类型的最小/最大值由引擎强制执行,所以你不需要浪费 prompt 空间告诉 AI「别让生命值低于零」但可以告诉ai生命值的等于0等于死亡(┬┬﹏┬┬)。

String:当值是文字——地点、心情、故事阶段。

Boolean:就是TRUE/False当某件事要么发生了要么没发生。行为里的的理想开关。

JSON:当单个变量需要存储结构化数据时:比如说背包空间,用json就是最好的,有属性的道具栏、有多重关系的阵营图、有嵌套进度的任务日志。


编写行为规则——四问公式

入门指南:变量介绍了规则的基础知识,也展示了模糊规则和具体规则的区别。

好的行为规则回答四个问题:

1. 这些值代表什么? 给 AI 一个图例。对于数值,描述每个范围在叙事上代表什么。对于字符串,列出有效状态。对于布尔值,解释 true 和 false 在故事中的含义。

2. 什么触发变化? 具体描述触发场景。对于关系变量,「善意互动增加好感度」就够了。对于 HP,「受到物理伤害减少生命值」也可以。给出的示例越多,AI 越一致。

3. 应该变化多少? 给出幅度范围。小事件应该产生小变化,大事件应该产生大变化。没有这个指导,AI 要么过度反应(每次互动 +20 好感度),要么反应不足(差点死掉才改 2 点生命值)。

4. 极限是什么? 限制每回合的最大变化量。这能防止剧烈波动破坏沉浸感。「每回合变化不超过 15」能让节奏保持自然。

TIP

通常两到四句话就够了。如果你的行为规则比一小段话还长,请简化。AI 很聪明——给它概念和边界就行,不需要给它一本规则书。


如何使用json变量

入门指南:变量所示,下面我们的示例每位女主角使用独立的数值变量,行为规则指定了幅度范围。这是最简单的方式,对 2-5 个角色效果很好。

另一种方案:用单个 JSON 对象存储所有关系。

json
{
  "名字1": { "信任": 50, "好感度": 0, "相遇?": true },
  "名字2": { "信任": 30, "好感度": 0, "相遇?": false }
}

当角色很多时更简洁,因为 AI 可以用点路径更新任何角色([relationships.aria.trust: +10]),你也可以通过 merge 添加新角色。代价是:独立数值变量对 AI 更简单易懂,也更不容易出错。

选择独立变量:当你有 2-5 个角色且需要最高可靠性时。选择 JSON 对象:当你有很多角色或需要动态添加新角色时。

道具栏系统

要实现带属性的道具栏,使用 JSON 数组:

json
[
  {"id": "铲子", "name": "铲子", "数量: 1},
  {"id": "面包", "name": "面包", "数量": 2}
]

地点与场景状态

一个名为 location 的字符串变量(默认值:「starting village」)通常就足够了。AI 在玩家移动时写 [location: set "dark forest"],基于地点关键词的条目注入相应的场景描述。

对于需要追踪场景多个方面的复杂世界,使用 JSON 对象:

json
{
  "area": "castle",
  "room": "throne-room",
  "time": "night",
  "alert-level": "high"
}

关于完整的指令语法(包括全部 9 种操作、简写陷阱和 JSON 变量的点路径表示法),请参阅 AI 指令与宏


常见错误

过度追踪。 不需要为每件事创建变量。如果 AI 能在叙事中自行处理某件事而不需要背后的数字,就跳过变量。你添加的每个变量都是 AI 需要管理的更多状态和需要编写的更多指令。

模糊的行为规则。 「追踪生命值」什么都没告诉 AI。「轻伤减少 5-15,重伤减少 15-25,0 = 死亡场景」告诉了 AI 一切所需。行为规则是变量能用和被忽略之间的分水岭。

数值变量忘记设 min/max。 没有边界,AI 可能把生命值推到 -47 或金币推到 999999。每个数值变量都设最小和最大值。引擎自动限制——这是免费的保险。

不测试幅度。 玩你的世界 10 个回合,检查数字是否感觉合理。如果好感度在三次互动中从 15 跳到 80,你的幅度范围太大了。如果 20个回合对方都对你爱答不理的好感度,那就太难攻略了`(>﹏<)′。

ID 对 AI 不友好。 使用简单可读的 ID,如 healthplayer-goldaria-trust。避免空格、特殊字符,或可能与内置宏冲突的名称(userchartimedate)。


延伸阅读

完整变量 schema → World Spec: Variables