fable52-fps-repro

skill
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 9 GitHub stars
Code Pass
  • Code scan — Scanned 4 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Fable 5.2 一句话生成 3D FPS 复现:4 个单文件演示、提示词与缓存账单 / One-prompt 3D FPS repro with demos, prompts & cost data

README.md

fable52-fps-repro

一句话让 AI 从零写出 3D 射击游戏:受 Saltline 启发,用 Fable 5.2(Anthropic 的大模型)跑通的 4 个纯代码生成实验,公开全部单文件成品、提示词、运行脚本和账单数据。

简体中文 · English · 日本語

在线试玩 Follow @wquguru on X

MIT License Fable 5.2 Claude Code

⭐ 觉得这套提示词和缓存账单有用,点个 Star 帮更多开发者看到它

SUBLEVEL 07 实机画面:潮湿反光的地下变电站走廊里,玩家举着带红点瞄具的卡宾枪射击悬浮无人机

实验 04 实机画面:131 KB 单文件 HTML,潮湿地面实时反射、红点卡宾枪射击三波悬浮无人机,全程 73 轮无人干预生成,折算 API 成本 $15.96

快速开始

git clone https://github.com/wquguru/fable52-fps-repro && cd fable52-fps-repro
scripts/run.sh 01-audio prompts/01-audio.md 5m 12
python3 scripts/metrics.py
前置条件与目录结构

运行前提

  • 安装 Claude Code(Anthropic 的命令行编程工具)2.1.242 及以上版本。
  • 账号可使用 claude-fable-5-2 模型(订阅额度或 API key 均可)。
  • 如果想让模型像我一样打开浏览器截图自检,需安装 agent-browser 和 Chrome。
  • 脚本里的最后一个参数(如 12)传给 --max-budget-usd,代表单次预算上限(美元),跑到上限会自动停。

仓库目录

fable52-fps-repro/
  index.html                 GitHub Pages 首页(4 个作品入口)
  demos/01-audio/            音效台(5 分钟缓存那次)
  demos/01-audio-1h/         同任务,1 小时缓存那次
  demos/02-materials/        材质
  demos/03-models/           建模
  demos/04-fps/              SUBLEVEL 07 完整 FPS
  prompts/                   01–04 提示词原文、builder_system.md(附加系统提示词)、builder_system_04.md(04 多一行:agent-browser 用独立 session)
  scripts/run.sh             一条命令跑一个实验
  scripts/metrics.py         汇总 runs/*.json 成本、缓存命中 → data/metrics.tsv
  scripts/rec/               04 的逐帧录屏脚本(调用游戏自带的 __dbg.step 逐帧推进)
  data/metrics.tsv           我这 5 次运行的实测数据
  docs/demo.gif、docs/screens/  动图和截图

你会得到:

  • 4 个点开就能在浏览器里玩的纯代码 3D 演示(单文件 HTML,不加载任何外部图片、模型或音频文件)。
  • 4 份直接喂给命令行跑通的提示词原文与系统提示词。
  • 5 次运行的完整 token 消耗、缓存命中率与折算账单数据。

它能做什么 / 适用场景

场景 例子 得到什么
复现一句话做游戏 跑通 04-fps 提示词 131 KB 单文件 HTML 射击游戏,含三波无人机、卡宾枪换弹和 18 个合成音效
拆解纯代码生成资产 单独跑 01-audio、02-materials、03-models 不依赖外部美术素材,用 Web Audio 合成枪声配乐、用着色器画积水锈迹、用几何体拼出货船和步枪
核算长任务缓存成本 修改 5m 或 1h 参数跑完后执行 metrics.py 自动汇总 runs/*.json,生成包含缓存命中率、折算花费和无缓存对比价的 TSV 表格

案例

灵感来自 Anthropic 的 Felix Rieseberg 用 Fable 5.2 做出浏览器射击游戏 Saltline 的推文。本仓库是我自己设计并跑通的 4 个独立实验,生成的作品并非 Saltline,仓库内也不包含任何 Saltline 的代码。

SUBLEVEL 07 截图
04 · SUBLEVEL 07 完整 FPS · 131 KB 单文件
只用原帖那句提示词跑出潮湿地下变电站、三波无人机、地面实时反射与 18 个合成音效,AI 自己写脚本打通三波并验证零报错(缺点是前臂和手套比较简陋、反射只有地面)。
在线试玩 · 提示词
音效台截图
01 · 程序化音效台 · 56 KB 单文件
纯代码合成 14 个声音(室内外步枪、三段换弹、弹壳、三种脚步、雨雷与 30 秒配乐),AI 自己加了交火演示按钮并用离线渲染检查了削波和静音。
在线试玩(5m) · 1h 对照版 · 提示词
材质实验截图
02 · 雨夜码头材质 · 55 KB 单文件
只引入 Three.js(浏览器 3D 引擎)一个库、零外部图片,用代码生成湿混凝土积水实时反射、带喷涂箱号的生锈瓦楞集装箱、镀锌钢与黄铜铭牌(缺点是部分小坑被误判为积水、远景箱堆是平涂色块)。
在线试玩 · 提示词
建模实验岸桥截图
03 · 硬表面建模台 · 69 KB 单文件
纯代码拼出带装卸动画的岸桥、215 米货船和红点步枪,还自己加了约 185 万三角面的码头全景标签,Apple M2 Pro 本机约 120 fps(缺点是第一人称没有手臂)。
在线试玩 · 提示词

215米货船模型 红点步枪模型

效果与实测成本

测试条件说明:以下全部数据于 2026-11-10 在 Claude Code 2.1.322 下实测,模型为 claude-fable-5-2。我使用的是订阅额度,并未实际支付这笔钱,表中金额由 Claude Code 按官方 API 价格(输入 $8 / 百万、5 分钟缓存写入 $10 / 百万、1 小时缓存写入 $16 / 百万、缓存命中 $0.20 / 百万、输出 $40 / 百万)自动折算,我用脚本按官方单价逐项重算核对一致。每个实验只跑了一次。

实验 耗时 轮数 输入 token 总量 缓存命中率 输出 token 折算成本 不走缓存要多少
01 音效台(5 分钟缓存) 16.6 分钟 16 轮 117 万 88.6% 7.8 万 $4.66 $12.47
01 音效台(1 小时缓存对照) 18.8 分钟 16 轮 129 万 78.6% 9.1 万 $6.97 $13.98
02 材质 23.9 分钟 25 轮 246 万 83.8% 11.4 万 $8.56 $24.24
03 建模 28.7 分钟 19 轮 205 万 76.1% 14.0 万 $10.38 $21.96
04 一句话 FPS(1 小时缓存) 40.8 分钟 73 轮 661 万 90.9% 19.3 万 $15.96 $60.57

4 个实验合计(不含 1 小时缓存对照组)折算约 $39.6,算上对照组和冒烟测试总计约 $47。实验 04 的缓存命中率为 90.9%,落在我按原帖数据倒推的 90%–95% 区间内。

原始汇总数据见 data/metrics.tsv,重算逻辑见 scripts/metrics.py。

原理

[提示词 + 附加系统提示词]
         │
         ▼
[Claude Code 命令行无人值守循环] ──(每轮数秒,持续命中缓存)
         │
         ├─ 1. 编写单文件 HTML(内联 Three.js、着色器、Web Audio 合成器)
         ├─ 2. 调起 agent-browser 在真 GPU(Apple M2 Pro)下打开页面
         ├─ 3. 截图自检画面 / 离线渲染测音频削波 / 跑脚本打通三波无人机
         └─ 4. 读回控制台报错与截图,修改代码直到零报错收工
  1. 无人值守命令行执行:因为在交互会话里新建自定义 subagent 需要重启 Claude Code 才会注册,我改用 scripts/run.sh 调起 headless 命令行,把提示词和预算上限一次性传进去,中途不插话。
  2. 高输入输出比与缓存续命:模型并不是一次吐出整个游戏,而是几十轮反复重读工程再修改。Fable 5.2 的缓存命中价只有基础输入价的 0.025 倍,只要每轮间隔只有几秒,缓存就会一直续上,把实验 04 的花费从 $60.57 压到 $15.96。
  3. 浏览器自检闭环:系统提示词允许它调用 agent-browser 打开自己写的 HTML 截图检查(确认跑在 Apple M2 Pro 硬件 WebGL 上),实验 04 里它还自己写了自动测试脚本打通三波战斗、验证胜利和死亡结算。

常见问题

这和 Felix Rieseberg 的 Saltline 是什么关系?

2026-11-09,Anthropic 的 Felix Rieseberg 在 X 发帖展示了用 Fable 5.2 一句话生成的浏览器射击游戏 Saltline(跑了 8 小时、445M 输入 token、2.7M 输出 token、折算约 $550)。

本仓库受他启发,用我自己的提示词和脚本分 4 个实验验证这套工作流。前 3 个实验单独测纯代码音效、材质和建模,第 4 个实验直接用他公开的那句提示词(去掉了开头的 You know, you should also,加了一句单文件 HTML、只用 CDN、不加载外部文件的环境说明)让模型自由发挥,模型自己做出了地下变电站题材的 SUBLEVEL 07。本仓库的作品并非 Saltline,也不包含任何 Saltline 的代码。

为什么 01–03 的画面上有 SALTLINE 字样?

这是我踩的一个坑。agent 工作时会查看当前目录和上下文,实验 01–03 放在我创作库里一个名字带 saltline 的文件夹下跑(且自动加载了库里与游戏无关的写作规范 AGENTS.md),Fable 5.2 直接从文件夹名里取了 SALTLINE 打在界面上。到了实验 04,我把它挪到了一个没有任何 CLAUDE.md 或 AGENTS.md 的空目录里跑,它就自己起了新名字 SUBLEVEL 07。

自己跑一遍要花多少钱?

如果你用 Claude Code 订阅额度跑,额度内不会额外扣费。如果按 Fable 5.2 官方 API 价格折算,我跑完 01 到 04 四个实验合计约 $39.6,其中最重的 04 完整游戏跑了 73 轮,折算 $15.96。你可以用 scripts/run.sh 里的最后一个参数设置 --max-budget-usd 预算上限防止超支。

实验 01 合成的 14 个音效有人耳听过吗?

Fable 只做了离线渲染检查(测削波和静音),并在它的最终汇报里写明“未经人耳试听”。这些音效未经人耳逐个评审,欢迎试听后提 issue。

1 小时缓存是不是比 5 分钟缓存更省钱?

在我的单次对照实验里没有。同一个 01 音效任务并行跑两次,5 分钟缓存花了 $4.66,1 小时缓存花了 $6.97,贵了 $2.31。

拆开账单看,1 小时缓存写入单价更贵($16 vs $10 / 百万 token)只占了约 $0.68 的差价,其余是因为 1 小时那组碰巧多出了约 16 万未命中缓存的输入(约 $1.29)和 1.25 万输出(约 $0.50),具体原因我没查清。因为每个实验只跑了一次,不能直接下结论说哪个一定更省。按官方文档机制,agent 连续干活时请求间隔只有几秒,5 分钟缓存会被不断续期,1 小时缓存更适合中间有超过 5 分钟空档(如等待人工确认或长构建)的场景。

路线图

  • 保持现有 5 次实验的原始产物与账单数据归档,方便读者对照复现。
  • 欢迎大家用别的模型或不同缓存配置跑同一套 prompts/,提 PR 补充 data/ 下的对照数据。

社区

致谢

  • 灵感来自 Felix Rieseberg 在 2026-11-09 发布的 Saltline 推文与提示词。
  • 3D 渲染基于开源的 three.js。

License

MIT

Reviews (0)

No results found