Godogen - 完整学习教程

Godogen - 完整学习教程

教程级别: 从零到一 预计学习时间: 2-3 小时 前置知识: 命令行基本操作(cd、ls、环境变量)、了解 Claude Code 的基本使用、对游戏开发有基本概念(知道什么是精灵、场景、物理引擎)

环境搭建指南

系统要求

  • 操作系统:Ubuntu / Debian / macOS(已测试平台)
  • Python:3.x
  • .NET SDK:9.0 及以上(用于 C# 编译)
  • Godot:4.x(带有 .NET 支持)
  • Claude Code:已安装并配置(或 OpenCode 作为替代)
  • 磁盘空间:约 500MB(Godot 引擎 + .NET SDK + 项目文件)

安装步骤

第一步:安装前置依赖

# 检查 Python 版本
python3 --version
# 需要 Python 3.x

# 安装 .NET 9 SDK(C# 编译需要)
# Ubuntu/Debian:
# https://learn.microsoft.com/dotnet/core/install/linux
# macOS:
brew install dotnet@9

# 验证 .NET 安装
dotnet --version
# 预期输出: 9.x.x

# 安装 Godot 4(带 .NET 支持)
# 从 https://godotengine.org/download 下载 Godot 4 .NET 版本
# macOS:
brew install --cask godot
# 或从官网下载 Godot_v4.x-stable_mono_linux/macOS_x86_64.zip

第二步:安装 Claude Code

# 安装 Claude Code CLI(如果尚未安装)
# 参考 https://docs.anthropic.com/claude-code 获取最新安装方式
npm install -g @anthropic-ai/claude-code

# 验证安装
claude --version

第三步:配置 API 密钥

# Godogen 需要以下 API 密钥(至少需要前两个)
# 1. GOOGLE_API_KEY - Gemini 图像生成(必需)
#    获取地址: https://aistudio.google.com/apikey

# 2. XAI_API_KEY - xAI Grok 纹理和视频生成(推荐)
#    获取地址: https://console.x.ai/

# 3. TRIPO3D_API_KEY - Tripo3D 3D 模型生成(仅 3D 游戏需要)
#    获取地址: https://platform.tripo3d.ai/

# 设置环境变量(添加到 ~/.bashrc 或 ~/.zshrc)
export GOOGLE_API_KEY="your-google-api-key"
export XAI_API_KEY="your-xai-api-key"
export TRIPO3D_API_KEY="your-tripo3d-api-key"

第四步:安装 Godogen

# 基于 Godogen 官方 README
# 克隆 Godogen 仓库
git clone https://github.com/htdt/godogen.git
cd godogen

# 查看项目结构
ls -la
# 可以看到:
# publish.sh     - 项目创建脚本
# skills/        - Skill 定义文件
#   godogen.md   - 主编排器 Skill
#   godot-api.md - API 查找 Skill
#   visual-qa.md - 视觉 QA Skill
# CLAUDE.md      - 项目配置模板

验证安装

# 创建你的第一个 Godogen 项目
# publish.sh 会在目标目录创建完整的项目结构
./publish.sh ~/my-first-game

# 查看创建的项目结构
ls -la ~/my-first-game/
# 预期输出:
# drwxr-xr-x  .claude/
# drwxr-xr-x  .claude/skills/
# -rw-r--r--  CLAUDE.md
# drwxr-xr-x  scenes/
# drwxr-xr-x  scripts/
# drwxr-xr-x  assets/

ls ~/my-first-game/.claude/skills/
# 预期输出:
# godogen.md     - 主编排器 Skill
# godot-api.md   - Godot API 查找 Skill
# visual-qa.md   - 视觉 QA Skill

基于 Godogen GitHub README


第一部分:入门篇

1.1 第一次游戏生成:理解基本流程

概念讲解:

Godogen 的核心使用方式非常简单——你只需要用自然语言描述你想要的游戏,然后让 Claude Code 执行编排器 Skill。整个流程分为三个阶段:

  1. 规划阶段:编排器分析你的游戏描述,识别核心玩法,列出所需资产,按风险优先排序实现顺序。
  2. 构建阶段:编排器生成 C# 代码、调用外部 API 生成美术资产、通过 headless 脚本创建 .tscn 场景文件。
  3. 验证阶段:运行游戏,截取截图,通过 visual-qa Skill 进行视觉分析和问题修复。

这三步在单个 1M token 上下文窗口中连续执行,编排器始终保持对项目的全局视图。

操作步骤:

# 基于 Godogen GitHub README

# 进入 Godogen 创建的项目目录
cd ~/my-first-game

# 启动 Claude Code
claude

# 在 Claude Code 中输入你的游戏描述
# 例如:
# "Create a simple 2D platformer game where a character can run and jump
#  across platforms. The character should have smooth movement and the
#  game should have a colorful pixel art style. Include 5 levels of
#  increasing difficulty."

执行结果:

# Godogen 编排器的典型执行过程(在 Claude Code 中观察)

[规划阶段]
分析游戏描述...
识别核心玩法: 2D 平台跳跃
所需资产清单:
  - 角色精灵图(行走、跳跃动画)
  - 平台纹理
  - 背景图
  - UI 元素
风险优先排序:
  1. 角色控制器和物理(高风险)
  2. 碰撞检测和平台生成(中风险)
  3. 关卡设计(中风险)
  4. UI 和视觉效果(低风险)

[构建阶段]
生成 C# 代码...
  → Player.cs(角色控制器)
  → LevelManager.cs(关卡管理)
  → GameManager.cs(游戏状态)
调用资产生成 API...
  → Gemini: 角色参考图($0.10)
  → Grok: 平台纹理 × 3($0.06)
  → Gemini: 背景图 × 5($0.50)
生成场景文件...
  → Main.tscn
  → Level1.tscn ~ Level5.tscn
dotnet build... ✓ 编译成功

[验证阶段]
启动 Godot 游戏并截图...
截取 3 张截图
→ visual-qa Skill 分析中...
  发现问题: 角色跳跃高度不够,无法到达第一个平台
→ 修复: 调整 JumpVelocity 参数
重新验证... ✓ 通过

生成完成!
总成本: ~$3.50(LLM: $2.00, 资产: $1.50)

以上输出为模拟结果,基于 Godogen GitHub README 的管线描述。实际执行过程在 Claude Code 的 1M token 上下文窗口中完成。

练习题: 1. 修改游戏描述,尝试生成一个不同类型的游戏(如"无尽跑酷"或"迷宫探索"),观察编排器如何调整规划。 2. 对比使用不同详细程度的游戏描述(简短 vs 详细),观察生成质量的差异。


1.2 理解项目结构:生成的文件都有什么

概念讲解:

Godogen 生成的项目是一个标准的 Godot 4 C# 项目,可以在 Godot 编辑器中直接打开。理解项目结构对于后续修改和优化生成结果至关重要。

Godogen 的场景文件(.tscn)不是直接手写的,而是通过 headless 脚本在内存中构建节点图后序列化生成的。这避免了直接编辑 Godot 序列化格式的脆弱性,确保场景结构的正确性。

操作步骤:

# 基于 Godogen GitHub README

# 查看生成的项目结构
cd ~/my-first-game

# 项目目录结构
tree .
# 预期输出:
# .
# ├── .claude/
# │   └── skills/
# │       ├── godogen.md      # 编排器 Skill 定义
# │       ├── godot-api.md    # API 查找 Skill 定义
# │       └── visual-qa.md    # 视觉 QA Skill 定义
# ├── CLAUDE.md               # 项目配置和约束
# ├── project.godot           # Godot 项目配置
# ├── *.csproj                # C# 项目文件
# ├── scenes/
# │   ├── Main.tscn           # 主场景
# │   └── Levels/
# │       ├── Level1.tscn     # 关卡场景
# │       └── ...
# ├── scripts/
# │   ├── Player.cs           # 玩家控制器
# │   ├── LevelManager.cs     # 关卡管理器
# │   └── GameManager.cs      # 游戏管理器
# ├── assets/
# │   ├── sprites/            # 精灵图
# │   ├── textures/           # 纹理
# │   ├── models/             # 3D 模型(如果有)
# │   └── animations/         # 动画资源
# └── .godot/                 # Godot 编辑器缓存

关键文件说明:

# 查看 CLAUDE.md(项目配置)
cat CLAUDE.md
# 包含:
# - API 密钥配置引用
# - 项目约束和规则
# - Skill 加载指令

# 查看生成的 C# 代码
cat scripts/Player.cs
# 包含:
# - using Godot; 导入
# - 角色控制器类
# - 物理处理(_PhysicsProcess)
# - 输入处理

# 在 Godot 编辑器中打开项目
# 打开 Godot 4(.NET 版本)
# → 点击 "Import"
# → 选择 ~/my-first-game/project.godot
# → 点击 "Import & Edit"
# 项目将在 Godot 编辑器中打开,可以预览和修改

执行结果:

# 在 Godot 编辑器中打开项目后的典型视图

场景树(Scene Tree):
  Root (Node2D)
  ├── Player (CharacterBody2D)
  │   ├── Sprite (Sprite2D)
  │   ├── CollisionShape (CollisionShape2D)
  │   └── Camera (Camera2D)
  ├── TileMap (TileMapLayer)
  ├── LevelStart (Marker2D)
  └── UI (CanvasLayer)
      ├── ScoreLabel (Label)
      └── HealthBar (ProgressBar)

文件系统(FileSystem):
  res://
  ├── scenes/
  ├── scripts/
  ├── assets/
  └── project.godot

以上输出为模拟结果,基于 Godot 4 项目结构和 Godogen 生成模式。

注意事项: - 生成的项目需要 .NET 9 SDK 才能编译。确保安装了正确版本的 Godot(.NET 版本,非标准版)。 - .tscn 文件虽然看起来是文本格式,但不建议手动编辑。使用 Godot 编辑器或通过 headless 脚本修改。 - CLAUDE.md 文件是 Godogen 的配置文件,修改它会影响后续的生成行为。

练习题: 1. 在 Godot 编辑器中打开生成的项目,运行游戏,观察游戏效果。 2. 尝试在 Godot 编辑器中修改场景树(如添加新节点),保存后观察 .tscn 文件的变化。


第二部分:进阶篇

2.1 优化游戏描述:获得更好的生成结果

概念讲解:

Godogen 的生成质量高度依赖于输入的游戏描述。一个好的描述应该包含:核心玩法机制、视觉风格、关卡设计思路、角色行为和游戏目标。描述越具体,生成结果越好。

根据社区反馈和作者建议,最佳实践是使用 Claude Opus 4.6 模型(而非 Sonnet),因为 Opus 在理解复杂游戏设计意图方面表现更好。Sonnet 4.6 可以工作但需要更详细的引导。

操作步骤:

# 基于 Godogen GitHub README 和 Hacker News 社区反馈

# 在 Claude Code 中使用优化后的游戏描述
claude

# 示例:一个详细的游戏描述
# (在 Claude Code 对话中输入以下内容)

# 以下是一个好的游戏描述示例:
Create a 2D endless runner game with the following specifications:

## Core Mechanics
- The player character runs automatically from left to right
- Player can jump (Space/Up) and double-jump
- Obstacles spawn at random intervals: spikes, gaps, moving platforms
- Collectible coins that increase score
- Speed gradually increases over time
- Game over when hitting an obstacle or falling

## Visual Style
- Colorful cartoon style with bright colors
- Parallax scrolling background with mountains, clouds, and trees
- Smooth animations for run, jump, and collect

## Technical Requirements
- Use CharacterBody2D for the player
- Implement parallax background with ParallaxLayer nodes
- Use Area2D for collectibles with collision detection
- Add particle effects for coin collection
- Screen shake on game over

## UI
- Score counter (top-right)
- Current speed indicator
- Game over screen with restart button
- High score tracking (saved locally)

执行结果:

# 使用详细描述后的改进效果

[规划阶段]
详细解析游戏规范...
核心机制: 6 个(自动跑、跳跃、双跳、障碍、收集、加速)
视觉风格: 卡通色彩、视差背景
技术约束: 明确指定了节点类型
UI 需求: 4 个 UI 元素

风险优先排序:
  1. 角色控制器(跳跃+双跳+自动跑)- 高风险
  2. 障碍生成系统(随机间隔+类型)- 高风险
  3. 碰撞检测和游戏结束逻辑 - 中风险
  4. 视差背景和粒子效果 - 中风险
  5. UI 和分数系统 - 低风险
  6. 本地存储高分 - 低风险

...(后续构建和验证阶段)

以上输出为模拟结果,基于 Godogen 的规划行为描述。

注意事项: - 描述中明确指定 Godot 节点类型(如 CharacterBody2D、Area2D)可以显著提高生成代码的准确性。 - 视觉风格的描述会影响资产生成模型的选择和参数。 - 过于复杂的描述可能超出 1M token 上下文窗口的限制。保持核心功能聚焦,避免一次性描述过多内容。 - 最佳模型选择:Claude Opus 4.6 > Sonnet 4.6。Sonnet 可以工作但需要更详细的描述。

练习题: 1. 尝试用不同详细程度描述同一个游戏(简短一句话 vs 上述详细规范),对比生成质量。 2. 在描述中故意不指定节点类型,观察生成代码是否使用了正确的 Godot API。


2.2 配置和理解视觉 QA

概念讲解:

视觉 QA(Visual QA)是 Godogen 最核心的差异化能力。它的工作原理是:在游戏生成后,自动启动 Godot 运行游戏,在关键帧截取屏幕截图,然后使用 Gemini Flash 和 Claude vision 分析截图中的视觉问题。

这种"生成→验证→修复"的闭环是 Godogen 区别于其他 AI 游戏工具的关键。它能自动发现代码编译通过但视觉效果错误的问题——如 z-fighting(两个面在同一深度闪烁)、缺失纹理、角色穿模、UI 元素重叠等。

visual-qa Skill 作为分叉 Skill 运行在独立上下文中,避免大量截图和分析输出消耗主编排器的 1M token 上下文窗口。

操作步骤:

# 基于 Godogen GitHub README

# 视觉 QA 在生成过程中自动执行,无需手动触发
# 但可以通过 visual-qa Skill 的"问题模式"进行手动调试

# 在 Claude Code 中(项目目录下)
claude

# 使用问题模式进行视觉调试
# 例如,生成完成后,你可以手动触发视觉分析:

# "Take a screenshot of the running game and check if
#  the player character is properly standing on the ground
#  without floating or clipping"

# "Check the background for visible tiling seams or gaps"

# "Verify that the UI elements don't overlap with
#  the game area"

执行结果:

# visual-qa Skill 的典型分析输出

截图已捕获: screenshot_001.png
截图已捕获: screenshot_002.png
截图已捕获: screenshot_003.png

[Gemini Flash 分析]
截图 1: 检测到潜在问题
  - 角色精灵与地面之间存在 2px 间隙(角色看起来悬浮)
  - 建议: 调整 CollisionShape2D 的位置偏移

截图 2: 通过
  - 背景视差效果正常
  - 无可见的拼接缝隙

截图 3: 检测到潜在问题
  - z-fighting 现象在平台边缘可见
  - 建议: 调整平台的 Z-index 或增加微小偏移

[Claude Vision 综合分析]
整体视觉质量: 良好
UI 布局: 分数显示位置正确
动画流畅度: 行走动画循环自然
建议修复: 角色悬浮问题(高优先级)、平台 z-fighting(低优先级)

以上输出为模拟结果,基于 Godogen GitHub README 中 visual-qa Skill 的功能描述。

注意事项: - 视觉 QA 依赖 Godot 能正常启动和运行游戏。如果项目有编译错误,视觉 QA 无法执行。确保 dotnet build 通过。 - Gemini Flash 被选择用于视觉分析是因为其空间问题检测能力强,不仅是因为成本。作者在 Hacker News 讨论中强调了这一点。 - 截图分析会增加额外的 API 调用成本,但 Gemini Flash 的成本"几乎可以忽略不计"。 - visual-qa Skill 运行在独立上下文中,分析结果会被精炼后传回编排器。

练习题: 1. 在生成完成后,手动使用问题模式检查不同方面(角色动画、背景连续性、UI 布局),对比分析结果的详细程度。 2. 故意修改生成的代码引入一个视觉问题(如移除碰撞形状),重新运行视觉 QA,观察是否能检测到问题。


2.3 资产生成配置与成本控制

概念讲解:

Godogen 的资产生成管线集成了三个外部 AI 模型,每个模型负责不同类型的资产生成。理解每个模型的特长和成本结构,有助于在预算约束下获得最佳视觉质量。

Godogen 的预算控制器会根据游戏描述自动分配资产预算,但你也可以通过 API 密钥的选择性配置来控制成本——不配置某个 API 密钥,对应的资产生成功能就会被跳过。

操作步骤:

# 基于 Godogen GitHub README 和 Hacker News 成本数据

# 资产模型配置选项

# 选项 1:完整配置(所有资产生成模型)
export GOOGLE_API_KEY="..."    # Gemini: 参考图、角色
export XAI_API_KEY="..."       # Grok: 纹理、视频动画
export TRIPO3D_API_KEY="..."   # Tripo3D: 3D 模型

# 选项 2:仅 2D 游戏(不需要 3D 模型)
export GOOGLE_API_KEY="..."    # Gemini: 所有图像
export XAI_API_KEY="..."       # Grok: 纹理、视频动画
# 不设置 TRIPO3D_API_KEY → 跳过 3D 模型生成

# 选项 3:最低成本(仅 Gemini)
export GOOGLE_API_KEY="..."    # Gemini: 替代所有图像生成
# 不设置 XAI_API_KEY → Gemini 替代 Grok 的功能

成本参考表:

# 基于 Hacker News 讨论中作者 htdt 的披露

资产类型              模型          单价                说明
─────────────────────────────────────────────────────────
参考图/角色          Gemini        $0.07-$0.15/张      取决于分辨率
纹理/简单物体        Grok          $0.02/张            Grok Imagine 价格
3D 模型              Tripo3D       $0.30-$0.60/个      中等质量含参考图
动画精灵帧           Grok 视频     ~$0.10/动画         视频+拆帧+循环检测
视觉 QA              Gemini Flash  ~$0.00              几乎免费
LLM 推理             Claude API    $1.00-$3.00         取决于游戏复杂度

典型 2D 游戏总成本: ~$5-8
典型 3D 游戏总成本: ~$8-15(额外的 3D 模型成本)

成本数据来自 Hacker News 讨论中作者 htdt 的披露,基于 2026 年 4 月的 API 定价。

注意事项: - API 定价可能随时间变化,以上成本仅供参考。 - 不配置 TRIPO3D_API_KEY 时,3D 模型不会被生成。如果游戏描述中包含 3D 元素但没有 Tripo3D 密钥,编排器会自动降级为 2D 替代方案或跳过 3D 部分。 - Grok Imagine($0.02/图)的价格比 Gemini 便宜很多。作者在 Roadmap 中提到将 Grok 作为主要图像生成模型的迁移计划。 - 每个游戏大约需要 10-20 张图片和数个 3D 模型,资产成本通常在 $2-3 之间。

练习题: 1. 分别使用"完整配置"和"仅 Gemini"两种配置生成同一个游戏,对比视觉质量差异。 2. 记录一次完整游戏生成的实际 API 调用成本,与上表的估算值对比。


第三部分:高级篇

3.1 定制 CLAUDE.md 和 Skill 行为

概念讲解:

Godogen 的生成行为可以通过两种方式定制:修改项目根目录的 CLAUDE.md 文件,以及直接编辑 .claude/skills/ 目录下的 Skill 定义文件。

CLAUDE.md 文件是 Claude Code 的项目级配置文件,Godogen 会读取其中的指令来调整生成行为。你可以在这里添加项目特定的约束、偏好和规则。

Skill 定义文件(.claude/skills/ 下的 .md 文件)是 Claude Code Skills 的核心。每个 Skill 文件定义了该 Skill 的角色、能力和行为规则。通过修改这些文件,你可以深度定制 Godogen 的生成流程。

操作步骤:

# 基于 Godogen GitHub README

# 查看当前的 CLAUDE.md
cat ~/my-first-game/CLAUDE.md
# 示例:自定义 CLAUDE.md
# 在默认配置基础上添加以下内容

## 游戏特定约束
- 游戏必须支持手柄输入(Xbox/PlayStation 控制器)
- 目标帧率: 60 FPS
- 最大场景节点数: 不超过 200 个
- 不使用动态加载(所有资源在启动时加载)

## 代码风格
- 所有 C# 类必须有 XML 文档注释
- 使用 PascalCase 命名约定
- 每个类文件不超过 300 行
- 使用 Godot 信号(Signal)进行节点间通信,避免直接引用

## 资产偏好
- 像素艺术风格(16x16 或 32x32 精灵)
- 限制色板(最多 16 种颜色)
- 所有精灵使用相同的像素密度
# 查看和修改 Skill 定义
# 编排器 Skill
cat ~/my-first-game/.claude/skills/godogen.md

# 可以修改的部分(示例):
# - 调整风险优先排序的权重
# - 添加额外的生成规则
# - 修改资产生成的默认参数

# 注意: 修改 Skill 文件后,需要重新启动 Claude Code 才能生效

注意事项: - CLAUDE.md 的修改会影响后续的生成行为,但不会改变已生成的代码。如果需要应用新规则到已有代码,需要重新运行生成流程。 - Skill 文件的修改是高级操作,错误的修改可能导致生成失败。建议在修改前备份原始文件。 - 修改后的 Skill 行为可能与 Godogen 的后续版本不兼容。更新 Godogen 时需要检查 Skill 文件是否需要相应更新。


3.2 处理生成失败和调试

概念讲解:

Godogen 的生成过程可能因多种原因失败:API 密钥配置错误、外部 API 限制、上下文窗口不足、生成的代码无法编译等。理解失败模式和调试策略对于有效使用 Godogen 至关重要。

由于 Godogen 运行在 Claude Code 中,你可以利用 Claude Code 的对话能力进行交互式调试——当生成失败时,直接向 Claude Code 描述问题,它会尝试修复。

调试策略:

# 基于 Godogen GitHub README 和常见使用场景

# 策略 1:编译错误调试
# 如果 dotnet build 失败,查看错误信息
cd ~/my-first-game
dotnet build
# 查看具体的编译错误

# 在 Claude Code 中描述错误
claude
# "The build is failing with error CS0117 'Input' does not contain
#  a definition for 'IsActionJustPressed'. Fix the Input handling code."

# 策略 2:运行时错误调试
# 在 Godot 编辑器中运行游戏,查看控制台输出
# 常见运行时错误:
# - NullReferenceException: 节点引用未正确初始化
# - Scene tree 错误: 节点路径不正确

# 策略 3:视觉问题调试
# 使用 visual-qa Skill 的问题模式
# 在 Claude Code 中:
# "The player character is floating above the ground by about 10 pixels.
#  Take a screenshot and help me fix the collision shape offset."

# 策略 4:资产质量调试
# 如果生成的图像质量不佳,在 CLAUDE.md 中添加更详细的风格描述
# 例如:
# "All sprites must be in 16-bit pixel art style with clean edges.
#  No anti-aliasing. Use a limited color palette."

注意事项: - 最常见的失败原因是 API 密钥配置错误。确保所有密钥正确设置且未过期。 - 1M token 上下文窗口可能对非常复杂的游戏不够。如果生成过程中上下文耗尽,考虑简化游戏描述或分阶段生成。 - dotnet build 错误通常是因为 Godot API 使用不正确。这正好体现了选择 C# 而非 GDScript 的优势——编译器能捕获这类错误。


3.3 最佳实践与生成质量优化

最佳实践:

  1. 使用 Opus 4.6 模型:Godogen 的最佳结果来自 Claude Opus 4.6。Sonnet 4.6 可以工作但需要更多引导和更详细的描述。如果预算允许,始终选择 Opus。

  2. 详细的游戏描述:描述越详细,生成质量越高。一个好的描述应该包含:核心玩法机制、视觉风格、技术要求(指定 Godot 节点类型)、UI 设计和关卡设计思路。

  3. 迭代改进:第一次生成通常不会完美。利用 Godogen 的视觉 QA 反馈和 Claude Code 的对话能力进行迭代改进。在对话中逐步添加细节和修复问题。

  4. 风险优先思考:在描述中把最不确定、最复杂的功能放在前面。Godogen 的编排器会按风险优先排序,确保最关键的部分最先得到验证。

  5. 控制项目规模:对于单次生成,建议保持项目规模适中(5-10 个场景,不超过 20 个脚本)。对于更大的项目,考虑分阶段生成——先生成核心玩法框架,再逐步添加关卡和功能。


第四部分:实战项目

项目需求

构建一个"太空射击游戏",综合运用以下知识点: 1. 游戏描述优化(知识点 2.1):编写详细的太空射击游戏描述 2. 项目结构理解(知识点 1.2):理解生成的文件组织 3. 视觉 QA(知识点 2.2):验证和修复生成结果 4. 资产生成配置(知识点 2.3):控制资产生成成本 5. CLAUDE.md 定制(知识点 3.1):添加项目特定约束

功能要求: - 玩家控制一艘飞船在屏幕底部移动和射击 - 敌人从屏幕顶部以不同模式出现 - 包含三种敌人类型:直线飞行、蛇形移动、追踪玩家 - 玩家有三条生命值和无敌时间 - 分数系统,击杀不同敌人获得不同分数 - 背景星空效果

项目设计

space-shooter/
│
├── .claude/
│   └── skills/
│       ├── godogen.md
│       ├── godot-api.md
│       └── visual-qa.md
│
├── CLAUDE.md              # 项目配置(含定制约束)
├── project.godot
├── SpaceShooter.csproj
│
├── scenes/
│   ├── Main.tscn          # 主场景(游戏入口)
│   ├── Player.tscn        # 玩家飞船(独立场景)
│   ├── EnemyStraight.tscn # 直线敌人
│   ├── EnemySnake.tscn    # 蛇形敌人
│   ├── EnemyTracker.tscn  # 追踪敌人
│   └── HUD.tscn           # UI 界面
│
├── scripts/
│   ├── Player.cs          # 玩家控制
│   ├── Bullet.cs          # 子弹行为
│   ├── EnemyBase.cs       # 敌人基类
│   ├── EnemyStraight.cs   # 直线飞行敌人
│   ├── EnemySnake.cs      # 蛇形移动敌人
│   ├── EnemyTracker.cs    # 追踪敌人
│   ├── Spawner.cs         # 敌人生成器
│   ├── GameManager.cs     # 游戏状态管理
│   └── HUD.cs             # UI 控制
│
└── assets/
    ├── sprites/
    │   ├── player_ship.png
    │   ├── enemy_*.png
    │   └── bullet.png
    ├── effects/
    │   ├── explosion.png
    │   └── spark.png
    └── backgrounds/
        └── starfield.png

完整实施代码

第一步:创建项目并编写 CLAUDE.md

#!/bin/bash
# 创建太空射击游戏项目
# 基于 Godogen publish.sh 的使用方式

# 创建项目
cd /path/to/godogen
./publish.sh ~/space-shooter

cd ~/space-shooter
# CLAUDE.md 定制内容
# 追加到默认的 CLAUDE.md 文件末尾

## 太空射击游戏约束
- 所有飞船精灵使用自顶向下视角
- 子弹使用 Area2D 进行碰撞检测,不使用 RigidBody
- 敌人生成间隔:初始 2 秒,每 30 秒减少 0.1 秒,最低 0.5 秒
- 玩家移动范围限制在屏幕可见区域内
- 无敌时间 2 秒,无敌期间飞船闪烁

## 资产偏好
- 太空主题:深蓝/深紫背景,霓虹色飞船和子弹
- 精灵尺寸:玩家飞船 64x64,敌人 48x48,子弹 8x16
- 星空背景使用视差滚动(3 层,不同速度)
- 爆炸效果使用粒子系统(GPUParticles2D)

## 代码约束
- 敌人继承自 EnemyBase 抽象类
- 使用 Godot 信号(Signal)处理碰撞事件
- GameManager 使用单例模式(AutoLoad)
- 所有移动使用 _Process 或 _PhysicsProcess,不使用 Tween

第二步:编写详细的游戏描述

Create a 2D top-down space shooter game with the following specifications:

## Core Mechanics
- Player ship moves left/right at bottom of screen (arrow keys or A/D)
- Player shoots bullets upward (Space bar), with fire rate limit (3 shots/sec)
- Three enemy types:
  1. Straight: moves straight down, 1 HP, 10 points
  2. Snake: moves in sine wave pattern, 2 HP, 25 points
  3. Tracker: slowly homes toward player, 3 HP, 50 points
- Player has 3 lives, 2-second invincibility after hit (ship blinks)
- Enemies spawn from top with increasing frequency over time
- Game over when all lives lost, show final score

## Visual Style
- Deep space theme with dark blue/purple background
- Neon-colored ships and bullets (player: cyan, enemies: red/orange/yellow)
- 3-layer parallax starfield background
- Explosion particles when enemies or player are destroyed

## Technical Requirements
- Use CharacterBody2D for player, Area2D for bullets and enemies
- Enemy base class with abstract movement pattern
- GameManager as AutoLoad singleton for score and lives
- Screen-wrap or boundary clamping for player movement
- Viewport size: 480x720 (portrait mode)

## UI
- Score display (top-center)
- Lives display (top-left, ship icons)
- Game over screen with final score and restart button

第三步:执行生成并验证

# 在 Claude Code 中执行
cd ~/space-shooter
claude

# 粘贴上述详细游戏描述
# 等待 Godogen 完成生成(约 5-15 分钟)

# 生成完成后,在 Godot 编辑器中打开项目
# 检查以下内容:
# 1. dotnet build 是否通过
# 2. 游戏是否能正常启动
# 3. 视觉 QA 报告中是否有问题

# 手动验证
cd ~/space-shooter
dotnet build
# 预期: Build succeeded. 0 Warning(s) 0 Error(s)

# 在 Claude Code 中使用 visual-qa 问题模式
# "Check if the player ship is centered at the bottom of the screen"
# "Verify the starfield parallax layers move at different speeds"
# "Check if enemy spawn rate increases over time"

代码解析

知识点运用说明:

  1. 游戏描述优化(2.1 节):太空射击游戏的描述包含了核心机制、视觉风格、技术要求和 UI 设计四个维度。明确指定了 Godot 节点类型(CharacterBody2D、Area2D),提高了代码生成的准确性。

  2. 项目结构理解(1.2 节):项目设计遵循了 Godogen 的标准输出结构——scenes/ 目录包含所有 .tscn 场景文件,scripts/ 包含所有 C# 脚本,assets/ 存放美术资源。

  3. 视觉 QA(2.2 节):生成后使用 visual-qa Skill 的问题模式验证关键视觉效果——玩家位置、视差背景、敌人生成率。这是人工验证与自动验证结合的策略。

  4. 资产生成配置(2.3 节):太空射击游戏是 2D 游戏,不需要 Tripo3D API 密钥。仅使用 Gemini(飞船参考图)和 Grok(纹理、动画帧)即可。

  5. CLAUDE.md 定制(3.1 节):通过 CLAUDE.md 添加了游戏特定的约束(无敌时间、生成间隔、碰撞检测方式),这些约束会影响编排器的实现决策。

扩展挑战

  1. 添加武器升级系统:在 CLAUDE.md 中添加武器升级规则(如击杀 10 个敌人后子弹数量增加),重新生成并测试。

  2. 添加 Boss 战:在游戏描述中增加 Boss 敌人的设计(大型飞船、多种攻击模式、血条显示),观察 Godogen 如何处理复杂的敌人行为。

  3. 导出为 Web 游戏:使用 Godot 的 Web 导出功能将生成的游戏导出为 HTML5,部署到 GitHub Pages 或 itch.io。


第五部分:常见问题与排查指南

常见错误及解决方案

错误信息 原因 解决方案
GOOGLE_API_KEY not set Gemini API 密钥未配置 在 ~/.bashrc 或 ~/.zshrc 中设置 export GOOGLE_API_KEY="...",然后重新加载终端
dotnet build failed: CS0234 Godot API 类型引用错误 Godogen 的 godot-api Skill 可能未正确加载 API 文档。检查 .claude/skills/godot-api.md 是否存在。在 Claude Code 中描述具体错误让其修复
dotnet build failed: CS0246 缺少 using 指令或类型未找到 确保 project.godot 包含正确的 C# 配置。运行 dotnet add package GodotSharp 添加 Godot C# 绑定
Tripo3D API error 401 Tripo3D API 密钥无效或过期 检查 TRIPO3D_API_KEY 是否正确。如果是 2D 游戏可以不配置此密钥
Context window exceeded 游戏描述过于复杂,超出 1M token 限制 简化游戏描述,减少同时生成的功能。考虑分阶段生成:先生成核心玩法,再添加关卡和功能
Godot can't open project project.godot 文件格式错误或缺失 确保 Godogen 已完成完整生成流程。检查 project.godot 文件是否存在且格式正确
No sprites generated 图像生成 API 调用失败 检查 API 密钥和网络连接。查看 Claude Code 的日志了解具体错误。尝试用更简单的视觉描述
Player falls through floor 碰撞形状未正确配置 在 Claude Code 中描述问题:"Player falls through the ground, fix the collision shape setup"。视觉 QA 通常能自动检测此问题
Generated game has no gameplay 游戏描述过于模糊 使用更详细的描述(参考 2.1 节的优化技巧)。确保包含核心玩法机制的明确描述

基于 Godogen GitHub README 和常见使用场景

调试技巧

  1. 利用 Claude Code 的对话能力:Godogen 运行在 Claude Code 中,你可以直接与编排器对话。如果生成结果不理想,不要重新开始,而是在对话中描述问题并要求修复。例如:"The enemy spawn rate is too slow, increase it to spawn every 1 second instead of 3 seconds."

  2. 分阶段验证:对于复杂的游戏,不要等到全部生成完毕再检查。在生成过程中的关键节点(如核心玩法完成时、资产生成完成后、场景组装后)暂停并检查中间结果。

  3. 利用 dotnet build 作为调试工具:C# 编译器是第一道质量关卡。如果 dotnet build 失败,编译错误信息会明确告诉你哪一行代码有问题、什么类型不匹配。这比 GDScript 的运行时错误更容易定位和修复。


第六部分:学习路线推荐

官方文档推荐阅读顺序

  1. GitHub README 完整阅读 — 架构说明、安装指南、Changelog
  2. 地址:https://github.com/htdt/godogen
  3. 重点:三 Skill 架构说明、Changelog 中的版本演进、publish.sh 使用方式

  4. CLAUDE.md 模板 — 项目配置文件的结构和可定制项

  5. 地址:https://github.com/htdt/godogen/blob/master/CLAUDE.md
  6. 重点:API 密钥配置、项目约束语法

  7. Skill 定义文件 — 编排器、API 查找和视觉 QA 的具体行为定义

  8. 地址:https://github.com/htdt/godogen(skills/ 目录)
  9. 重点:每个 Skill 的角色定义、触发条件、行为规则

  10. Hacker News 讨论帖 — 作者详细技术问答和成本数据

  11. 地址:https://news.ycombinator.com/item?id=47400868
  12. 重点:架构决策背后的理由、成本分析、社区反馈

推荐进阶资源

  • Godot 4 官方文档(C# 部分)
  • https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/
  • 学习 Godot 4 的 C# API,帮助理解和修改 Godogen 生成的代码

  • Claude Code Skills 文档

  • https://docs.anthropic.com/claude-code/skills
  • 深入理解 Claude Code Skills 的机制,帮助定制 Godogen 的 Skill 行为

  • Godot + Claude Code 完全指南(中文)

  • https://gist.github.com/xbfool/af1cacc74b7e58364aa244770bf85752
  • 中文社区的完整指南,包含 Godot AI 工具生态的三层架构说明

进阶方向建议

完成本教程后,建议按以下方向深入学习:

  1. Godot 4 C# 开发:系统学习 Godot 4 的 C# API(节点系统、信号、物理引擎、动画系统),这不仅能帮助你理解和修改 Godogen 生成的代码,还能让你在 Godogen 生成基础上进行高质量的二次开发。

  2. Claude Code Skills 开发:学习 Claude Code Skills 的定义语法和最佳实践,理解如何编写高质量的 Skill 文件。这能帮助你深度定制 Godogen 的生成行为,甚至创建自己的游戏生成 Skill。

  3. AI 游戏生成研究:关注 AI 游戏生成的最新进展(如 Tesana、SEELE 等平台),理解不同架构(自主管线 vs 实时编辑器控制 vs 云端平台)的优劣,为未来的工具选型提供参考。


信息来源与版本说明