我用 Trae 做了一个无限 Rogue 小游戏:一次从想法到原型的完整体验记录
我平时做一些小实验项目,大部分都是凭兴趣来的。前阵子我突然想做一款 无尽模式的 Rogue 游戏,像那种越打越爽、越升越多花样的玩法,但又懒得自己从零去搭工程。刚好看到有人在用 Trae 这种 AI IDE,我就想拿这个项目试试它到底能帮我省多少力。
这篇文章就是把整个过程从头到尾记录下来:从我第一句话给 Trae,到游戏逐渐成型,中间加武器、加怪物、补联动、改 UI… 一路推进到能玩。
没有评测,不做结论,只是把过程写出来。
一、我只给了 Trae 一句话:先把游戏做出来
我给它的第一段提示大概是这样:
“做一个无限 Rogue。角色在地图上自由移动,地上会随机生成道具(回血、清屏、代币、吸全图经验)。地图边缘会不断刷敌人,往玩家中心逼近,敌人类型要丰富,有快有慢,有近战也有远程。每隔一段时间出一个 Boss,有冲刺和范围伤害。怪被打死掉经验水晶,玩家升级后选武器、升级武器、加属性或学法术。武器和法术之间要有联动效果。随着等级和时间推进,敌人和 boss 越来越强。”
内容挺长,但逻辑不算复杂,就是把我想要的玩法一股脑讲出来。
我本来以为 Trae 会只给我一点点基础结构,结果它把模块拆得比我预期还细:
- 地图刷新
- 敌人行为
- 道具系统
- 升级系统
- 武器体系
- Boss 模块
- 数值配置
- 事件分发
文件结构也搭得挺完整。
基础跑起来之后,我基本就围绕“填空”开始推进项目。
二、先补怪物:让世界变得有点危险感
最早的敌人只有“会往玩家方向走的红点”这种原型,我就让 Trae 把敌人做得更像样一些:
“敌人要多样化,有速度差异、有远程、有贴脸、有坦克,有自己的行为模式。”
它做的事情很工程化:
- 抽一个基础敌人类
- 给不同类型派生行为
- 加了远程射击、快速突进、慢速重击这种预设
- 把靠近阈值、攻击间隔、移动速度拆成参数
我还让它处理一个小细节:
“靠近玩家时不要直接撞脸,要有一点延迟。”
这个效果其实很重要,因为怪物的节奏会变得更可控,而不是乱七八糟堆一堆上来。
怪多的时候,地图节奏终于有了“压力感”,不再像第一版那么空洞。
三、给角色加武器:从基础攻击到差异化玩法
敌人有了,我开始弄武器。
我先让它给我做基础武器:
- 近战范围攻击
- 远程射弹
- 范围爆炸
- 旋转型武器
- 自动寻敌
每种武器都能升级,比如:
- 攻击范围变大
- 弹射次数增加
- 冷却变短
- 伤害强化
Trae 在这里做了一个我意料之外的点:
所有武器升级逻辑都被标准化了。
就算我后面再加武器,结构也不会乱。
中间有一些不平衡的武器(比如伤害太低的那种),我只说:“调高一点”。它把整个数值链都改了一遍,总体上算可用。
四、加入“武学”:技能、被动、特殊机制
为了让玩法不那么单调,我又加了武学系统。
提示很简单:
“加武学系统,有主动、有被动,也有增强类,把效果尽量拆开。”
它把现有升级系统扩展成一个 skill tree:
- 主动技:冷却触发,例如冲击波、短暂位移
- 被动技:如移速提升、击杀回血
- 增强技:提升武器效果、强化元素属性等
我没写具体技能,它自动给了一些模板,我觉得够用就留了。
五、武器 × 武学:做一点联动
这是我最在意的部分。
我告诉它:
“武器与武学之间要互相触发,例如旋转武器触发火焰灼烧,远程武器触发冰冻减速。”
一开始生成的代码太粘连,我让它重构:
“把所有联动从武器内部抽出来。”
结果它真的做了一个独立的 事件系统,把命中、暴击、击杀、范围伤害这些事件全部集中到一个 dispatcher 里。
这样加新技能就不会破坏原有结构,也不容易缠在一起。这个部分我觉得是整个项目里最省心的部分。
六、Boss 系统:有冲刺也有范围伤害
Boss 出现的逻辑我也丢给它:
- 按时间生成
- 单独生命条
- 冲刺攻击(有预警)
- 范围爆炸(读条留躲避空间)
- 死亡掉大量经验
它把 Boss 行为写成一个独立 AI 模块,而不是堆在敌人逻辑里,这点做得挺干净。
视觉上我后续还给 Boss 多加了几种提示效果(例如闪烁、溶解边缘),UI 和渲染风格也分几次让 Trae 调整。
七、UI 这部分改了很多次
UI 是我改得最多次的:
- 经验条位置不对 → 下移
- 血条太死板 → 加动画
- 升级界面太粗糙 → 换成卡片选择
- 技能图标 → 统一风格
- 波数面板、Boss 倒计时 → 加到右上角
- 技能触发提示 → 加到左下角
Trae 每次做的版本都大概 70%-80% 可用,我再细调剩下的部分。
原型不需要太漂亮,但至少要看着不难受。
八、项目整体跑起来了
到这一步,游戏已经可以正常玩了:
- 地图一直推进
- 敌人越来越强
- Boss 按节奏出现
- 武器、技能、武学互相联动
- 数值曲线平滑
- 升级感明显
- UI 不会挡视线
作为一个兴趣项目,我对这个结果是满意的。
它还算不上是一款真正完整的游戏,但至少是一个 清晰可扩展的玩法原型,代码结构也没有因为随意加内容而变得混乱。
九、这次体验给我的真实感受
整个过程最明显的变化是:
我不再从“写代码”开始做东西,而是从“描述想要的机制”开始。
我基本做的就是:
- 想到一个功能
- 用一句话告诉 Trae
- 看它补骨架、补参数、补配置
- 我再修改细节、调逻辑
- 然后继续加下一个
Trae 的作用不是“一个人替我写游戏”,而是:
- 自动规划工程结构
- 自动把重复性的部分先搭出来
- 自动补充松散机制之间的接口
- 自动维护文件依赖关系
- 自动把我忘记的地方串起来
对一个小型项目来说,这比我一个人从零写要轻松不少。
十、下一步我要做的
现在这个 Rogue 原型已经能玩,我后面大概会继续加:
- 地图变体(森林、废墟、雪地)
- 更丰富的武学组合
- Boss 第二阶段
- 更完整的音效
- 更接近成品的 UI
- 一些简单的特效
- 实现敌人的多样性
再之后,会不会继续扩展甚至做成一款完整游戏,我现在还没决定。
但至少,这次实验让我意识到:
把“游戏机制”直接描述出来,然后让系统自动生成我需要的工程基础,是一件挺有意思的事。