MCPcopy Index your code
hub / github.com/0x0funky/agent-game-forge

github.com/0x0funky/agent-game-forge @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,253 symbols 2,967 edges 117 files 84 documented · 7%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Agent Game Forge

Local-first, bring-your-own-agent 2D oyun IDE'si.

Direksiyonda Codex veya Claude Code. Bugün Web, yol haritasında Godot ve Unity.

English · Español · Português (Brasil) · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe

stars license status node 20+

🎨 Sprite pipeline'ı agent-sprite-forge tarafından


Agent Game Forge (AGF), bir AI kodlama agent'ının senin için eksiksiz 2D oyunlar inşa etmesine olanak tanıyan açık kaynaklı bir masaüstü IDE'sidir — sprite'lar, parallax arka planlar, fizik, tehlikeler, toplanabilirler, sahne düzenleri — ve agent'ın yanlış yaptıklarını sürükle-bırak ile ince ayar yapabilmen için görsel bir editör sunar. Agent'ı sen seçersin (Codex CLI veya Claude Code) ve image gen'i sen seçersin — kendi API anahtarını getir, ya da Codex CLI'nın yerleşik image gen'ini (GPT-Image2) kullan. Bugün varsayılan çıktı vanilla JS + Canvas (sıfır framework kilitlemesi, herhangi bir tarayıcıda çalışır); Godot 4 ve Unity motor hedefleri ise yol haritasında.


✨ Bir bakışta

  • 🤖 Kendi agent'ını getir — Codex CLI veya Claude Code. Settings'ten değiştir. Canlı olarak.
  • 🎨 Üretim kalitesinde asset pipeline'ı — sprite-sheet chroma-key, çok-aksiyonlu animasyon, 4 katmanlı tileable parallax + despill — hepsi birinci sınıf, sonradan eklenmiş değil.
  • 🖼️ Kendi image gen'ini getir — tercih ettiğin görsel sağlayıcısının API anahtarını sağla, ya da Codex CLI'nın yerleşik image gen'ini (GPT-Image2) kullan. Anahtarlar makinende kalır.
  • 🧱 Görsel sahne editörü — platformları, tehlikeleri, toplanabilirleri, collider'ları sürükle; hitbox overlay'i; Play sekmesine canlı yeniden yükleme.
  • 📦 Yol haritasında çoklu motor — Web (vanilla JS + Canvas) bugün sıfır framework kilitlemesiyle çıkıyor (klasörü GitHub Pages'e yükle, çalışır). Godot 4 ve Unity hedefleri planlanıyor.
  • 💻 Local-first, açık kaynak — daemon + web UI localhost üzerinde; proje dosyaların diskinde kalır; MIT tarzı niyet.
  • 💰 Maliyet şeffaflığı — Settings paneli bugünkü görsel üretim çağrı sayısını ve sağlayıcı başına tahmini $ harcamayı gösterir.

🎬 Demo

Hero shot — AGF penceresi:

AGF ana penceresi

Settings — agent'ını + API anahtarlarını + görsel üretim varsayılanlarını seç:

AGF Settings modalı

Sahne editörü — platformları, tehlikeleri, toplanabilirleri, collider'ları sürükle:

AGF Sahne editörü


🚀 Hızlı başlangıç

Gereksinimler: Node ≥ 20, npm ≥ 10 ve en az biri:

git clone https://github.com/0x0funky/agent-game-forge.git
cd agent-game-forge
npm install
npm run dev

Bu şunları başlatır:

Web URL'ini aç. Dişli simgesine tıkla (sağ üst) → Settings:

  1. Agent CLI — Codex veya Claude Code'u seç (hangisini yüklediysen).
  2. API keys (yalnızca Claude Code yolu için gerekir) — Gemini veya OpenAI anahtarını yapıştır. Daemon bunları ~/.ogf/secrets.json dosyasına yazar (mode 600). Ortam değişkenleri (OPENAI_API_KEY, GEMINI_API_KEY) dosyayı geçersiz kılar.
  3. Image-gen defaults — tercih ettiğin sağlayıcı + modeli seç.

Settings'i kapat. Bir proje klasörü aç. Şuna benzer bir prompt yaz:

"Çatı ve park kapısı seviyelerini içeren, eve dönen bir köpek hakkında side-scroll platformer."

Gönder'e bas. Agent'ın inşa edişini izle. Durduğunda Play'e bas.


🧭 Nasıl çalışır

        ┌──────────────┐    ┌──────────────────────────┐    ┌─────────────┐
Sen ─→  │  Web UI      │ ←→ │  Daemon (Node + SQLite)  │ ←→ │  Agent CLI  │
        │  React canvas│    │  /api/runs, /api/scenes  │    │  (Codex /   │
        │  Scene editor│    │  /api/gen-image (routed) │    │   Claude    │
        └──────────────┘    └──────────────┬───────────┘    │   Code)     │
                                           │                 └─────┬───────┘
                                           ↓                       │
                                    ┌──────┴──────┐                │
                                    │ Gemini /    │ ←──────────────┘
                                    │ OpenAI API  │   (daemon HTTP üzerinden
                                    │ (senin key) │    görsel üretimi)
                                    └─────────────┘

1. Agent ile sohbette konuşursun. Web UI sohbeti stream'ler; SSE her token + tool çağrısını ileri taşır.

2. Agent AGF conventions ve skills'lerini okur. Her projeye .ogf/conventions/ (evrensel + tür bazlı kurallar) ve .agents/skills/ (sprite + map üretim prosedürleri) vendor edilir. Agent recipes'lere uyar — pipeline'ı yeniden icat etmez.

3. Görseller için agent daemon'un /api/gen-image endpoint'ini çağırır (python .agents/tools/gen-image.py veya doğrudan curl aracılığıyla). Daemon, kaydettiğin API anahtarını kullanarak Gemini veya OpenAI'ye yönlendirir. Yerleşik image_gen aracına sahip Codex kullanıcıları bunun yerine onu kullanabilir — her iki yol da eşdeğer PNG'ler üretir.

4. Sahne editörü, agent'ın oluşturduğu aynı JSON dosyalarını okur + yazar. Bir platform sürükle; editör JSON patch'ini commit'ler. Agent'ın görünümünü yenile; güncellemeyi görür.

5. Runtime, projenin kendisidir. Üretilen oyunlar saf JS + Canvas'tır — index.html, src/*.js, data/*.json, assets/. Klasörü GitHub Pages'e yükle. Bitti.


📂 Repo düzeni

open-game-forge/
├── packages/
│   └── contracts/      # paylaşılan TypeScript tipleri: API, events, SceneModel
├── apps/
│   ├── daemon/         # Node.js + Express daemon (port 7621)
│   │   └── src/
│   │       ├── server.ts            # HTTP routes
│   │       ├── codex.ts             # Codex CLI adapter (spawn + stream-json)
│   │       ├── claude-code.ts       # Claude Code adapter (aynı pattern)
│   │       ├── agents.ts            # AgentAdapter dispatcher
│   │       ├── gen-image.ts         # Gemini + OpenAI router
│   │       ├── secrets.ts           # ~/.ogf/secrets.json deposu
│   │       ├── prefs.ts             # ~/.ogf/preferences.json deposu
│   │       ├── web-scene.ts         # JSON level → SceneModel loader
│   │       ├── scenes.ts            # SceneOp applier (move/scale/add/remove)
│   │       └── templates/           # vendor edilmiş skills / conventions / recipes
│   └── web/            # Vite + React UI (port 7620)
│       └── src/
│           ├── App.tsx
│           ├── components/
│           │   ├── SceneEditor.tsx  # Canvas tabanlı sahne editörü
│           │   ├── SettingsModal.tsx
│           │   └── PlayPane.tsx
│           └── lib/api.ts
└── docs/
    ├── architecture.md
    ├── roadmap.md
    └── genre-support.md

🛠️ Kaynaktan derleme

npm install           # workspace kurulumu
npm run build         # build contracts → daemon → web
npm run dev           # üçü için watch modu (daemon tsx üzerinden hot-reload)

Faydalı komutlar:

  • npm -w @ogf/daemon run dev — yalnızca daemon, tsx watch ile
  • npm -w @ogf/web run dev — Vite dev sunucusu
  • npm -w @ogf/contracts run build — contracts paketinin type-check'i

📋 Proje durumu

Tür Durum Notlar
Side-scroll platformer ✅ yayınlandı Parallax pipeline, tehlikeler, toplanabilirler, düşmanlar, çok-seviye, sprite chroma-key
Top-down RPG 🟡 kısmen Foundation seed + recipes; bazı recipes hâlâ olgunlaşıyor
Tower defense / arena 🟡 kısmen Önceki branch'lerden devralındı; cila gerekiyor
Roguelike / Metroidvania 🟡 kısmen Launch sonrası

Motor hedefleri:

Motor Durum Notlar
Web (vanilla JS + Canvas) ✅ varsayılan Aktif olarak geliştiriliyor. Sıfır framework bağımlılığı; klasörü GitHub Pages'e yükle, çalışır.
Godot 4 🟡 legacy + yol haritası Mevcut Godot projeleri hâlâ yüklenip düzenlenebiliyor. Birinci sınıf yeniden yatırım, launch sonrası yol haritasında.
Unity 🚧 planlandı Godot birinci sınıfa ulaştıktan sonra hedeflenecek.

📚 Dokümantasyon


🤝 Katkıda bulunma

Pre-launch aşamasındayız. Kod tabanı PR kabul edebilecek kadar küçük, ancak lütfen kapsamı tartışmak için önce bir issue açın. Şu anda yardım etmenin en iyi yolları:

  • Dene ve hataları bildir — daemon log'u (~/.ogf/claude-code-debug.jsonl veya npm run dev çalıştırdığın shell terminal'in) ile bir issue aç
  • Bir oyun inşa et ve bize göster — README'de öne çıkarmaktan mutluluk duyarız
  • macOS / Linux'ta test et — birincil geliştirme Windows'ta; çapraz platform sorunları muhtemelen pusudadır

🔐 Güvenlik ve veri

  • Kodun makinende kalır. AGF local-first'tür. Daemon 127.0.0.1'e bind olur; seçtiğin AI sağlayıcısına yapılan çağrılar dışında hiçbir şey makinenden çıkmaz.
  • API anahtarları ~/.ogf/secrets.json dosyasında file mode 600 (yalnızca sahip) ile saklanır. Asla git'e girmez, asla AGF log'larında görünmez.
  • Konuşmalar ~/.ogf/ogf.db (SQLite) içinde saklanır. Sıfırlamak için dosyayı sil.

📜 Lisans

Apache License, Version 2.0 altında lisanslanmıştır. Özgürce kullanabilir, değiştirebilir, fork'layabilir ve yayınlayabilirsiniz — ticari ya da değil. Sadece copyright ve lisans bildirimini koruyun.


🙏 Teşekkürler

  • Daemon-and-spawn pattern'i nexu-io/open-design projesinden uyarlanmıştır
  • Sprite üretim pipeline'ı 0x0funky/agent-sprite-forge projesinden uyarlanmıştır
  • Codex CLI + Claude Code ile inşa edildi — evet, bu proje büyük ölçüde sürdüğü agent'lar tarafından yazıldı

Ürün çıkarmayı seven indie oyun geliştiricileri için yapıldı.

Bug bildir · Discussions

Extension points exported contracts — how you extend this code

DeltaState (Interface)
Per-parser state needed to accumulate text/tool deltas across lines.
apps/daemon/src/claude-code.ts
Props (Interface)
Generic JSON Table Editor. * Recognizes array-of-objects (root or first-level field) and renders an * editable grid.
apps/web/src/components/TableEditor.tsx
RectXY (Interface)
(no doc)
packages/contracts/src/ogf-schema.ts
JsonSideScrollCollider (Interface)
Side-scroll convention: `colliders[]` array on the level JSON. * Distinct from `blockers[]` because the entries use `t
apps/daemon/src/colliders.ts
Phase (Interface)
Live progress card for `.ogf/spec.md`'s Phase plan section. * * Re-fetches the file (cheap, < 5 KB typical) whenever
apps/web/src/components/SpecProgressCard.tsx
MapSize (Interface)
(no doc)
packages/contracts/src/ogf-schema.ts
ClaudeCodeRunOptions (Interface)
(no doc)
apps/daemon/src/claude-code.ts
UiTurn (Interface)
(no doc)
apps/web/src/App.tsx

Core symbols most depended-on inside this repo

get
called by 99
apps/daemon/src/runs.ts
jsonFetch
called by 43
apps/web/src/lib/api.ts
readBodyValue
called by 26
apps/daemon/src/tscn-parse.ts
setScene
called by 23
apps/daemon/src/templates/foundation/top-down-rpg/seed/src/scene.js
clamp
called by 21
apps/daemon/src/templates/foundation/top-down-rpg/seed/src/collision.js
asString
called by 19
apps/daemon/src/entities.ts
fmt
called by 18
apps/daemon/src/scene-context.ts
renderMenu
called by 18
apps/daemon/src/templates/foundation/top-down-rpg/seed/src/menu.js

Shape

Function 973
Interface 251
Method 23
Class 6

Languages

TypeScript95%
Python5%

Modules by API surface

apps/web/src/components/SceneEditor.tsx91 symbols
apps/web/src/lib/api.ts63 symbols
packages/contracts/src/api.ts55 symbols
apps/web/src/App.tsx55 symbols
apps/daemon/src/templates/foundation/top-down-rpg/seed/src/progression.js32 symbols
apps/daemon/src/colliders.ts32 symbols
apps/web/src/components/TableEditor.tsx28 symbols
apps/daemon/src/templates/foundation/top-down-rpg/seed/src/battle.js28 symbols
packages/contracts/src/scene.ts27 symbols
packages/contracts/src/ogf-schema.ts26 symbols
apps/daemon/src/scenes.ts25 symbols
apps/daemon/src/web-scene.ts24 symbols

For agents

$ claude mcp add agent-game-forge \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact