VibeGame:一個高階宣告式引擎,用於 AI 輔助的遊戲開發
概述
Hugging Face 研究員 Dylan Ebert 推出了 VibeGame,一個專為 AI 輔助遊戲開發(或稱「vibe coding」)設計的高階宣告式遊戲引擎。VibeGame 透過提供精簡、模組化的架構與 AI 模型易於產生與理解的語法,解決了隨著專案上下文增長而導致的 AI 效能衰退問題。
「vibe coding」遊戲的挑戰
此處將 vibe coding 定義為使用 AI 作為高階程式語言來構建軟體。雖然此方法讓使用者無需深入的程式知識即可創建遊戲,但它面臨一項重要的技術挑戰:上下文管理。
隨著遊戲專案規模擴大,大型語言模型(LLM)的上下文窗口會被填滿,導致效能下降。為了緩解此問題,Ebert 開發了 Shallot,一個輕量且不帶偏見的 Claude Code 上下文管理系統,使用兩個主要指令:
/peel [prompt]:在對話開始時載入上下文。/nourish:在對話結束時更新上下文。
遊戲開發平台的比較分析
在開發 VibeGame 之前,我們探索了三種不同的技術堆疊,以確定哪種環境最適合用於簡單增量遊戲的 AI 驅動開發:
| 平台 | AI 效能 | 抽象層級 | 上下文管理 | 開源 |
|---|---|---|---|---|
| Roblox | 高 | 非常高 | 低 | 否 |
| Unity | 低 | 中等 | 中等 | 否 |
| Web Stack | 非常高 | 低 | 非常高 | 是 |
主要發現:
- Roblox MCP:提供了極佳的抽象與 AI 理解能力,但受限於「封閉花園」以及缺乏基於檔案的上下文管理。
- Unity MCP:提供完整的檔案系統存取,但因引擎複雜度與頻繁的版本變更,導致 AI 效能不穩定。
- Web Stack(three.js、rapier、bitecs):因龐大的訓練資料展現最高的 AI 能力,但開發者必須先從頭構建遊戲引擎才能製作遊戲。
VibeGame 技術架構
VibeGame 結合了 Web 堆疊的 AI 能力與類似 Roblox 平台的高階抽象。它建立於 three.js(渲染)、rapier(物理)與 bitecs(遊戲邏輯)之上。
設計哲學
- 高階抽象:內建物理、渲染與常見機制,以保持程式碼基礎精簡。
- 宣告式語法:使用類 XML 語法定義遊戲物件與屬性,類似 HTML/CSS——這些格式 AI 模型已相當熟練。
- ECS 架構:採用實體-元件-系統(ECS)架構,將資料(元件)與行為(系統)分離,確保模組化與可擴展性。
實作範例
在 VibeGame 中,基本場景以宣告式方式定義,引擎會自動處理玩家、相機與光源:
<world canvas="#game-canvas" sky="#87ceeb">
<!-- Ground -->
<static-part pos="0 -0.5 0" shape="box" size="20 1 20" color="#90ee90"></static-part>
<!-- Ball -->
<dynamic-part pos="-2 4 -3" shape="sphere" size="1" color="#ff4500"></dynamic-part>
</world>
為協助 AI 模型,VibeGame 包含一個 llms.txt 檔案,內含引擎文件,設計用於加入模型的系統提示或初始上下文中。
能力與限制
使用 Claude Code 測試構建增量草地收集遊戲的結果顯示,VibeGame 在以最少領域知識實作核心機制方面表現良好。
然而,作者指出兩個主要的警示:
- 依賴引擎:對於依賴引擎現有支援的遊戲(例如具基本物理的簡易平台遊戲)非常有效。
- 複雜度差距:系統在尚未於引擎實作的複雜功能(如多人遊戲、戰鬥與背包系統)上表現不佳。
未來路線圖
VibeGame 未來的開發將聚焦於兩條主要路徑:
1. 引擎擴充:加入互動、背包、多玩家、綁定網格、動畫與音訊等內建機制。
2. AI 引導:透過引導式提示、對限制更清晰的訊息,以及更豐富的範本與教學資源庫,提升新手體驗。