一个可游玩的 3D 游戏,仅由单个提示词构建
游戏开发是技术要求最高的创意领域之一——它需要物理、渲染、AI、状态管理和 UI 在同一个代码库中协同工作。这个工作流展示了:只要有足够详细的提示词和 Gemini 3.1 Pro Preview,Eigent 就能进行方案设计、编写并交付一个完全可玩的多文件浏览器游戏,且无需手写任何代码。
配置 Gemini 3.1 Pro Preview
这个工作流运行在 Gemini 3.1 Pro Preview 上,这是录制时 Google 最强大的模型。要在 Eigent 中配置它,请前往 设置 → 模型 → 自定义模型:
- API Host:
https://generativelanguage.googleapis.com/v1beta/openai/ - Model:
gemini-3.1-pro-preview
Eigent 支持同时配置多个自定义模型——你可以一次性配置 Gemini、OpenAI、Anthropic、Qwen、Deepseek、MiniMax 等多个模型,并将其中一个设为当前默认模型。
游戏设计提示词
详细的提示词会带来详细的结果。这次提示词明确规定了机制、视觉风格、计分方式、特殊事件,甚至还指定了一个特定的收集物序列:
创建一款现代 3D 横向卷轴平台游戏,灵感来自 Mario,并结合 Snow Bros 机制。玩家可以左右移动和跳跃,发射雪球投射物,逐步将怪物冻结成雪球。一旦完全冻结,就会出现一个“Kick”按钮,允许雪球在关卡中滚动和弹跳,击败敌人并触发连锁反应。如果使用同一个雪球消灭所有怪物,则掉落 10,000 分奖励,或者偶尔会出现一个发光蛋糕。收集蛋糕后会生成四个蓝色雪怪;击败它们会获得字母 S、N、O 和 W,集齐四个字母可获得额外生命。包含计分系统、生命显示、动态难度和重开功能。背景应类似 Mario 风格世界,拥有丰富、分层且视觉复杂的 3D 环境,包括多层地形、装饰元素和视差深度效果,整体视觉应平滑、现代且具有沉浸感。
提示词中提到的每一项机制,都已经在输出中实现。
Eigent 规划并执行构建
Eigent 为 Developer Agent 创建了一个任务:
使用 Three.js 开发一个完全可玩的 HTML5/JavaScript 网页游戏,结合现代 3D 横向卷轴平台视觉效果与 Snow Bros 游戏机制——包括发射雪球、冻结敌人并踢飞、连锁反应奖励、计分、生命、动态难度和重开功能。
Developer Agent 使用 Terminal & Shell 工具,并结合 Web Deployment 和 Screen Capture 能力,直接将所有游戏文件写入工作区文件夹。
三个文件,一个完整游戏
输出包含三个相互依赖的文件:
index.html— 入口文件和游戏容器game.js— 所有游戏逻辑:Three.js 渲染管线、物理、敌人 AI 状态机、投射物系统、连锁反应检测、奖励掉落逻辑、计分、生命追踪以及 SNOW 字母收集序列style.css— 画布尺寸、UI 覆盖层、HUD 样式
Three.js 渲染器构建了一个带有视差深度的分层 3D 环境——背景是雪山,中景是平台,前景是地形,全部结合程序化 canvas 元素与流畅动画实现。
最终游戏是什么样子
在任何现代浏览器中打开 index.html,你会看到一个完全可玩的平台游戏:
- HUD: 得分计数器、波次计数器、生命显示,以及 S-N-O-W 字母进度条
- 玩家控制: 左右移动、跳跃、发射雪球投射物
- 敌人机制: 渐进式冻结状态、踢飞滚动、雪球击中多个敌人时触发连锁反应
- 奖励系统: 使用同一个雪球全清时掉落 10,000 分奖励
- 视觉风格: 3D 分层雪山背景、Mario 风格关卡设计、平滑视差滚动
首次加载时的提示信息:"用 Z 冻结敌人。踢飞完全冻结的雪球!"
使用的总代币数:约 147,000——对于这样一个多文件游戏来说,这个规模相当精简。
这对 AI 辅助游戏开发说明了什么
Snow Bros 机制——冻结、踢飞、连锁——要求代理实现彼此依赖的游戏状态:敌人可以是未冻结、部分冻结或完全冻结,并且只有在特定状态下才会转换为可滚动的雪球。连锁反应逻辑则要求检测滚动雪球与其他敌人之间的碰撞。这些都不是简单的实现。
Gemini 3.1 Pro 能够将整个游戏规格保持在上下文中,并生成跨多个文件、彼此连贯的 JavaScript,这正是其可行的关键。最终结果不是模板,而是对所描述精确机制的定制实现。
接下来可以尝试什么
添加第二个可玩角色,拥有不同的投射物机制,并支持本地双人模式。
生成一个关卡编辑器,让你可以在网格上放置平台和敌人,并将布局导出为 JSON。
添加一个保存在 localStorage 中的高分榜。
为同一款游戏构建一个带触控操作的移动版本。
提升效果的小技巧
-
精确描述机制。 之所以 freeze → kick → chain reaction 机制成功实现,是因为提示词中明确描述了每一个状态转换。像“有趣的敌人互动”这类模糊表述只会产生更简单的结果。
-
明确指定技术选型。 指定使用 “Three.js” 做 3D 渲染,以及使用 “pure HTML/CSS/JS, no libraries” 作为结构,可以给 Eigent 清晰的实现约束。如果不这样做,代理在不同任务中可能会选择不同的、甚至彼此不兼容的方法。
-
先在浏览器中检查,再继续迭代。 一旦 Eigent 交付文件,立刻打开
index.html并测试核心机制循环。在这个阶段通过有针对性的后续提示词进行修正,比一开始就把所有细节都写死更高效。



