我用 Trae SOLO 做了一个无限 Rogue 小游戏:一次从想法到原型的完整体验记录

3,144 阅读7分钟

20251201033118-iClYeZ.png

我用 Trae 做了一个无限 Rogue 小游戏:一次从想法到原型的完整体验记录

我平时做一些小实验项目,大部分都是凭兴趣来的。前阵子我突然想做一款 无尽模式的 Rogue 游戏,像那种越打越爽、越升越多花样的玩法,但又懒得自己从零去搭工程。刚好看到有人在用 Trae 这种 AI IDE,我就想拿这个项目试试它到底能帮我省多少力。

这篇文章就是把整个过程从头到尾记录下来:从我第一句话给 Trae,到游戏逐渐成型,中间加武器、加怪物、补联动、改 UI… 一路推进到能玩。

没有评测,不做结论,只是把过程写出来。

image.png


一、我只给了 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 不会挡视线

作为一个兴趣项目,我对这个结果是满意的。

它还算不上是一款真正完整的游戏,但至少是一个 清晰可扩展的玩法原型,代码结构也没有因为随意加内容而变得混乱。


九、这次体验给我的真实感受

整个过程最明显的变化是:
我不再从“写代码”开始做东西,而是从“描述想要的机制”开始。

我基本做的就是:

  1. 想到一个功能
  2. 用一句话告诉 Trae
  3. 看它补骨架、补参数、补配置
  4. 我再修改细节、调逻辑
  5. 然后继续加下一个

Trae 的作用不是“一个人替我写游戏”,而是:

  • 自动规划工程结构
  • 自动把重复性的部分先搭出来
  • 自动补充松散机制之间的接口
  • 自动维护文件依赖关系
  • 自动把我忘记的地方串起来

对一个小型项目来说,这比我一个人从零写要轻松不少。


十、下一步我要做的

现在这个 Rogue 原型已经能玩,我后面大概会继续加:

  • 地图变体(森林、废墟、雪地)
  • 更丰富的武学组合
  • Boss 第二阶段
  • 更完整的音效
  • 更接近成品的 UI
  • 一些简单的特效
  • 实现敌人的多样性

再之后,会不会继续扩展甚至做成一款完整游戏,我现在还没决定。

但至少,这次实验让我意识到:
把“游戏机制”直接描述出来,然后让系统自动生成我需要的工程基础,是一件挺有意思的事。

源码:github.com/zuoanCo/rog…