Goal 是什么
Goal 是一项驱动冒险向前推进的任务目标(quest objective)。它定义玩家试图达成什么,以及何时算成功或失败。目标通过“当前状态与期望状态之间的差距”制造叙事张力。
图式机制关联
依据 Gary Drescher 的理论:Context → Action → Result。目标定义激发行动的期望结果(Result)。冒险成为学习“达成目标的因果链”的实验室。
目标属性
- id:唯一标识符
- name:简短显示名称
- description:你试图达成的内容
- status:pending、active、complete、failed
- complete_when:自然语言条件
- fail_when:目标变得不可能完成的条件
- reward:完成时获得的奖励
- progress:部分完成度追踪
完成条件
自然语言条件可编译为 JS/PY,例如:
complete_when: "player has the treasure" complete_when_js: "(ctx) => ctx.player.inventory.includes('treasure')"
奖励
目标可以授予多种奖励:
reward: buff: "Hero's Glory" # 临时效果 item: "champion-medal" # 物品 unlock: "secret-room" # 新访问权限 narrative: "The kingdom celebrates!" # 剧情节点
进度追踪
用于多步骤目标:
progress: collected: 3 needed: 5
目标层级
目标可以嵌套:
parent: defeat-dragon children:
- find-magic-sword
- learn-dragon-weakness
- reach-dragon-lair
完成所有子目标即可完成父目标。
失败条件
目标可以失败:
fail_when: "time reaches midnight AND prisoner is not freed" fail_message: "You were too late."
示例
简单任务:
goal: id: find-treasure name: "Find the Treasure" complete_when: "player has the treasure"
限时挑战:
goal: id: rescue-mission name: "Save the Prisoner" complete_when: "prisoner is freed" fail_when: "10 turns pass without rescue" priority: urgent
收集任务:
goal: id: gather-keys name: "Collect All Keys" complete_when: "player has 5 enchanted keys" progress: collected: 2 needed: 5
相关技能
- adventure:包含活动中的目标
- hero-story:叙事结构
- needs:内在动机
协议符号
SCHEMA-MECHANISM —— 目标驱动因果学习