leigest519/OpenGame

OpenGame: Open Agentic Coding for Games

OpenGame – 端到端 Web 游戏创建的代理框架

是什么 – OpenGame 是一个开源系统,允许大型语言模型(GameCoder‑27B 代码专用 LLM)从单个自然语言提示生成完整且可玩的 Web 游戏。它结合了专用的 Game Skill(模板选择 + 调试)与 CLI,驱动 LLM,搭建项目,于沙箱中运行,并迭代修复集成错误,直至游戏正常运行。

核心组件

  • Game Skill – 两个子技能:
    • Template Skill:选择合适的引擎/模板(例如 Phaser、three.js、纯 Canvas),并创建稳定的项目骨架。
    • Debug Skill:在无头浏览器中执行生成的游戏,捕获控制台/运行时错误,并要求 LLM 修复,直到构建健康为止。
  • GameCoder‑27B:一个经过游戏引擎 API 微调的 270 亿参数代码专用 LLM,并通过基于可玩性的奖励进行强化。
  • OpenGame‑Bench:一个评估工具,启动生成的游戏,通过脚本化交互驱动,从构建健康度、视觉可用性以及与原始提示的一致性等方面进行评分。
  • CLI (opengame):一个命令行工具(Node 20+),以 headless 模式运行:您输入提示,代理构建游戏,您将获得一个包含 index.html(或开发服务器命令)的文件夹,可直接播放。

典型工作流程

# 1. 安装(需要 Node 20+)
git clone https://github.com/leigest519/OpenGame.git && cd OpenGame
npm install && npm run build && npm link   # 使 `opengame` 可用

# 2. 设置 API 密钥(OpenAI 或兼容服务)用于 LLM,以及您希望使用的任何资产提供者(图像、音频、视频)
export OPENAI_API_KEY=…
export OPENGAME_IMAGE_PROVIDER=tongyi   # 示例
export OPENGAME_IMAGE_API_KEY=…

# 3. 从单次提示生成游戏
mkdir -p games/my-game && cd games/my-game
opengame -p "创建一个使用 WASD 控制、深色主题的贪吃蛇克隆。" --yolo

# 4. 播放
open index.html   # 或运行打印出的 `npm run dev` 命令

--yolo 标志会解除默认的安全防护,允许代理执行 shell 命令,从而自动运行 npm install 或其他构建步骤。

演示画廊 – 仓库附带一个小型完全生成的游戏画廊(漫威复仇者联盟平台游戏、哈利·波特卡牌对战、K.O.F. 问答格斗等)。每个演示均可在项目主页预览、实时运行,或下载为 zip 文件并本地启动:

unzip demo_*.zip && cd demo_*
npm install
npm run dev   # http://localhost:5173

配置 – 设置可通过以下方式提供:

  • settings.json 文件(~/.qwen/settings.json 用于用户级默认值,.qwen/settings.json 用于项目级 – 未来版本中文件夹名将更改为 .opengame)
  • 环境变量(例如 OPENAI_API_KEY、OPENGAME_IMAGE_PROVIDER)
  • CLI 标志

依赖项

  • Node.js ≥ 20
  • Phaser(或其他 HTML5 游戏引擎)用于渲染
  • qwen‑code 运行时(OpenGame 扩展的底层代理框架)

许可证 – 仓库采用 Apache-2.0 许可证(源文件中已注明),允许自由使用、修改和分发。

为何重要 – 大多数现有代码生成代理只能编写孤立的代码片段,但在处理完整游戏的多文件、有状态特性时表现不佳。OpenGame 通过模板搭建、自动调试和游戏专用 LLM 的结合,将代理编程推向构建复杂交互式应用,而不仅仅是单文件脚本。

相关

  • 项目
  • 项目
  • 项目