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