leigest519/OpenGame
OpenGame: Open Agentic Coding for Games
OpenGame – エンドツーエンドWebゲーム作成のエージェントフレームワーク
何であるか – OpenGameは、大規模言語モデル(GameCoder‑27B というコード専用LLM)を用いて、単一の自然言語プロンプトから完全でプレイ可能なWebゲームを生成するオープンソースシステムです。専門的なGame Skill(テンプレート選択+デバッグ)と、LLMを制御するCLIを組み合わせ、プロジェクトをスケルトン化し、サンドボックス内で実行し、統合エラーを反復的に修正してゲームが正常に動作するまで進めます。
主なコンポーネント
- Game Skill – 2つのサブスキル:
- Template Skill: 適切なエンジン/テンプレート(例: Phaser, three.js, プレーンキャンバス)を選択し、安定したプロジェクトの骨組みを作成。
- Debug Skill: 生成されたゲームをヘッドレスブラウザで実行し、コンソール/実行時エラーをキャプチャし、LLMに修正を依頼してビルドが健全になるまで繰り返し修復。
- GameCoder‑27B – ゲームエンジンAPIで微調整された270億パラメータのコード中心LLMで、プレイ可能성을基準とした報酬で強化されています。
- OpenGame‑Bench – 生成されたゲームを起動し、スクリプトによる操作を実行し、ビルド健全性、視覚的使いやすさ、元のプロンプトとの整合性の点でスコアリングする評価ハーネス。
- CLI (
opengame) – Node 20+で動作するコマンドラインツール(ヘッドレスモード):プロンプトを入力するとエージェントがゲームを構築し、index.html(または開発サーバー起動コマンド)を含むフォルダを出力してプレイ可能にします。
一般的なワークフロー
# 1. インストール(Node 20+必須)
git clone https://github.com/leigest519/OpenGame.git && cd OpenGame
npm install && npm run build && npm link # `opengame`が利用可能に
# 2. LLMおよびアセットプロバイダー(画像、音声、動画など)のAPIキーを設定
export OPENAI_API_KEY=…
export OPENGAME_IMAGE_PROVIDER=tongyi # 例
export OPENGAME_IMAGE_API_KEY=…
# 3. 1ショットプロンプトからゲームを生成
mkdir -p games/my-game && cd games/my-game
opengame -p "WASDキーで操作するスネークのクローンを、ダークテーマで作成してください。" --yolo
# 4. プレイ
open index.html # または出力された `npm run dev` コマンドを実行
--yoloフラグは、シェルコマンドの実行をブロックするデフォルトのセキュリティガードを解除し、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の組み合わせにより、単なる単一ファイルスクリプトではなく、複雑なインタラクティブアプリケーションの構築へとエージェントプログラミングを進化させています。
関連
- プロジェクト
- プロジェクト
- プロジェクト