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 的结合,将代理编程推向构建复杂交互式应用,而不仅仅是单文件脚本。
相关
- 项目
- 项目
- 项目