Floniks
返回博客
案例展示5 分钟阅读

从一张截图,做出一款解谜游戏:零提示词的 agent 开发实录

输入是一张截图和一句话,产出是浏览器可玩的逻辑解谜游戏——AI 美术、生成配乐、15 秒广告全部经 Floniks 产出。人类零提示词:agent 自己调研玩法、抽视频关键帧、统筹任务,MCP 直连生成能力。

作者: Elena Park
从一张截图,做出一款解谜游戏:零提示词的 agent 开发实录

输入是一张截图和一句话,产出是一款精致、浏览器直接可玩的逻辑解谜游戏——AI 生成的美术、生成的配乐、一支 15 秒玩法广告,全部经 Floniks 产出。人类写了零条提示词。本文一步步复盘:agent 如何把随口的指令变成上线的游戏,以及这条流水线为什么从不卡壳。

这是上下两篇中的上篇。下篇《从一句话,交付一部视觉小说》把同一套方法推向语音、立绘与分支剧情。

版本演进:左为一句话立项的 v1,右为最终版——右图是 WASM 版在浏览器中运行的实机截图
版本演进:左为一句话立项的 v1,右为最终版——右图是 WASM 版在浏览器中运行的实机截图

人类到底提供了什么

这款游戏的全部人类输入是:一张解谜游戏截图、一段玩法视频、几句一行话。没有设计文档,没有规则书,没有提示词工程。其余的一切——玩法调研、任务分解、素材生成、测试、部署——由 agent 用两个平台统筹完成:开源引擎 rust_bevy_lua_game 与经 MCP 接入的 Floniks

完整的输入台账如下:

人类说的agent 分解出的
"做这个游戏"(一张截图)从图识别玩法族:Queens / Star Battle 类逻辑谜题——每行、每列、每个色区恰好一子,任意两子不得相邻(含对角)
"规则你自己去调研"调研补全规则,并把每条规则编码为无头测试不变量——规则文档就是测试套件本身
(没说)决定棋盘必须唯一解,并写解数计数器强制执行
(没说)按仓库规范自注册进合集菜单,零引擎改动

第一版当天上线。

视频成了需求规格

第一版能玩,但和原作气质相去甚远。人类丢来一段玩法视频,只配一句:"完全复刻它的 UI 和玩法。"

agent 从视频中抽取关键帧,当规格表用:8×8 棋盘、圆角关卡徽章、心数、倒计时、连胜;点按落子、冲突格自动打 ✕ 的交互节奏;布局比例是量出来的,不是目测的。然后照这份"从视频读出的规格"重写了整个界面。视频就是需求文档——前提是读它的是 agent。

反馈以截图形式到达,而不是工单

下一轮打磨始于人类发回的一张不满意截图:格子是色块不是图形、字体不够粗、棋盘应为 8×8,以及"加一点相机高级效果"。

一条消息变成四项并行修复:超采样贴图生成器产出可染色圆角瓦片;换上真正的 CJK 粗体子集字体;关卡生成器改用爬山精炼——8×8 下盲重摇找不到唯一解棋盘(首关实测 237 个解,收敛到恰好 1 个);引擎新增相机变焦 punch API。

唯一解那个 bug 值得记住:是测试套件抓住的,不是人工评审。 套件断言每关恰好一个解,agent 只能更换算法。这正是 agent 能独自迭代的底气。

一切视听产物交给 Floniks

小马棋子是 Floniks 文生图产物:去背景、缩放到精确像素、落进引擎素材目录——游戏按文件名拾取,零代码改动。十个 HUD 图标和圆角 UI 贴图出自同一条线。配乐是 Floniks 文生音乐(Lyria 2)。那支 15 秒玩法广告:真实游戏素材渲染成关键帧,交给 Floniks 图生视频,配上生成的配乐。

玩法广告关键帧:手指演示放马、冲突格自动打 ✕、过关庆祝——每个元素都是游戏内真实素材
玩法广告关键帧:手指演示放马、冲突格自动打 ✕、过关庆祝——每个元素都是游戏内真实素材

为什么不卡壳:两个平台,一条流水线

流水线顺畅的原因不是 agent 快,而是路上没有关卡。引擎侧与 Floniks 侧各管半条流水线,每个接缝都是机器可以通过的契约:

需求引擎提供Floniks 提供接缝处的契约
改玩法逻辑集中在一个 Lua 文件,秒级热重载一页纸的 game.* API,agent 全记得住
验对错无头测试套件,13 万+ 断言规则 = 不变量 = 测试
要美术素材按文件名与尺寸加载,零代码换皮文生图 + 去背景,经 MCP 调用风格圣经锁色板;manifest 让每张图可重放
要音乐三声道音频,一行接入文生音乐同名音频文件落位
要宣传真实素材渲染成关键帧图生视频 + 配乐关键帧进,成片出

agent 在同一个会话里写代码、跑测试、调 Floniks、把产物落进约定路径、提交——没有任何一步需要人在工具间搬运文件。

完全跨平台:一份 crate,原生与 WASM

游戏从同一份 Rust crate 发往三端:原生 macOS(agent 的热重载开发循环)、原生 iOS 120Hz ProMotion、以及浏览器里的 WebAssembly——Lua VM 换成暴露同一 API 的纯 Rust 实现,每个游戏脚本在三端字节级相同

证据就在本文题图:右侧不是设计稿——是 headless 浏览器中 WASM 版的实机截图。一条链接在任何手机浏览器可玩;同一款游戏在 iPhone 上又是原生流畅。

问答

人类写过提示词吗?

没有。人类提供的是截图、视频和一行话;Floniks 生成的提示词与引擎侧的任务分解都由 agent 自己组织。

agent 怎么调用 Floniks?

经 MCP:Floniks 注册为一组工具(文生图、图生视频、文生音乐、去背景等),agent 在编码会话中直接调用,产物落进游戏素材目录。见 Floniks MCP 服务

agent 独自迭代时靠什么保持诚实?

把游戏规则编码为不变量的无头测试套件。唯一解要求对每一关断言,真实的生成器 bug 正是这样被抓住并逼向更好算法的。

成品能玩吗?

能——整个合集经 WebAssembly 在浏览器中运行,源码开源在 GitHub 的 rust_bevy_lua_game 仓库。

想把生成能力接进你自己的构建循环?从 Floniks MCP 服务开始;或者读读同一方法如何扛住更重的题材:下篇

标签

#showcase#ai-game-development#vibe-coding#mcp#sprite-generation#text-to-music#image-to-video#webassembly

相关文章

从一张截图做出解谜游戏:零提示词实录 | Floniks