【Code with SOLO】非技术背景用 SOLO + Godot 从零打造一款融合农场/战斗/探索的 RPG 游戏「裂隙纪元」

一、摘要

作为一名非技术岗位的从业者,我借助 TRAE SOLO 的 AI 编程能力,在 Godot 4 引擎中从零打造了一款名为「裂隙纪元」的 2D RPG 游戏。项目涵盖 63 个 GDScript 脚本、30 个游戏场景、16 个系统模块,包含完整的战斗系统、任务链、NPC 交互、农场模拟、商店交易等核心玩法,并使用 Blender 制作了 5 个 3D 场景模型。整个过程让我这个非技术人员也能完成一款架构完整、系统丰富的游戏作品。


二、背景

我是一名非技术岗位从业者,对游戏开发充满热情但缺乏编程基础。一直想做出一款属于自己的 RPG 游戏,但面对复杂的代码逻辑、引擎架构、资源管线,始终望而却步。TRAE SOLO 的出现让我看到了可能性——通过 AI 辅助编程,我可以将脑海中的游戏设计转化为实际可运行的项目。

「裂隙纪元」的设计灵感来源于《塞尔达传说:旷野之息》的开放世界探索和《星露谷物语》的农场模拟玩法,我希望打造一款融合多种玩法的奇幻 RPG。


三、实践过程

3.1 任务拆解思路

我没有一上来就让 SOLO 写整个游戏,而是按照自顶向下、逐层推进的方式拆解任务:

  1. 第一阶段:项目骨架搭建 — 创建 Godot 项目、设计架构体系、建立 Autoload 单例框架
  2. 第二阶段:核心系统开发 — 战斗系统、任务系统、NPC 系统、对话系统、背包系统、商店系统
  3. 第三阶段:场景与剧情 — 设计世界观、编写七章剧情、制作各章节场景
  4. 第四阶段:扩展玩法 — 农场模拟系统、时间天气系统
  5. 第五阶段:3D 资源管线 — 使用 Blender + SOLO 制作 3D 场景模型并导入 Godot

3.2 SOLO 的关键能力运用

:wrench: 代码生成与架构设计

SOLO 帮我设计了完整的信号驱动 + 事件总线 + 状态机架构:

  • 16 个 Autoload 单例:GameManager、EventBus、SaveManager、DialogueSystem、InventoryManager 等,形成清晰的管理层
  • EventBus 事件总线:定义了 20+ 种游戏事件类型,实现模块间完全解耦
  • 状态机模式:GameManager(TITLE/INTRO/PLAYING/PAUSED 等)、BattleScreen(PLAYER_TURN/ENEMY_TURN/VICTORY 等)均采用枚举+match 的状态机实现

:crossed_swords: 战斗系统开发

通过 SOLO 生成了完整的回合制战斗系统:

  • 四种操作:攻击(1s CD)、防御(减伤 50%)、魔法(消耗 MP)、逃跑
  • 暴击系统(10% 概率,1.5 倍伤害)和连击系统
  • 5 种敌人类型随章节等级缩放,5 个 Boss 战(HP 从 120 到 500)
  • Tween 动画实现伤害弹出、HP 平滑插值、屏幕震动等视觉效果

:clipboard: 任务与对话系统

  • 16 个任务(9 主线 + 7 支线),从"异乡人的觉醒"到"穿越者的真相"完整任务链
  • 对话系统支持打字机效果、分支选择、对话历史记录
  • NPC 系统支持 6 种行为模式(静止/漫游/巡逻/跟随/商人/任务发布者)和日程调度

:sheaf_of_rice: 农场模拟系统

  • 完整的耕地→播种→浇水→收获流程
  • 3 种作物(胡萝卜/花椰菜/土豆),4 级品质系统
  • 经济系统:不同品质不同售价,与商店系统联动

:artist_palette: 3D 资源制作

利用 SOLO 的 Blender 技能,通过 Python 脚本程序化生成 3D 场景:

  • 潮汐港、日落城(蒸汽朋克风格)等 5 个 Blender 场景
  • 导出为 GLB 格式并集成到 Godot 的 Forward Plus 渲染管线
  • 自定义着色器(魔法传送门、蒸汽朋克金属、水面效果)

3.3 关键 Prompt 示例

"帮我设计一个基于 Godot 4 的 RPG 游戏架构,使用 Autoload 单例模式,
需要包含 GameManager、EventBus、SaveManager 等核心模块,
所有模块间通过信号解耦通信"
"创建一个回合制战斗系统,支持攻击/防御/魔法/逃跑四种操作,
包含暴击机制、连击系统、Tween 动画效果,
敌人随章节等级缩放"
"用 Blender Python API 创建一个蒸汽朋克风格的城市场景,
包含建筑物、管道、齿轮等元素,导出为 GLB 格式"

3.4 踩过的坑

  1. 场景切换数据丢失 — 早期没有使用 Autoload 单例,切换场景时游戏状态全部重置。后来 SOLO 帮我重构为 Autoload 架构,数据持久化问题彻底解决。
  2. 信号连接循环引用 — 模块间信号互相连接导致死循环,SOLO 建议引入 EventBus 中间层,所有模块只与 EventBus 通信,解耦后问题消失。
  3. 3D 模型导入缩放问题 — Blender 导出的 GLB 模型在 Godot 中比例不对,通过调整导入设置和节点缩放解决。
  4. 存档系统兼容性 — JSON 序列化时部分 Godot 内置类型(如 Vector2)无法直接序列化,SOLO 帮我写了类型转换工具函数。

四、成果展示

:bar_chart: 项目数据

指标 数据
GDScript 脚本 63 个文件,约 18,000+ 行代码
游戏场景 30 个 .tscn 场景文件
系统模块 16 个 Autoload 单例
游戏任务 16 个(9 主线 + 7 支线)
Boss 战 5 个(HP 120~500)
世界地点 8 个
Blender 3D 模型 5 个场景
自定义着色器 3 个(传送门/金属/水面)

:video_game: 游戏系统一览

  • 七大核心系统:战斗、任务、NPC、对话、背包、商店、农场
  • 七章剧情:从序章"穿越"到终章"源能之厅"的完整故事线
  • 四大势力阵营:神权共和国、魔导工业帝国、自由工会、烂泥地联盟
  • 时间天气系统:四季循环 + 五种天气
  • 程序化视觉生成:无需外部图片资源,代码动态生成角色和场景

:building_construction: 技术架构

Core 层     → GameManager, EventBus, StateManager, SaveManager
World 层    → TimeManager, WeatherManager, LocationManager
Farm 层     → FarmSystem, CropManager
Player 层   → PlayerController, InventoryManager, PlayerStats
Character 层 → NPC, NPCManager, CharacterBase, CharacterGenerator
Quest 层    → QuestManager
Combat 层   → BattleScreen, BossBattleScreen
UI 层       → ThemeManager, 各种 UI 场景

:paperclip: 项目文件已在本地完成,包含完整的 Godot 工程和 Blender 3D 资源。


五、效果与总结

提效成果

  • 从零到完整游戏:作为一个非技术人员,借助 SOLO 完成了约 18,000 行游戏代码
  • 开发效率:原本需要团队数月完成的工作,通过 SOLO 辅助在极短时间内完成
  • 架构质量:SOLO 帮我采用了信号驱动+事件总线的成熟架构,代码结构清晰、模块解耦良好

SOLO 在流程中的角色

SOLO 在整个开发过程中扮演了技术导师 + 高级开发工程师的双重角色:

  1. 架构设计:帮我规划了合理的项目结构和模块划分
  2. 代码生成:根据我的需求描述生成高质量的 GDScript 代码
  3. 问题排查:遇到 Bug 时快速定位并提供修复方案
  4. 跨工具协作:同时辅助 Godot 开发和 Blender 3D 建模

可复用的方法

  1. 自顶向下拆解法:先搭骨架再填细节,避免陷入局部实现
  2. 对话式迭代开发:通过自然语言描述需求,SOLO 生成代码,运行测试后再迭代
  3. 善用 SOLO 的多技能:不仅代码生成,还能辅助 Blender 建模、着色器编写、资源管理等

个人感悟

SOLO 最大的价值不是替你写代码,而是降低了创造的门槛。作为一个非技术人员,我从未想过自己能完成一款架构如此完整的游戏。SOLO 让我能够专注于游戏设计本身,而不用被技术细节阻挡。AI 不是替代创造力,而是释放创造力。

ps:是的,这也是solo做的,而这就是solo的意义所在。