Gemini 4 Argon 做游戏:一句提示词,19 项按键实测
用 Gemini 4 Argon 做游戏,一句提示词能不能出一个真能玩的网页游戏?看 48 条发布周游戏帖,再用无头浏览器跑 19 项按键检查:一个输入 bug、一次修复、总花费 0.39 美元。

用 Gemini 4 Argon 做游戏的演示视频,不管跳跃键灵不灵,看起来都一样。视频只能证明画面渲染出来了,证明不了玩家手速快过一帧时会怎样、切走标签页再回来会不会瞬移、死了按 R 能不能重开。可这些恰恰是「游戏」和「动画」的分界线。
所以这篇分两步走。先把 SandBase Lab 发布周合集里 48 条游戏帖过一遍,看大家用 Argon 做了什么、自己声称了什么;再自己动手:通过 SandBase 调 google/gemini-4-argon,一句提示词生成单文件 canvas 游戏,在无头 Chrome 里用真实按键跑 19 项检查,发现 bug 后发一次修复提示词,最后对账单。适合想靠提示词快速出可玩原型、又想知道分享链接前该查什么的开发者。
先说结论
- 一句提示词生成的游戏是一个 23 KB 的单 HTML 文件,打开零报错,首版 19 项检查过了 18 项:移动、边界、暂停、帧间隔钳制、计分、生命、结束、重开、最高分持久化都没问题。
- 唯一的失败出在输入时序:按下和松开发生在同一帧之内的空格「秒按」会被吞掉,10 次一次都没跳。原因是跳跃靠逐帧轮询「当前按住的键」。发一段修复说明后,模型只改了约 10 行,19 项全过。
- 两次调用合计约 2 分钟,SandBase 实扣 0.390808 美元(每百万 token 输入 4 美元、输出 20 美元)。同样的 token 按 Google 目前 2 / 10 美元的推广价算,约 0.195 美元。
- 48 条游戏帖里有 20 条是同题多模型对比。创作者自报的成本从 1.16 美元到 54.41 美元不等,差距主要来自 agent 工具反复重发上下文,而不是单价。这些数字我们都没有核实。
48 条 Gemini 4 Argon 游戏帖里有什么
SandBase Lab 收录了 2026 年 10 月 13、14 日两天 X 上公开发布的 264 条 Gemini 4 Argon 作品视频(合集页,数据同步于 2026-10-14T16:29:53Z),其中 48 条归为 game。这 48 条一共拿到 5,054 个赞、约 51.2 万次浏览,点赞中位数 20,视频时长中位数约 36 秒,只有 10 条附了提示词。下文都是创作者自己的说法,我们没跑过他们的游戏,也没核对过数字。
按「游戏对代码提了什么要求」来分:
| 类型 | 例子(注明作者) | 对代码的要求 |
|---|---|---|
| 竞速、飞行 | @genevieve__h 用桌面照片生成的赛车游戏(@googledevs 发布)、@aniketjart 的无人机竞速 Heatsink、@chasen_liao 的卡丁车、@exploraX_ 的二战战斗机 | 连续转向输入、镜头跟随、碰撞 |
| 休闲街机 | @ivanainai 的 3D Flappy Bird、@doe_naps 的软糖弹跳、@nex_ify 的 Jelly Jet Takeoff | 点按时机、计分、重开循环 |
| 物理沙盒 | @burhansebin 的过山车搭建器、@procesor_x 的连锁反应机关 | 鼠标拖拽、模拟步进 |
| 棋牌、策略 | @soumyadesign 的 WebGL 麻将、@realbrucemartin 的 roguelike 卡牌、@remoteugur 的文明演化模拟 | 回合状态、规则、多界面切换 |
| 体素、开放世界 | @jerrod_lew 带天气系统的体素世界、@fawnunwrap 的「谁先到下界」 | 世界状态、方块放置 |
| 特殊输入 | @chongdashu 的多人夺旗、@venturetwins 改超任汇编做新关卡、@0xVibeDino 用冥想头环控制的游戏 | 联网、ROM 工具链、蓝牙 |
至少 27 条在标题或正文里提到 3D、Three.js、WebGL 或体素。操作方式就很少有人写了,提到输入的只有寥寥几条(拖拽、点击、手机上滑、头环)。所以从合集里能看出游戏长什么样,看不出输入处理靠不靠谱。
对比视频怎么看
48 条里有 20 条是同一提示词下 Argon 和别的模型并排比。正文点名的对手:Claude Opus 5.5 出现 10 次,Muse Wonder 8 次,GPT-6 Astra 3 次,GPT-6.1 Sol 2 次,SWE-2 Max 1 次。点赞最高的游戏帖就是一条对比:@universalmodhq 的 Argon vs Muse Wonder,2,089 赞。对比帖点赞中位数 28.5,单独展示的是 19;不过两组只有 20 条和 28 条,这个差距说明不了什么(中位数置换检验 p ≈ 0.10)。
这些都只是某个人的一次运行。提示词常常不公开,工具五花八门(Antigravity、Cursor、Devin、JetBrains、AI Studio、Gemini App 都有),也没人在同一套检查下把两个游戏都玩一遍。@xueyu1125 就拿一条对比视频公开的 boss 战提示词在 Devin 里重跑,说效果远达不到视频里的水平,还质疑那条视频的真实性。这事我们判断不了,但它提醒了一点:视频不等于可复现的结果。
成本数字是这批帖子里最有参考价值的,因为差得实在太多:
| 创作者自述(未核实) | 工具 | 自报成本与耗时 |
|---|---|---|
| @wikiwayne:7 个游戏一次成型,「7/7、零修改」 | 未说明 | 1.34 美元,约 6 分钟,13.2 万输出 token |
| @nex_ify:一句话做出 Jelly Jet Takeoff | 未说明 | 1.16 美元,11 分 6 秒 |
| @realbrucemartin:单 HTML 的 roguelike 卡牌 | Devin | 约 1.75 美元(Devin 内 75% 折扣),56 分钟,输入 650 万 / 输出 10.9 万 |
| @universalmodhq:Argon vs Muse Wonder | 未说明 | Argon 29.71 美元,Muse Wonder 3.45 美元 |
| @jetbrains:蛛丝摆荡送货游戏,两个 agent | JetBrains | Argon 54.41 美元、23 分钟;Opus 5.5 56.97 美元、2 小时 20 分 |

Lab 详情页原样展示了 @wikiwayne 的说法,并注明作者没有公开具体提示词(2026-10-14 UTC 截取)。
看 realbrucemartin 那行:输入 650 万 token,输出才 10.9 万。agent 每一轮都把上下文重发一遍,输入费就被反复计算。wikiwayne 的 1.34 美元,大致就是 13.2 万输出 token 按 Google 每百万 10 美元推广价的价钱。游戏各不相同,谈不上严格对比,但同一个模型成本差 40 倍,主要是工具链造成的,不是价目表。我们的测试刻意放在便宜那一头:一次请求、一个文件、没有 agent 循环。
实测:一句提示词,一个 HTML 文件
提示词要的是「Lantern Drift」:玩家操控一盏纸灯笼沿夜晚的河面移动,接住萤火虫加 10 分,躲开掉落的火星,3 条命,难度慢慢上升。选 2D canvas 而不是 3D,是因为这次想考的是游戏循环和输入,不是渲染(渲染那部分见 Three.js 3D 场景实测)。提示词把游戏必须有、演示可以没有的东西都写明了:
- 四个状态:
title、playing、paused、gameover - 方向键或 A/D 移动,空格跳,回车或空格开始,P 暂停,R 重开
requestAnimationFrame加帧间隔(delta time),并且要钳制上限,防止切回标签页时物体瞬移- 用 keydown/keyup 维护按键集合,方向键和空格要
preventDefault,别让页面滚动 - 受伤后 1 秒闪烁无敌,最高分存
localStorage - 一个只读测试钩子
window.__game.getState(),返回状态、分数、生命、最高分、玩家坐标、实体列表和帧计数
测试只读这个钩子,所有操作都走真实键盘事件。
请求发出时间 2026-10-14 18:58:29 UTC:
{
"model": "google/gemini-4-argon",
"max_tokens": 32000,
"messages": [{"role": "user", "content": "Build a complete, playable browser game called \"Lantern Drift\" in ONE self-contained HTML file ... Return only the HTML file in a single ```html code block."}]
}
完整提示词 22 行,约 290 个英文单词。推理强度、temperature、seed 都用默认值,接口是 POST https://api.sandbase.ai/v1/chat/completions(调用指南)。返回(节选):
{"id": "25144395-ad80-48e6-9119-8efe4096de23",
"choices": [{"finish_reason": "stop", "message": {"content": "```html\n<!DOCTYPE html>\n<html lang=\"en\"> ..."}}],
"usage": {"prompt_tokens": 438, "completion_tokens": 8762,
"completion_tokens_details": {"reasoning_tokens": 0}, "total_tokens": 9200}}
63.0 秒返回,一个 848 行、23,077 字符的 HTML 文件,代码块外一个字都没多说。GET /v1/tasks/<id>/cost 实扣 0.176992 美元,正好等于 438 × 4/M + 8,762 × 20/M。usage 里推理 token 为 0;模型是不是推理了但没上报,从外面看不出来。
怎么测:19 项检查,全用真实按键
测试脚本用 Node 加 playwright-core,驱动本机无头 Chrome,视口 1280×800,记录所有 console 消息和页面报错,然后按这个流程走:
load file ──> title? ──Enter──> playing ──> frames advancing?
│ ├─ hold Right / A ──> x changes, stays inside canvas
│ ├─ Space held 100 ms, then 10 instant taps ──> hops?
│ ├─ freeze main thread 2 s with Right held ──> no teleport?
│ ├─ P ──> frames and entities frozen, input ignored ──> P resumes
│ └─ play on until lives = 0 ──> gameover, best saved
└─ R ──> score 0, lives 3 ──> reload page ──> best still there ──> zero console errors?
有两项是截图永远查不出来的。「秒按」把 keydown 和 keyup 连着发,两者都落在两帧之间,相当于掉帧时的一次快速点按。「卡顿」则在按住右键的同时把主线程堵 2 秒:如果帧间隔没钳制,灯笼会按每秒 320 像素一下窜出约 640 像素。
秒按检查的核心逻辑(从脚本简化):
// Read-only probe: count how many of 10 instant Space taps make the lantern leave the water.
async function countHops(page, taps = 10) {
const y = () => page.evaluate(() => window.__game.getState().player.y);
let hits = 0;
for (let i = 0; i < taps; i++) {
const y0 = await y();
await page.keyboard.down('Space');
await page.keyboard.up('Space'); // released before the next frame
let minY = y0;
for (let k = 0; k < 8; k++) { // sample ~240 ms of flight
await new Promise((r) => setTimeout(r, 30));
minY = Math.min(minY, await y());
}
if (minY < y0 - 10) hits++;
await new Promise((r) => setTimeout(r, 1100)); // wait to land
}
return hits;
}

修复版在按下空格 230 毫秒后的画面:跳跃、水花和实时 HUD 全部来自 Argon 生成、我们没动过的文件(2026-10-14,2 倍截图)。
第一版哪里翻车了
18 项通过。循环稳定 60 fps,灯笼在 800 像素宽的画布上停在 x=20 和 780,暂停时帧计数和所有实体都冻住,2 秒卡顿后灯笼只挪了 21 像素而不是 640。生命 3、2、1、0 依次减少,最高分写进 localStorage,刷新后还在。没有任何报错或警告。
失败的那项:按住空格 100 毫秒每次都能跳,秒按 10 次一次没跳。换几个按住时长一试,原因就清楚了:0 毫秒 10 次跳 1 次,5 毫秒跳 3 次,30 毫秒和 100 毫秒都是 10 次全跳。代码只在 update() 里查 keys.has('Space'),按下又松开都发生在两帧之间的话,update 根本看不到。
正常人按键一般超过 16 毫秒,稳定 60 fps 时很少碰上。可一旦掉到 30 fps,一帧就是 33 毫秒,快速点按开始漏,而「偶尔不听使唤的跳跃」正是玩家最记仇的那种 bug。
写修复提示词时,我们顺手加了两条之前没测的约束。后来补测发现第一版两条都不满足:在标题页按空格开始游戏,第一帧还会顺带跳一下;按住空格不放会连续自动跳(2.4 秒跳了 3 次)。
一次修复
修复提示词是一份 bug 报告,不是补丁:哪些通过了、怎么复现(秒按 10 次 0 跳)、原因(轮询按键集合)、期望行为。游戏进行中每次空格 keydown,只要灯笼在水面上就跳;按住不自动连跳;标题页的空格只负责开始;「其他一律别动」。发送内容是原提示词、第一版文件(作为 assistant 回复)、再加这份报告。
第二次调用在 2026-10-14 19:05:11 UTC,耗时 57.3 秒,输入 9,429、输出 8,805 token,扣费 0.213816 美元。Argon 按要求整份重写,但和第一版 diff 一下,只改了约 10 行:加一个 jumpQueued 标记,在新的 keydown(忽略 e.repeat)时置位,在 update() 里消费,开局时清零。其余一行没碰。

测试脚本输出整理成的表:两版只差秒按这一项;耗时和费用来自两次调用及其 /v1/tasks/<id>/cost 记录。
第二版 19 项全过,秒按 10 次跳 10 次。补测也确认那两个小毛病没了:标题页按空格只开始不起跳,按住空格 2.4 秒不再连跳。

这个结束画面是真玩出来的,不是走捷径:测试脚本左右来回移动时生命耗尽,之后按 R,分数归 0、生命回到 3(2026-10-14)。
花了多少钱
| 调用 | 耗时 | 输入 / 输出 token | SandBase 实扣 | 按 Google 2 / 10 美元推广价 |
|---|---|---|---|---|
| v1,一句提示词 | 63.0 秒 | 438 / 8,762 | 0.176992 美元 | 0.0885 美元 |
| v2,修复提示词 | 57.3 秒 | 9,429 / 8,805 | 0.213816 美元 | 0.1069 美元 |
| 合计 | 120.3 秒 | 9,867 / 17,567 | 0.390808 美元 | 0.1954 美元 |
SandBase 上 Argon 的标价是每百万 token 输入 4 美元、输出 20 美元,也就是 Google 推广期(截至 2026 年 11 月 30 日)结束后的标准价,目前是 Google 直连推广价的两倍。第一版账单约 99% 是输出费。修复那次更贵,因为要把第一版整份文件当输入重发。缓存和 12 月 1 日调价的影响,见 Gemini 4 Argon 价格指南。

SandBase 的 Gemini 4 Argon 模型页:4 / 20 美元的单价就是我们账单的依据;单次最大输出 65.5K,远高于这个游戏用掉的 8.8K(2026-10-14 UTC 截取)。
这个体量下,每多修一轮大约再花 0.21 美元,因为模型每次都整份重写。游戏大 5 倍,单次输出费也大致翻 5 倍;而且 SandBase 上单次回复最多 65.5K 输出 token。让模型只返回 diff 应该能省输出费,这一点我们没测。
做可玩游戏的提示词套路
这次之所以好测,靠的是提示词写法:
- 把状态列出来。 写明
title、playing、paused、gameover,拿到的就是状态机,而不是只知道「运行中」的循环。 - 逐个状态写清每个键的作用。 输入 bug 都藏在缝里,比如空格在标题页是「开始」、进了游戏是「跳」。
- 要求边沿触发。 写上「每次 keydown 恰好跳一次,即使在下一帧之前就松开」。我们没写,于是正好撞上这个 bug。
- 要求帧间隔钳制和
preventDefault。 Argon 第一版就做到了;缺了它们,切标签瞬移和页面乱滚通常是最先被吐槽的。 - 要一个只读测试钩子。 一个 getter,就能把「视频里看着没问题」变成「出问题会大声报错」的检查。
- 修复时写 bug 报告。 复现步骤、实际结果、期望结果、「其他别动」。这次换来的是 10 行 diff,而不是推倒重来。
想看从创作者公开提示词里总结的完整写法,见 Gemini 4 Argon 提示词指南。如果关心关卡推进和碰撞这类更难的逻辑,之前的 GPT-6 Astra 与 Claude Fable 5.1 3D 游戏实测 用的也是测试钩子思路。
常见问题
Gemini 4 Argon 一句提示词能做出可玩的游戏吗?
我们这次可以,但有个前提:第一版 19 项过 18 项,漏了快速点按空格;一次修复后 19 项全过。一个提示词、一种玩法、一次运行,只能当例子,不能当成功率。
用 Gemini 4 Argon 做一个游戏要花多少钱?
我们这个 23 KB 的 canvas 游戏在 SandBase 上首次 0.177 美元、修复 0.214 美元,合计 0.39 美元。创作者自报 1.16 到 54.41 美元,多数是在会反复重发上下文的 agent 工具里跑的,那是他们的数字。
第一版为什么会漏掉跳跃?
它每帧检查空格是否「正被按着」,按下和松开都发生在两帧之间的点按就永远看不到。修复办法是把每次 keydown 记成一次性事件,留到下一次 update 消费。
对比视频能说明哪个模型做游戏更强吗?
不能。每条都是某个创作者的一次运行,往往没有提示词,工具也不同,没人在同一套检查下把两个游戏都玩过。
怎么自动测试 AI 生成的游戏?
让模型提供只读的状态 getter,用 Playwright 在无头 Chrome 里打开,发真实按键,再对状态做断言。一定要加「秒按」和「主线程卡顿」两项,截图查不出的时序 bug 靠它们抓。
测试边界
一个提示词、一种 2D canvas 玩法、每版各跑一次、模型参数全默认,时间 2026-10-14 UTC。只在 Mac 上的无头 Chrome、60 fps 下测过:没测 Firefox、Safari、触屏、手柄、其他刷新率、音频和无障碍。这里的「可玩」只表示指定的操作和状态都正常,不代表好玩。创作者帖子均为自述,我们没有复现。Argon 在独立榜单上的位置,见 Gemini 4 Argon 跑分排名;各类别最受欢迎的作品,见 Gemini 4 Argon 作品精选。