
本文作者:潮不报汐,TRAE 开发者用户
项目概述
作为零代码、零 Unity 使用经验的开发者,我将此次 AI 开发游戏作为初次尝试,并未设定过于复杂的目标,主要目的是验证整个开发流程的可行性。因此,本次项目聚焦于逻辑与画面均较为简洁的作品。借助 TRAE 的 Builder 模式,我成功开发出卡牌策略对战游戏。
开发初期,由于首次接触 TRAE 与 Unity,对工具操作缺乏熟悉度,曾遭遇两次推进失败。后经调整为“先搭建核心功能、再逐步叠加细节”的开发策略,成功突破技术壁垒。
游戏核心的“五行相生相克”规则、组合卡效果及 UI 交互功能,均通过 TRAE 实现。在 TapTap 上架过程中,从 SDK 接入、隐私合规调整到 Android 64 位架构配置,全程由 TRAE 完成技术落地,无需手动编写代码。
测试阶段成果:相较于以往使用传统成熟框架开发的游戏常出现的设备兼容性问题,本次开发的游戏几乎未收到玩家反馈无法进入游戏的情况,也未出现游戏完全无法运行的 BUG,基本验证了 TRAE 对零基础开发者实现游戏开发与上架的高效助力。
最终效果演示
本游戏目前处于封闭测试阶段,暂无法通过链接直接访问。后续新增内容和优化完成后,将开放正式版本。
- 3.0x
- 2.5x
- 2.0x
- 1.5x
- 1.25x
- 1.0x
- 0.75x
- 0.5x
开发挑战与策略调整
首次开发的“大跃进”陷阱
第一次使用 TRAE 开发时,我完全陷入了“贪多求快”的误区——将“选卡逻辑 + 对战流程 + 组合效果”所有功能需求一股脑交给了 Builder 模式。结果 TRAE 生成的代码如同一团乱麻:选卡后本应变灰的相克卡牌依然可点击,对战时血条数值停滞在初始值不动。
但这并非 TRAE 的问题,而是我过于贪心。需求过多时,AI 会强行堆砌代码但忽略功能间的逻辑依赖。最令人崩溃的是,当我试图修改某一功能时,往往牵一发而动全身,比如调整选卡判定条件后,整个对战流程直接卡死。
策略调整:拆解核心功能的“三步验证法”
吸取教训后,我将开发拆解为“核心功能闭环→交互逻辑→数值系统”三个阶段,每步仅给 TRAE 单一目标:
起牌功能:明确要求“从牌库随机生成 8 张手牌并显示在 UI 页面下方”。这次 TRAE 生成的代码非常清晰,还智能地自动添加了日志提示生成成功;
选卡交互:实现“点击卡牌时向上移动,一次最多出两张牌,再次点击取消”。初期出现了层级错误,但在我将问题描述清楚后,TRAE 顺利解决了该问题;
出牌逻辑:我方和对方同时出牌,出的牌在屏幕中间显示并保持,直到下一轮出牌。出完牌后要立即判断本轮出牌结果。

TRAE 的响应变化与效率提升
调整策略后最显著的变化是 TRAE 生成代码的模块化程度大幅提高。首次开发时所有功能挤压在一个 GameManager 脚本中,而分步开发后自动拆分成 CardSystem、BattleSystem 等独立模块。
落地细节实现
战斗反馈直观化实现:文字 + 音效双反馈
为了让玩家清晰感知五行相克的战斗反馈,我在给 TRAE 的需求中提出“双感官反馈”设计:造成伤害时,不仅要计算伤害数值,还要同步显示动态效果。
具体描述时会写:“当两张卡牌检测到相克关系并成功出牌后,受伤的一方要在指定位置显示减去的血量”;造成伤害后加上音效。
实际测试时发现减血文字在深色背景下不够醒目,只需在 Builder 中补充“将伤害文字改为在 inspector 可配置”,TRAE 会直接定位到对应修改位置,然后指引如何在 Unity 界面修改设置。这种“描述效果→自动实现”的流程,让零代码的我也能制作出专业级反馈效果。

组合卡效果:清单式描述让 AI 精准落地
组合卡效果的实现得益于 TRAE 对结构化需求的高效解析。我整理了一份“组合规则清单”提供给 TRAE,然后生成对应的测试用例。测试完毕后,发现问题就将对应的问题反馈给 TRAE,让其重新处理:

整体机制相对简单,主要包括伤害、加血和禁手。TRAE 会生成一个 combination 库,将每种组合对应的效果类型、数值、显示样式都存储其中,战斗时通过 ProcessCombinationEffect() 方法实时匹配:

UI 交互调整:TRAE 充当“操作向导”
虽然 TRAE 能生成基础 UI,但实际效果总会存在细节偏差,这时“询问 TRAE 如何修改”成了我的独门技巧。
比如主界面的“开始游戏”按钮生成后位置偏左,我会在 Builder 中询问:“主界面的 StartButton 位置不在屏幕中央,应该在代码中修改还是在 Unity Inspector 中调整?”TRAE 会明确回复:“建议在 Canvas 的 Inspector 面板中,将 Button 的 Rect Transform 组件→Anchor Presets 设置为‘居中居中’,Pivot 保持 (0.5,0.5)”。
SDK 接入与上架流程
TapTap SDK 接入
接入 TapTap SDK 时,我明确了需求描述:“仅需实现 TapTap 登录功能,支持玩家通过 TapTap 账号授权登录,无需其他扩展功能”。这种精准定位让 TRAE 避免了功能冗余,专注于核心登录模块的实现。
TRAE 生成的代码严格遵循了 TapSDK 的集成规范,自动导入了必要的登录依赖包(TapTap_Login.unitypackage),并在初始化脚本中配置了关键参数:new TapConfig.Builder().ClientID("我的游戏 ClientID").RegionType(RegionType.CN)。整个过程无需手动修改 manifest.json 文件或处理依赖冲突,对于零代码基础的我而言,相当于跳过了“导入 SDK 包→配置权限→编写初始化代码”的复杂流程。
登录测试时,系统能正常唤起 TapTap 客户端授权,未安装客户端时会自动切换到 WebView 登录模式,完全符合 TapSDK 的设计逻辑。
隐私合规调整
隐私弹框的实现经历了一次迭代。最初我让 TRAE “生成启动时的隐私协议弹框”,它默认使用 bootstrap 框架实现了一个美观的弹框,但提交审核时被 TapTap 驳回——原因是弹框在 Unity 引擎启动后才显示,不符合“启动前弹窗”的规范。
收到 TapTap 的详细教程后,我将文档内容直接复制给 TRAE:“需在 Unity 初始化前显示隐私弹框,用户同意后才能初始化 SDK,参考示例代码:if(用户同意隐私协议){ TapTapSdk.init() }”。不到 5 分钟,TRAE 就生成了新的实现方案:通过修改 AndroidManifest.xml 将弹框 Activity 设置为启动页,同时生成了完整的弹框交互代码(包含同意/拒绝按钮逻辑、协议链接跳转),完全符合 TapTap 的合规要求。
最终的弹框不仅通过了审核,还实现了细节优化:协议文字支持点击跳转、拒绝按钮会退出游戏、同意后会保存用户选择状态。这些都是 TRAE 根据移动应用隐私规范自动添加的功能。
64 位架构配置:AI 充当导师,手动操作也轻松
64 位架构配置是上架前的最后一道技术关卡。虽然 TRAE 无法直接修改 Unity 的编译设置,但它提供了堪称“保姆级”的操作指南:“在 Unity 顶部菜单选择 Edit→Project Settings→Player,展开 Other Settings 面板,在 Configuration 下的 Scripting Backend 选择 IL2CPP,在 Target Architectures 中勾选 ARM64”。
配置完成后,构建的 APK 顺利通过了 TapTap 的 64 位兼容性检测,这对于从未接触过 Unity 编译设置的我而言,堪称“零门槛通关”。
总结与建议
初次开发仍然出现了诸多问题,比如新增一个功能导致之前的功能失效。后续开发中我将继续探索如何更好地运用 TRAE 规避此类问题。目前使用下来,我的建议如下:
适可而止,切勿贪多
不要一股脑输出大量需求,应明确核心需求再进行拓展。
及时保存
保存满意的版本,以防无法回溯。后续我计划尝试使用 git 进行版本同步,希望以后还有机会分享相关经验。
大胆推测、小心求证
可能会遇到某个问题始终无法解决的情况,这时可以自行推测问题所在,然后让 TRAE 在推测可能有问题的地方打印日志,确定问题位置。这种方式比出现问题直接将问题交给 TRAE 的效率要高得多。
奖品激励+官方认证!TRAE 最佳实践征文大赛来了:https://mp.weixin.qq.com/s/mdsfX8XZrg-xTQkYl4mm0g?scene=25#wechat_redirect

评论