Godot 新手起步:用 VS Code 和 Codex 擴充套件開發 2D 遊戲

如果你已經熟悉 VS Code,可以不用單獨依賴 Codex App。本文整理 Godot 4.x、VS Code、godot-tools、Codex 擴充套件和 Git 的起步流程,並給出 2D 俯視角射擊原型的開發循環。

如果你已經習慣 VS Code,學 Godot 不必換到另一套工作流。更順手的組合是:Godot 編輯器負責場景和節點,VS Code 負責編寫 GDScript,Codex 擴充套件負責分析專案、生成腳本、排錯和小範圍重構。

這套方式不要求一開始就讓 AI 生成完整遊戲。更穩的做法是:先在 Godot 裡搭好真實節點樹,再讓 Codex 圍繞現有場景寫腳本。這樣它能看到檔案結構,也更不容易猜錯節點名稱和路徑。

推薦分工

最適合 VS Code 使用者的分工如下:

  • Godot:建立場景、節點、碰撞體、動畫和 UI 版面。
  • VS Code:編寫和管理 GDScript。
  • Codex:分析專案、生成腳本、排查錯誤、做小範圍重構。
  • Git:每完成一個可執行功能就提交一次。

也就是說,Godot 仍然是專案主編輯器,VS Code 是程式碼工作區,Codex 是協作式程式設計助手。

安裝 VS Code 擴充套件

先在 VS Code 裡安裝兩個擴充套件:

  1. Codex

OpenAI 官方擴充套件,可以讀取、修改和執行目前專案裡的檔案。使用 ChatGPT 帳號登入即可。

  1. godot-tools

用於 Godot 專案的 GDScript 開發,提供語法高亮、自動補全、跳到定義、LSP 錯誤提示,以及從 VS Code 啟動和除錯 Godot 的能力。

不要只安裝普通的 GDScript 高亮擴充套件,優先使用 godot-tools

讓 Godot 使用 VS Code

在 Godot 中打開:

1
2
3
4
編輯器
→ 編輯器設定
→ 文字編輯器
→ 外部

開啟:

1
使用外部編輯器

Windows 下執行路徑需要指向 code.cmd。可以先在終端執行:

1
where code.cmd

常見結果類似:

1
C:\Users\你的使用者名稱\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd

執行參數填寫:

1
{project} --goto {file}:{line}:{col}

Godot 4.5 之後通常能自動識別這些參數,手動填寫也沒有問題。

然後繼續打開:

1
2
3
4
5
編輯器設定
→ 文字編輯器
→ 行為
→ 檔案
→ Auto Reload Scripts on External Change

開啟腳本外部修改後自動重新載入。這樣在 Godot 裡雙擊腳本時,會直接跳到 VS Code 對應檔案和行號。

用 VS Code 打開專案根目錄

不要只打開 scripts 資料夾。VS Code 必須打開包含 project.godot 的專案根目錄。

推薦目錄結構:

1
2
3
4
5
6
7
my_game/
├─ project.godot
├─ AGENTS.md
├─ scenes/
├─ scripts/
├─ assets/
└─ .vscode/

打開方式:

1
2
cd D:\GodotProjects\my_game
code .

然後再打開一次 Godot 專案。

Godot 的語言伺服器通常需要目前專案正在 Godot 編輯器中執行。預設 LSP 連接埠是 6005,DAP 除錯連接埠是 6006。正常開發時建議保持 Godot 編輯器開啟,讓 VS Code 負責寫程式碼。

配置 VS Code 除錯

在專案中建立:

1
.vscode/launch.json

寫入:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "執行 Godot 專案",
            "type": "godot",
            "request": "launch",
            "project": "${workspaceFolder}",
            "debugServer": 6006
        }
    ]
}

之後可以在 VS Code 中按 F5 啟動遊戲和除錯。

如果 F5 找不到 Godot,在 VS Code 設定中搜尋:

1
godotTools.editorPath.godot4

填入 Godot 可執行檔路徑,例如:

1
D:\Programs\Godot\Godot_v4.7-stable_win64.exe

godot-tools 支援透過這個設定指定 Godot 4 編輯器路徑。

建立 AGENTS.md

在專案根目錄建立 AGENTS.md,把它當成給 Codex 閱讀的專案規則。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Godot Project Instructions

這是一個 Godot 4.x 專案,使用 GDScript。

## 編碼規則

- 只使用 Godot 4.x API。
- 不使用 Godot 3.x 舊語法。
- GDScript 盡量使用靜態型別。
- 使用 snake_case 命名變數和函式。
- 使用 PascalCase 命名 class_name。
- 節點引用優先使用 @onready- 可配置參數使用 @export- 不隨意更改現有節點名稱。
- 不建立過度複雜的 Manager 架構。
- 每次只實作一個可獨立測試的功能。

## 檔案職責

- scenes/ 保存 .tscn 場景。
- scripts/ 保存 .gd 腳本。
- assets/ 保存圖片、字型和聲音。
- ui/ 保存介面場景和介面腳本。

## 場景修改規則

- 修改 .tscn 前先讀取並理解現有節點結構。
- 不猜測節點名稱和 NodePath。
- 對複雜場景,優先告訴使用者在 Godot 編輯器中手動建立節點。
- 除非任務明確要求,否則不要大範圍重寫 .tscn 檔案。

## 驗證規則

完成任務後:

1. 檢查 GDScript 語法。
2. 檢查資源路徑和節點路徑。
3. 列出修改的檔案。
4. 說明在 Godot 中如何測試。
5. 不聲稱已經執行成功,除非確實執行過驗證。

這個檔案很有價值。它能讓 Codex 明白專案邊界,減少亂改場景、重寫結構或使用舊版 Godot API 的機率。

先初始化 Git

在 VS Code 終端執行:

1
git init

建立 .gitignore

1
2
3
4
5
.godot/
.vscode/*.log
*.tmp
export/
build/

第一次提交:

1
2
git add .
git commit -m "初始化 Godot 项目"

在讓 Codex 修改專案之前,先建立 Git 檢查點。這樣每次試錯都能回退,心態會輕很多。

第一個專案建議做 2D

即使你熟悉 VS Code,第一個 Godot 專案仍然建議從 2D 開始。不要從大型 3D 專案、複雜 UI 或完整 RPG 系統起步。

一個適合練手的專案是:

1
2D 俯視角射擊原型

最小功能包括:

  • 玩家移動
  • 滑鼠瞄準
  • 發射子彈
  • 敵人追蹤
  • 碰撞扣血
  • 分數
  • 重新開始

推薦目錄:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
my_game/
├─ project.godot
├─ AGENTS.md
├─ scenes/
│  ├─ main.tscn
│  ├─ player.tscn
│  ├─ bullet.tscn
│  └─ enemy.tscn
├─ scripts/
│  ├─ main.gd
│  ├─ player.gd
│  ├─ bullet.gd
│  └─ enemy.gd
├─ ui/
│  └─ hud.tscn
└─ assets/

第一輪給 Codex 的提示詞

在 VS Code 的 Codex 面板中,第一輪不要讓它直接寫程式碼。先讓它讀專案、拆任務、確認邊界。

可以這樣寫:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
這是一個新建的 Godot 4.x GDScript 專案。

我要製作一個最小的 2D 俯視角射擊遊戲。

請先不要修改檔案。

先完成以下工作:

1. 閱讀 project.godot 和目前目錄結構。
2. 判斷目前專案是否已經配置入口場景。
3. 設計最小可行版本。
4. 把任務拆成每一步都可以單獨執行驗證的小任務。
5. 明確哪些節點應該由我在 Godot 編輯器裡建立。
6. 明確哪些腳本適合由你編寫。
7. 只使用 Godot 4.x API。
8. 不要一次生成完整遊戲。
9. 不要直接編寫複雜的 .tscn 檔案。

等 Codex 分析完,再讓它只做第一項:玩家移動。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
現在只實作玩家移動。

場景結構為:

Player:CharacterBody2D
├─ Sprite2D
└─ CollisionShape2D

腳本路徑:
scripts/player.gd

要求:

- 使用 Input.get_vector
- 使用 move_and_slide
- 使用靜態型別
- 移動速度使用 @export
- 不修改場景節點名稱
- 不實作射擊、生命值或動畫
- 修改後告訴我需要配置哪些 Input Map 動作
- 給出測試步驟

這裡的關鍵是「只做一個功能」。你越早限制範圍,Codex 給出的修改越容易驗證。

推薦開發循環

每次只做一個功能,按下面的節奏推進:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
在 Godot 中建立節點
在 VS Code 中讓 Codex 寫腳本
查看 Git diff
按 F5 執行
把完整錯誤交給 Codex
要求最小修改
執行成功後 Git commit

排錯時可以使用這個提示詞:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
執行時出現以下錯誤:

貼上完整錯誤訊息

請先定位根本原因。

要求:
- 檢查實際節點結構和 NodePath;
- 只做最小修改;
- 不重構無關程式碼;
- 不修改已經正常工作的功能;
- 修改後解釋錯誤為什麼發生。

不要只說「報錯了」。把完整錯誤、場景結構、相關腳本路徑一起給 Codex,它才更容易定位問題。

Codex 權限建議

剛開始使用 Codex 擴充套件時,建議使用普通 Agent 模式。

不要一開始就長期使用 Agent Full Access。普通 Agent 模式已經可以讀取檔案、修改專案並執行允許的命令;Full Access 更適合在你清楚任務邊界後臨時開啟。

起步組合可以固定為:

  • Godot 4.x
  • GDScript
  • VS Code
  • godot-tools
  • Codex
  • Git

不需要先學 C#,也不需要讓 Codex 自動生成整個場景。先在 Godot 中把節點樹搭出來,再讓 Codex 圍繞真實節點結構寫腳本,成功率最高。

记录并分享
使用 Hugo 建立
主題 StackJimmy 設計