Sandbox
@striderZA/OpenCodeGameStudios

Game development harness for OpenCode and Pi

OpenCode Game Studios is a structured workflow system for building games with coding agents. It ships coordinated agents, slash commands, rules, plugins, and pluggable modules so your agent can move through concept, design, implementation, testing, and release in a more consistent way.

85 stars8 forksJavaScriptUpdated 1mo ago
Who it's for

Builders who want agent-led game development to follow a repeatable workflow across planning, coding, art, QA, and release.

What it delivers

You can run game projects with reusable agent workflows instead of starting every session from scratch.

What it does

Coordinated agent team

Provides 52 agents with defined responsibilities and delegation paths, from creative direction to engine specialists.

Slash command workflow

Ships 77 commands that route you into specific game-dev tasks such as brainstorming, review, onboarding, and launch checks.

Pluggable theme modules

Lets you install only the parts you need, such as core, art, design, programming, QA, release, and engine-specific modules.

OpenCode plugins

Includes TypeScript plugins for session lifecycle handling, template drift detection, and changelog generation.

Pi compatibility layer

Bundles Pi extensions so the same canonical content can load in Pi sessions.

Workflow validation tests

Adds tests for agents, workflows, plugins, and parity checks to catch broken references and process gaps.

How to get it

  1. 1Run
    opencode
  2. 2Run
    pi

README

OpenCode Game Studios

OpenCode Game Studios Banner

⚡ Evolved from Claude Code Game Studios (CCGS) — now a standalone framework supporting both OpenCode and Pi coding agents.

License Agents Skills Commands Hooks Tests Built for OpenCode Pi Compatible


📑 Table of Contents


💡 Motivation

Game development is a multi-disciplinary process — design, writing, architecture, programming, art, audio, QA, release — that's hard to coordinate with AI assistants in ad-hoc chat sessions. OpenCode Game Studios provides a structured framework for the full game lifecycle:

  • Pre-workflow exploration — Rapidly prototype 2-4 ideas with zero commitment before choosing a development workflow
  • Design-first pipeline — Brainstorm → systems map → section-by-section GDDs → cross-GDD review, before any code is written
  • Phase gates — Formal checkpoints between phases with PASS/CONCERNS/FAIL verdicts that prevent advancing with gaps
  • Workflow selection — Choose Hybrid (lightweight discovery then production) or Full OCGS (process-heavy from day one), depending on team size and project maturity
  • 52 coordinated agents — From creative director to engine specialists, each with defined responsibilities, delegation maps, and strict domain boundaries
  • 77 slash commands — Route through the right skill every time, from /concept-brainstorm to /launch-checklist

This project evolved from CCGS and runs on OpenCode and Pi.


⚠️ Active Development — This is a living framework. Things will break, change, and improve. Report bugs at github.com/striderZA/OpenCodeGameStudios/issues.


📊 Port Status

ComponentCCGS (Claude Code)OpenCodePiStatus
🤖 Agents49 agents (.claude/agents/)52 agents (.agents/agents/)52 agents (.agents/agents/)
⌨️ Skills72 skills (.claude/skills/)77 skills (.agents/skills/)77 skills (.agents/skills/)✅ +5
⌨️ Commands77 commands (.agents/commands/)→ prompt templates✅ New
🔗 Plugins12 bash hooks (.claude/hooks/)3 TS plugins (.opencode/plugins/)7 Pi extensions (.pi/extensions/)158 tests
📏 Rules11 rule files (.claude/rules/)11 rule files (.agents/rules/)11 rule files (.agents/rules/)
⚙️ ConfigCLAUDE.md + .claude/settings.jsonAGENTS.md + opencode.jsonAGENTS.md + .pi/settings.json

🚀 Quick Start

OpenCode

opencode

Windows users: .opencode/{agents,commands,skills,rules} are git symlinks and require core.symlinks=true (+ Developer Mode) to check out correctly — see Known Issues if / shows no commands.

Type / to browse all 77 skills and 54 commands, or /start for onboarding.

Pi

pi

All OCGS skills, commands, and agents load automatically through Pi extensions. See docs/pi-compatibility.md for setup details.

🎮 Demo Game

See OCGS-Pong — a complete Pong game built entirely with this toolchain. Demonstrates the full workflow from concept through implementation using OCGS agents and skills.


🧩 Modular Framework

The framework is partitioned into 22 pluggable theme modules. Only install what you need for your project:

ModuleDescription
coreFramework skeleton — directors, onboarding, /start, /help (required)
artAseprite MCP, art bible, asset specs, art generation
designGame mechanics, systems design, combat, balance, playtesting
architectureTechnical planning, ADRs, architecture review
storiesEpics, stories, dev workflow, code review
programmingGameplay, AI, engine, network agents + coding rules
uiUX design, UI programming, accessibility
audioAudio direction, sound design
narrativeStory, world-building, dialogue
level-designLevel layout, encounter design
qaTesting strategy, bug tracking, profiling, skill testing
releaseRelease management, sprints, changelogs, hotfixes
prototypingRapid prototyping, concept exploration
live-opsPost-launch content, community management
localizationi18n, translation pipeline
engine-godotGodot 4 specialists (GDScript, C#, shaders, GDExtension)
engine-unityUnity specialists (DOTS, shaders, Addressables, UI) + unity-mcp
engine-unrealUnreal Engine 5 specialists (GAS, Blueprint, replication, UMG)
engine-sfml3SFML 3 specialist (Graphics, Audio, Network, Window, System)
engine-raylibRaylib specialist (core, rlgl, raudio, raymath, raygui)
engine-bevyBevy specialist (ECS, 2D/3D rendering, bevy_ui, assets, audio)
dataData file conventions and validation
# Install modules
node .opencode/modules/install.mjs add core
node .opencode/modules/install.mjs add engine-godot art design qa

# List all available and installed modules
node .opencode/modules/install.mjs list

# See module details
node .opencode/modules/install.mjs info core

# Remove a module (preserves user-modified files)
node .opencode/modules/install.mjs remove art

Module sources live in .agents/modules/<name>/ and are copied into the framework directories on install. User-modified files are detected during removal and left in place.


🔌 Recommended Plugins

These plugins enhance the OpenCode experience and are recommended for all game development sessions:

PluginPurpose
dynamic-context-purgingDynamic context pruning — automatically manages context window size, indexes content for search, and prevents context overflow during long sessions
SuperpowersEnhanced skill library — provides structured workflows for brainstorming, test-driven development, writing plans, code review, and parallel agent dispatch

OpenCode: Add to your opencode.json:

{
  "plugin": [
    "./.opencode/plugins/ccgs-hooks.ts",
    "PLUGIN_NAME"
  ]
}

Pi: OCGS Pi extensions are bundled in .pi/extensions/ and auto-discovered on startup. See docs/pi-extensions.md for details.


🗺️ Key Mappings

CCGS (Claude Code)OpenCodePi
.claude/skills/*.md.agents/skills/*.md.agents/skills/*.md
.claude/agents/*.md.agents/agents/*.md.agents/agents/*.md
.claude/hooks/*.sh.opencode/plugins/ccgs-hooks.ts.pi/extensions/
.claude/rules/*.md.agents/rules/*.md.agents/rules/*.md
CLAUDE.mdAGENTS.mdAGENTS.md
.claude/settings.jsonopencode.json.pi/settings.json

🧠 Model Mapping

CCGSOpenCode
opus 🐙kimi-k2.6
sonnet 🖋️qwen3.6-plus
haiku 🍃deepseek-v4-flash

🎯 Model Assignment Strategy

TierModelAgentsRationale
Directors (Tier 1)opencode-go/kimi-k2.63 (creative-director, technical-director, producer)Heaviest model for strategic planning, architecture decisions, and cross-team coordination
Workhorses (Tier 2-3)opencode-go/qwen3.6-plus43 (all other agents)Balanced model for day-to-day design, implementation, testing, and review tasks
Lightweight (Special)opencode-go/deepseek-v4-flash3 (community-manager, devops-engineer, sound-designer)Fast, low-latency model for simple, repetitive, or always-running agents

Note: Subagents invoked via the task tool inherit the caller's model regardless of their frontmatter model: field. See Known Issues.

The default session model (set via opencode -m) should match the tier of work:

  • opencode -m opencode-go/kimi-k2.6 — director-level sessions
  • opencode -m opencode-go/qwen3.6-plus — general development sessions
  • opencode -m opencode-go/deepseek-v4-flash — quick QA or maintenance sessions

🔄 Customizing Models

OpenCode supports any model provider — switch the studio to your preferred models, including local ones, with a single command.

Quick switch

# Preview the change first
node utils/assign-models.js --dry-run --map '{
  "opencode-go/kimi-k2.6":         "anthropic/claude-opus-4",
  "opencode-go/qwen3.6-plus":      "openai/gpt-4o",
  "opencode-go/deepseek-v4-flash": "ollama/llama3.2"
}'

# Apply it
node utils/assign-models.js --map '{
  "opencode-go/kimi-k2.6":         "anthropic/claude-opus-4",
  "opencode-go/qwen3.6-plus":      "openai/gpt-4o",
  "opencode-go/deepseek-v4-flash": "ollama/llama3.2"
}'

Or save your mapping to a JSON file and refer to it:

node utils/assign-models.js --config my-models.json

Provider examples

ProviderModel ID FormatExample
OpenCode (default)opencode-go/<model>opencode-go/qwen3.6-plus
Anthropic Claudeanthropic/<model>anthropic/claude-opus-4, anthropic/claude-sonnet-4
OpenAIopenai/<model>openai/gpt-4o, openai/o3
Google Geminigoogle/<model>google/gemini-2.5-pro
Ollama (local)ollama/<model>ollama/llama3.2, ollama/mistral
OpenAI-compatible<endpoint>/<model>http://localhost:11434/v1/llama3.2

Tip: Run opencode models to list all models available through your configured providers. See the OpenCode provider docs for setup instructions.


📁 Directory Tree

/
├── AGENTS.md                  📋 Project configuration
├── opencode.json              ⚙️ OpenCode config (permissions, plugins)
├── .pi/                       ⚙️ Pi config (extensions, settings)
├── .agents/                   📦 Canonical content (harness-agnostic)
│   ├── agents/                🤖 52 agent definitions
│   ├── skills/                🛠️ 77 skill workflows
│   ├── commands/              ⌨️ 77 slash commands
│   ├── rules/                 📏 11 coding standards
│   └── modules/               🧩 22 pluggable theme modules
│       ├── ...                22 modules total
├── .opencode/                 ⚙️ OpenCode-specific (plugins, config)
│   ├── commands/ → .agents/commands/ (symlink)
│   ├── agents/ → .agents/agents/     (symlink)
│   ├── skills/ → .agents/skills/     (symlink)
│   ├── rules/ → .agents/rules/       (symlink)
│   ├── plugins/
│   │   ├── ccgs-hooks.ts      🔗 Session lifecycle, validation
│   │   ├── drift-detector.ts  🔍 Template drift detection
│   │   ├── changelog-generator.ts 📝 Changelog generation
│   │   └── tests/             🧪 18 test suites (158 tests)
│   └── modules/
│       ├── install.mjs        CLI: add/remove/list modules
│       ├── installed.json     Module manifest
│       └── ...                22 module sources
├── design/                    🎨 Game design documents
├── .pi/                        ⚙️ Pi-specific extensions & settings
│   └── extensions/            🧩 Pi extensions (ocgs-core, delegation, question, etc.)
├── docs/
│   ├── CONTRIBUTING.md        📖 Framework contribution guide
│   ├── authoring-agents.md    🤖 Agent authoring guide
│   ├── authoring-skills.md    🛠️ Skill authoring guide
│   ├── pi-compatibility.md    🔧 Pi setup guide
│   ├── pi-extensions.md       🧩 Pi extension reference
│   ├── pi-workflow.md         🔄 Pi workflow differences
│   ├── framework/             🏛️ OCGS framework reference docs & templates
│   ├── architecture/          🏗️ ADRs
│   └── engine-reference/      📚 Engine API reference
├── tests/
│   ├── agents/                🔍 Agent framework validation
│   ├── workflow/              🔄 Workflow integrity (refs, paths, gates, invariants)
│   ├── [game-specific tests]
│   └── [spawned by test-setup]
├── production/                📊 Sprint plans, session logs
├── utils/                     🔧 Developer utilities
│   └── assign-models.js       🎯 Batch-model assignment tool
└── ...                        🎮 Game source & assets

🔌 Plugin Architecture

The OCGS plugin system is documented in .opencode/plugins/README.md. Three TypeScript plugins implement the original 12 CCGS bash hooks plus extensions:

PluginPurpose
ccgs-hooks.tsSession lifecycle, commit validation, asset checks, agent logging, gap detection
drift-detector.tsDetects agent/skill/command template drift on session start and file writes
changelog-generator.tsGenerates CHANGELOG.md from conventional commits since last tag

Hooks Mapping

All 12 bash hooks from CCGS ported to ccgs-hooks.ts:

#Bash Hook🔌 OpenCode Event🧪 Tests
1session-start.shsession.created18
2session-stop.shsession.idle / server.instance.disposed10
3detect-gaps.shsession.created15
4log-agent.shtool.execute.before (task)5
5log-agent-stop.shtool.execute.after (task)4
6validate-assets.shtool.execute.after16
7validate-commit.shtool.execute.before (git commit)17
8validate-push.shtool.execute.before (git push)13
9validate-skill-change.shtool.execute.after12
10pre-compact.shexperimental.session.compacting14
11post-compact.shexperimental.compaction.autocontinue5
12notify.shUtility (showNotification)

🧪 Run plugin test suite: npm run test:plugins (needs the tsx ESM loader — see CONTRIBUTING.md) 🧪 Run workflow integrity suite: node tests/workflow/run-all.mjs 🧪 Run e2e parity suite: npm run test:parity (requires both the opencode and pi CLIs installed)

Contributing to the Framework

See CONTRIBUTING.md for guides on adding agents, skills, commands, rules, and plugins.


🏗️ Studio Hierarchy

🎬  creative-director    🔧  technical-director    🎯  producer
├── 🎨  art-director        ├── 💻  lead-programmer
├── 🎵  audio-director      ├── 🧪  qa-lead
├── 📖  narrative-director  ├── 📦  release-manager
├── 🎮  game-designer       └── 🌍  localization-lead
└── ... (49 agents total)

🐛 Known Issues

IssueImpactWorkaround
Subagent model resolution via task — Agent model: frontmatter fails with ProviderModelNotFoundError for models that work when used directly via opencode -m <model>. Subagents inherit the caller's model per OpenCode docs, so the frontmatter model may only apply when the agent runs as a primary session.Agents using opencode-go/kimi-k2.6 and opencode-go/deepseek-v4-flash as subagents via taskUse opencode-go/qwen3.6-plus for subagent-heavy workflows, or start dedicated sessions with opencode -m <model> for director-level agents. Root cause being tracked upstream in OpenCode.
.opencode/* symlinks inert on Windows.opencode/{agents,commands,skills,rules} are committed as git symlinks. With the Windows default core.symlinks=false, git checks them out as plain-text stub files instead of real symlinks, so OpenCode's /-command and skill/agent discovery finds nothing.OpenCode is non-functional on a stock Windows clone (Pi is unaffected — it reads .agents/ directly)git config --global core.symlinks true + enable Developer Mode, then re-clone; or run node tools/fix-opencode-symlinks.mjs to repair an existing checkout.

📄 License

MIT — Free for any use.


Built with ❤️ for AI-assisted game development
OpenCode Game Studios · CCGS Port
MIT License · Free for any use

☕ Support development

Files in the repo

Repository payload33 top-level entries
  • .agents
  • .claude
  • .cursor
  • .github
  • .opencode
  • .pi
  • assets
  • design
  • docs
  • production
  • prototypes
  • skill-testing-framework
  • src
  • tests
  • tools
  • utils
  • .editorconfig
  • .gitattributes
  • .gitignore
  • .gitmodules
  • AGENTS.md
  • CHANGELOG_INTERNAL.md
  • CHANGELOG.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • LICENSE
  • module-validation-output.txt
  • opencode.json
  • package-lock.json
  • package.json
  • README.md
  • SECURITY.md
  • UPGRADING.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More harnesses

affaan-m/
ECC
affaan-m/ECCHarnesses

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

258k
ruvnet/rufloHarnesses

🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated

72k

Practical patterns, starters & CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.

11k