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(遊戲邏輯)之上。

設計哲學

  1. 高階抽象:內建物理、渲染與常見機制,以保持程式碼基礎精簡。
  2. 宣告式語法:使用類 XML 語法定義遊戲物件與屬性,類似 HTML/CSS——這些格式 AI 模型已相當熟練。
  3. 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 引導:透過引導式提示、對限制更清晰的訊息,以及更豐富的範本與教學資源庫,提升新手體驗。

Sources