Worldline Choice
v4.1.1AI驱动互动叙事游戏引擎 v4.1.1 - 世界观扩展版。LLM驱动+d20检定混合架构,支持任意世界观,ABCD预定义选项+E自由选项,简化单回合动作系统。
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (LLM-driven d20 narrative engine) align with included files (worldline_skill.py, worldline_engine.py, OpenClaw adapter, tests, save manager) and skill.json. There are no declared environment variables, binaries, or unrelated credentials required.
Instruction Scope
SKILL.md describes running the CLI and using the OpenClaw adapter; runtime instructions and examples only reference LLM calls, local save/load, option generation, and dice checks. This stays within the stated game engine scope. Note: the adapter auto_saves by default and the save manager writes files to disk — this is expected for a game but is actionable I/O (see guidance).
Install Mechanism
No install spec is provided (instruction-only in registry), and the files are pure Python source and tests. There is no network install or archive download specified by the skill itself. README suggests cloning a GitHub repo, which is normal documentation but not an automatic installer.
Credentials
The skill declares no required environment variables or credentials. The code shown does not access external secrets or unrelated env vars. The OpenClaw adapter expects an llm_call callback (normal) and will call whatever LLM function you provide.
Persistence & Privilege
always:false (normal) and autonomous invocation is allowed (default). The skill persists game state to disk via its SaveManager; auto_save in the OpenClaw adapter defaults to True, so running the skill will create/write save files. This is expected behavior for a game but you should control the save directory permissions and review save paths.
Assessment
This package appears coherent for an LLM-driven d20 narrative engine and does not request unexpected credentials. Before installing or running it: 1) Inspect worldline_skill.py (entry point) for any network calls, subprocess.exec/use of os.system, or reading of sensitive host files; 2) Run it in a contained environment (sandbox, dedicated user) because it writes save files to disk (control save directory); 3) When used via OpenClaw, remember the adapter will call whichever llm_call you pass — only supply a trusted LLM callback; 4) If you don’t want the skill to auto-save every turn, initialize the adapter with auto_save=False or change the save_dir; 5) If you need higher assurance, request a file-level review of worldline_skill.py and any truncated files not included here. Overall the skill is coherent and its behavior matches its documentation.Like a lobster shell, security has layers — review code before you run it.
d20fantasygamelatestllmnarrativerpgsci-fitactical
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
Worldline Choice v4.1.1 - 世界观扩展版
简介
Worldline Choice 是一个真正具有挑战性的AI驱动互动叙事游戏引擎。
v4.0.0 架构革命:从纯代码驱动升级为 LLM + d20混合架构:
- LLM 负责:意图理解、DC评估、叙事生成
- d20 负责:客观判定(成功/失败程度)
- 代码 负责:状态管理、规则执行
v4.1.1 世界观扩展:支持任意世界观设定,LLM自动适配DC评估和叙事风格。
v4.0.0 新增:LLM驱动架构
架构对比
| 特性 | v3.3.2 | v4.0.0 |
|---|---|---|
| 驱动方式 | 纯代码规则 | LLM + d20混合 |
| 复杂度 | 多步骤战术系统 | 简化单动作回合 |
| DC评估 | 硬编码规则 | LLM理解意图评估 |
| 叙事生成 | 模板化 | LLM根据骰子结果生成 |
| 扩展性 | 需代码修改 | LLM自动适配新世界观 |
核心流程
玩家输入
↓
LLM分析 → ActionAnalysis (意图, DC, 属性)
↓
前置条件检查 (物品, 知识)
↓
d20投骰 → CheckResult (客观成功/失败)
↓
LLM生成叙事 (基于骰子结果)
↓
应用状态变更 → 更新GameState
关键约束:LLM 不能 覆盖骰子结果,叙事必须严格遵守骰子确定的程度。
六项通用属性
v4.0.0引入跨世界观的通用属性系统:
| 属性 | 英文 | 适用场景 |
|---|---|---|
| 力量 | FORCE | 战斗、物理攻击 |
| 智力 | MIND | 解谜、技术、魔法 |
| 魅力 | INFLUENCE | 社交、说服、领导 |
| 敏捷 | REFLEX | 潜行、闪避、反应 |
| 体质 | RESILIENCE | 耐久、意志力 |
| 运气 | LUCK | fortune、巧合 |
ABCD预定义选项 + E自由选项
v4.0.0新增剧情导向的选项系统:
- A/B/C/D:四个预定义选项,每个代表不同的剧情走向和行事风格
- E:自由输入,玩家可描述任何自定义行动
选项设计原则:
- 情境沉浸 - 紧密结合当前场景
- 戏剧张力 - 呈现真实两难或价值观冲突
- 角色扮演 - 反映不同人物性格
- 后果分化 - 导向明显不同的剧情分支
示例场景:你发现受伤的敌人倒在路边
A. 救他,可能获得情报但也可能暴露自己 [INFLUENCE] (DC14)
B. 搜刮物资后离开,不管他的死活 [MIND] (DC12)
C. 给他个痛快,结束他的痛苦 [FORCE] (DC15)
D. 藏起来观察,等他的同伴来 [REFLEX] (DC13)
E. 自定义行动...
v4.1.1 新增:世界观扩展
任意世界观支持
v4.1.1移除了世界观硬编码限制:
- 无需代码修改 即可支持新的世界观
- LLM自动理解世界观背景
- 自动适配DC评估和叙事风格
支持的世界观示例:
- 武侠、仙侠、玄幻
- 赛博朋克、蒸汽朋克
- 克苏鲁、后启示录
- 任意自定义设定
运行时模式
1. CLI模式 (python3 worldline_skill.py):
skill = WorldlineSkill()
skill.start_game("武侠", "剑客", "李逍遥")
result = skill.process_turn("我尝试与店主交谈")
2. OpenClaw模式 (openclaw_adapter.py):
from openclaw_adapter import create_skill
adapter = create_skill(openclaw_llm_call)
adapter.start_game("赛博朋克", "黑客", "V")
3. 选项驱动模式:
# 生成本回合选项
options = skill.generate_turn_options()
# 处理玩家选择
result = skill.process_option(options, "A")
v3.3.2 新增:防套利机制
1. 勉强成功降级(补丁 A)
| 结果 | 对当前步骤 | 对后续步骤加成 |
|---|---|---|
| 大成功 | 超额完成 | DC-5 |
| 成功 | 顺利完成 | DC-3 |
| 勉强成功 | 完成但有代价 | DC-1(原为DC-3) |
| 勉强失败 | 失败但可补救 | 无加成,可能DC+2 |
| 失败 | 明确失败 | 无加成,DC+5 |
| 大失败 | 灾难性后果 | 无加成,DC+5,可能信息泄露 |
设计意图:防止玩家用低成本 filler 步骤「垫刀」蹭加成。只有真正的成功才能给后续步骤带来显著优势。
2. 指挥链过载(补丁 B)
当步骤数超过 3步 时:
- 第4步起,每多一步,该步骤及之后所有步骤 DC+1
- 代表指挥链过长、部队协调困难
示例:6步计划
步骤1: DC 12(正常)
步骤2: DC 10(正常)
步骤3: DC 14(正常)
步骤4: DC 15(+1 过载)
步骤5: DC 18(+1 过载)
步骤6: DC 10(+1 过载)
例外:复合步骤(相同数字标记)算作单一步骤评估过载。
3. 信息泄露机制(补丁 C)
任何步骤出现 大失败(自然1) 时:
- 该步骤的战术信息可能被敌方获取
- 敌方掌握的信息越多,所有后续步骤 DC 累加+2
- 信息泄露无法消除,持续整场战斗
示例:信息泄露叠加
步骤2大失败 → 后续步骤 DC+2(信息泄露×1)
步骤4大失败 → 后续步骤 DC+4(信息泄露×2)
叙事表现:
- 士兵溃逃泄露埋伏位置
- 斥候被俘吐露全盘计划
- 暗器失手暴露偷袭意图
v3.3.1 新增:数字标识多步骤判定
使用规则
格式支持:
1. 派100人偷袭粮草
2. 派500人埋伏两侧
3. 主力诈败诱敌
4. 合围击杀
同时发生(相同数字):
1. 派左翼佯攻
1. 派右翼包抄 ← 与上一步同时
2. 主力正面冲击 ← 前两步完成后执行
支持的分隔符:
1.2.- 英文句点1、2、- 中文顿号1)2)- 括号格式
复合步骤检定
当多个行动共享同一数字时:
- 每个子行动独立检定(DC+2,同时执行更困难)
- 结果合并计算:
- 全部成功 → 步骤成功
- 部分失败 → 勉强成功/勉强失败
- 关键失败 → 步骤失败
v3.3 特性:战术多步骤判定系统
支持的句式模式(10+种)
| 模式 | 示例 | 检测 |
|---|---|---|
| 派X人做Y | 派100人偷袭粮草 | ✓ |
| 剩下/剩余X人 | 剩下400人诈败诱敌 | ✓ |
| 主力/亲卫 | 主力部队正面迎敌 | ✓ |
| 亲率/亲自 | 本将亲率亲卫冲锋 | ✓ |
| 然后/接着 | 然后合围击杀 | ✓ |
| 再/又 | 再派预备队包抄 | ✓ |
| 首先...最后 | 首先侦察,最后总攻 | ✓ |
| 第一步...第三步 | 第一步诈降,第三步围歼 | ✓ |
| 一边...一边 | 一边骚扰一边集结 | ✓ |
| 同时 | 同时左翼佯攻、右翼包抄 | ✓ |
| 继而/末了 | 继而伏兵四起,末了合围 | ✓ |
步骤类型识别
系统可识别15+种战术目的:
- 偷袭、埋伏、诱敌、佯攻
- 粮草、侦察、合围、总攻
- 撤退、防守、进攻、准备
- 以及关键步骤标记
步骤依赖与影响
步骤1: 派100人偷袭粮草 (DC 12)
├─ 成功 → 敌军混乱,步骤2 DC-3
├─ 勉强成功 → 效果有限,步骤2 DC-1(v3.3.2:勉强成功不给满额加成)
└─ 失败 → 敌军警觉,步骤2 DC+2
步骤2: 派500人埋伏 (DC 10,受益于步骤1)
├─ 成功 → 伏击就绪,步骤3 DC-3
├─ 勉强成功 → 埋伏有漏洞,步骤3 DC-1
└─ 失败 → 埋伏暴露,计划受影响
步骤3: 主力诈败诱敌 (DC 14,关键步骤)
├─ 成功 → 敌军入套,步骤4 DC-3
├─ 勉强成功 → 敌军起疑,步骤4 DC不变
└─ 失败 → 计划失败,可能中断
步骤4: 合围击杀 (DC 8,关键步骤)
├─ 成功 → 敌军全军覆没
└─ 失败 → 功亏一篑
关键步骤机制
部分步骤被标记为关键步骤(诱敌、偷袭、总攻、合围):
- 关键步骤失败(非勉强失败)→ 后续步骤可能跳过
- 例如:诈败失败 → 敌军未入套 → 合围步骤取消
历史版本特性
v4.1:世界观扩展
- 任意世界观支持:无需代码修改,LLM自动适配
- 运行时世界观切换:同一引擎支持武侠/科幻/玄幻等
- 自动叙事适配:LLM根据世界观调整语言风格和DC评估
v4.0:LLM驱动架构
- 架构革命:代码驱动 → LLM+d20混合
- ABCD+E选项系统:剧情导向的预定义选项 + 自由输入
- 简化回合制:单动作回合(移除多步骤战术系统)
- OpenClaw集成:完整的适配器层
v3.3.2:防套利机制
- 补丁A:勉强成功仅提供 DC-1 加成
- 补丁B:步骤数超过3时,第4步起每步 DC+1(指挥链过载)
- 补丁C:大失败触发信息泄露,后续步骤 DC 累加惩罚
v3.3.1:数字标识多步骤判定
- 不同数字 = 顺序执行
- 相同数字 = 同时执行(复合检定)
- 支持
.、)三种分隔符
v3.3:战术多步骤判定系统
- 支持10+种句式模式识别
- 步骤依赖与影响链
- 关键步骤中断机制
v3.2:复合行动分步检定
- 识别6种复合行动模式
- 先...然后...、一边...一边...等
- 步骤间相互影响(干扰成功→逃跑DC降低)
v3.1:叙事取巧检测
- 编造资源检测("身后突然来了帮手")
- 直接声明结果检测("我一剑秒杀")
- 凭空获得能力检测("突然领悟绝世剑法")
v3.0:通用挑战框架
- 6个通用能力维度
- d20强制检定系统
- 硬边界规则
- 资源消耗机制
- NPC主动性
核心检定机制
检定公式
d20 + (属性-10)/2 >= DC
难度等级
| 等级 | DC | 成功率 |
|---|---|---|
| 简单 | 5 | 90% |
| 普通 | 10 | 70% |
| 困难 | 15 | 50% |
| 极难 | 20 | 30% |
| 不可能 | 25+ | 10% |
结果等级
- 大成功(超10+):超额完成,额外收益
- 成功(超5+):顺利完成
- 勉强成功:完成但有代价
- 勉强失败:失败但可补救
- 失败:明确失败,承担后果
- 大失败(差10+):灾难性后果
自然20必成功,自然1必失败
技术架构
v4.0.0+ 架构 (LLM驱动)
WorldlineSkill (v4.0.0+)
├── GameState # 游戏状态管理(简化版)
├── D20Engine # 纯代码d20检定(客观判定)
│ ├── execute_check() # d20 + 属性修正 vs DC
│ ├── calculate_modifier()
│ └── CheckResult # 检定结果数据类
├── LLMDriver # LLM驱动层抽象
│ ├── analyze_action() # 意图分析 → ActionAnalysis
│ ├── generate_options() # 生成本回合ABCD+E选项
│ └── generate_narrative() # 基于骰子结果生成叙事
├── OpenClawAdapter # OpenClaw运行时适配器
└── SaveManager # 存档管理
v3.x 遗留架构 (代码驱动)
WorldlineEngine (v3.x)
├── GameState # 游戏状态管理
├── UniversalChallengeEngine # 通用挑战引擎
│ ├── is_tactical_multi_step() # 战术多步骤检测
│ │ └── 数字标识检测(v3.3.1新增)
│ ├── parse_tactical_steps() # 战术步骤解析
│ │ ├── _parse_by_number_markers() # 数字标识解析(v3.3.1新增)
│ │ ├── _parse_comprehensive() # 综合解析
│ │ ├── _parse_by_step_markers() # 步骤标记解析
│ │ └── _parse_by_connectors() # 连接词解析
│ ├── execute_tactical_check() # 战术多步骤检定
│ │ └── 复合步骤处理(v3.3.1新增)
│ ├── analyze_action() # 行动解析
│ ├── check_narrative_cheese() # 叙事取巧检测
│ ├── check_hard_limits() # 硬边界检查
│ └── execute_check() # d20检定
└── WorldRules # 世界规则
核心文件
| 文件 | 版本 | 说明 |
|---|---|---|
worldline_skill.py | v4.0.0+ | 核心技能实现,LLM+d20混合架构 |
openclaw_adapter.py | v4.0.0+ | OpenClaw集成适配器 |
skill.json | v4.0.0+ | OpenClaw技能清单 |
worldline_engine.py | v3.x | 遗留引擎(纯代码驱动) |
save_manager.py | v3.x | 独立存档管理器 |
版本历史
v4.1.1 (2026-04-03) - 世界观扩展版
- 任意世界观支持
- 无需代码修改即可支持新的世界观设定
- LLM自动适配DC评估和叙事风格
- 支持武侠/科幻/玄幻/克苏鲁等任意设定
- 运行时世界观切换
- 同一引擎实例可运行不同世界观
start_game(world_setting, ...)参数化世界观
- 属性系统固化
- 六项通用属性成为核心机制
- 跨世界观一致的属性语义
v4.0.0 (2026-04-01) - LLM驱动架构
- 架构革命:代码驱动 → LLM+d20混合
- LLM负责:意图理解、DC评估、叙事生成
- d20负责:客观判定(成功/失败程度)
- 代码负责:状态管理、规则执行
- ABCD+E选项系统
- 每回合生成4个预定义选项(剧情导向)
- 1个自由输入选项(玩家自定义)
- 选项基于当前情境动态生成
- 简化回合制
- 移除v3.3的多步骤战术系统
- 单动作回合,聚焦叙事
- 每回合独立检定
- OpenClaw集成
- 完整的适配器层 (
openclaw_adapter.py) - 支持工具调用接口
- 自动存档集成
- 完整的适配器层 (
- 存档格式升级
- 版本标记:
4.0.0-llm-driven - 简化状态结构
- v3.x存档可迁移(自动转换)
- 版本标记:
v3.3.2 (2026-03-31) - 平衡补丁版
- 防套利机制三部曲
- 补丁 A:勉强成功仅提供 DC-1 加成(原为 DC-3)
- 补丁 B:步骤数超过 3 时,第 4 步起每步 DC+1(指挥链过载)
- 补丁 C:大失败触发信息泄露,后续步骤 DC 累加惩罚
- 封死「垫刀流」套利:filler 步骤不再是无成本蹭加成
- 保留策略深度:奖励真正的成功,惩罚无脑堆步骤
v3.3.1 (2026-03-31)
- 数字标识多步骤判定
- 不同数字 = 顺序执行
- 相同数字 = 同时执行(复合检定)
- 支持
.、)三种分隔符
- 复合步骤独立检定
- 每个子行动独立掷骰
- DC+2(同时执行更困难)
- 结果合并计算
v3.3 (2026-03-31)
- 战术多步骤判定系统(完整版)
- 支持10+种句式模式
- 支持任意步骤数(不限4步)
- 步骤依赖与影响链
- 关键步骤中断机制
v3.2 (2026-03-30)
- 复合行动分步检定系统
- 6种复合行动模式识别
v3.1 (2026-03-30)
- 叙事取巧检测
- 属性差距阈值降低至15
v3.0 (2026-03-30)
- 通用挑战框架
- d20强制检定系统
许可证
MIT License
Files
11 totalSelect a file
Select a file to preview.
Comments
Loading comments…
