Describe a game.
Play it.
Ship it.

Cinder is an AI-native 2D game engine for mobile and web. Direct any AI tool that speaks MCP, hot reload in under a frame, scenes that merge in Git. Bring your own AI key.

No spam Direct access to the engine team
my-game / main.ts · edit logPREVIEW
>
↑ describe a game above and watch it build
LIVE · 60 FPS · WebGPUReload: 42ms
What it is

An engine that understands what you're building.

The engines you've used were designed before LLMs existed. Their scenes are binary blobs. Their files don't merge. Their iteration loops take ten seconds. They were not built for the way games will be made in the next decade.

Cinder was. Every file is text. Every system is documented for AI agents to read. Every engine operation is a tool an AI can call. Multiplayer, hot reload, and mobile-first build pipelines from the first commit.

The problems we solve

Seven things that should have been fixed by now.

The pain list every 2D mobile dev knows by heart. Cinder is built around fixing it.

i.

Iteration speed

Domain reloads on older engines lock the editor for 10+ seconds on real projects. We're targeting sub-100ms hot reload for TypeScript code. Edit, save, see it.

100ms
ii.

Multiplayer is a tax

Networking is the perpetually-broken layer of 2D engines. Cinder ships deterministic rollback, snapshot sync, lobbies, and cross-play between mobile and web from your first commit.

Day one
iii.

Scene merge conflicts

Binary and pseudo-binary scene formats turn pull requests into a shouting match. Cinder scenes are line-oriented TOML. Diff them, merge them, review them like real code.

Git-native
iv.

Bloated mobile binaries

Web builds at 50MB, Android at 100MB, all to render a few sprites. Cinder is targeting sub-2MB WASM and sub-10MB Android. Rust + LTO + WASM compression done right.

< 10MB
v.

Battery drain

Most engines redraw at 60Hz even when nothing changed. Dirty-rect tracking, adaptive frame rate, render-on-demand. Your players' phones will thank you.

Adaptive
vi.

AI is bolted on, not built in

Existing engines bolt AI on as a chat panel. Cinder ships an MCP server, project-aware skills, and AI-actionable error messages. Your AI of choice reads your project like a teammate.

MCP-first
vii.

Trust is the missing layer

No per-install fees. No surprise per-seat hikes. No royalties. Free during preview. We focus on engine quality, not creative billing.

Open ethos
+

…and the pricing.

You're paying your AI provider already. Bring your own key. We don't mark up tokens. The engine is free during preview.

BYOK
How we built it

Three layers, each tuned for what it has to do.

Most engines pick one language and bend it to do everything. We don't. The core is built for performance. The gameplay layer is built for iteration. The scene format is built for trust. Three pieces, designed together, ours to keep improving.

Layer 01 · Engine core

Cinder Core

Rust

The renderer, physics, audio, and net stack. Predictable frames on commodity phones, no garbage-collection hitches.

  • One shader language across iOS, Android, web, and desktop
  • Deterministic 2D physics, rollback-ready
  • Low-latency audio with sample-accurate cues
  • No GC pauses, no frame stutters
  • One codebase compiles to every target
Layer 02 · Gameplay code

Cinder Runtime

TypeScript

Where you live every day. Hot-swappable, AI-readable, tied into the running engine without an interpreter penalty in production.

  • Sub-100ms hot reload — your edit lands on the next frame
  • Game state preserved across reloads
  • Type system catches AI mistakes at compile time
  • Massive talent pool — TypeScript, not a custom DSL
  • Compiled and bundled at ship time, not interpreted
Layer 03 · Scenes & data

Cinder Scene

TOML

Your project is a folder of plain text. Mergeable in Git. Editable by AI agents. Readable in five years when you come back to it.

  • Line-oriented diffs — pull requests work like normal code review
  • Stable string IDs — no GUID conflicts breaking teams at 3am
  • Reloads only the affected entities in under 50ms
  • Editable by humans, AI, and CI alike
  • Schemas embedded for tooling and validation
Inside the editor

The editor that understands what you're building.

One window. Live preview is the canvas. AI is ambient, not a chatbot in a corner. Plain-text scenes. Every action one keystroke away.

03aDefault layout· the canvas is the running game
village-rpg / mainiPhone 15 Pro12ms
PROJECT
📁scenes
📄village.toml
📄shop.toml
📁scripts
📄village.lua
📁sprites
LIVE · 60 fps · entity: Hero
INSPECTOR
TopDownActor
Hero
TRANSFORM
Positionx:53
Rotation
SPRITE
Sheethero/walk.png
auto-saved · 38ms
Ready · 4 entities · 1.2 MBreload: 38ms
village-rpg / mainiPhone 15 Pro · 12ms · 142MB
PROJECT
📁scenes
📄village.toml
📄shop.toml
📁scripts
📄village.lua
📁sprites
LIVE · 60 fps · entity: Hero
INSPECTOR
TopDownActor
Hero
TRANSFORM
Positionx:432 y:310
Rotation
SPRITE
Sheethero/walk.png
Ready · 4 entities · 1.2 MBreload: 38ms
03bSprite generation· palette-locked, frame-by-frame
sprites/hero · ~$0.04 / 8 frames
PROMPT
a hero with brown hair, walk down
PREVIEW · 8/8 frames
~$0.04
FRAMES
VARIATIONS
03cDiff review· per-file approve / reject
4 files · Sonnet 4.6 · $0.038 spent
scripts/fishing.luaNEW
scenes/lake.tomlMOD
caps/Fishing.tomlNEW
sprites/rod.pngNEW
scenes/lake.tomlMODIFIED
[entity.fisherman]
- position = [4.21, 1.83]
+ position = [4.21, 2.40]
+ [entity.fishing_rod]
+ sprite = "rod.png"
Adds Minigame.Fishing capability with rare-drop logic.
03d⌘K palette· selection-scoped AI from anywhere
Make this enemy faster and tougherGoblin · entity⌘K
AI · RUN ON SELECTION
Generate plan: make this enemy faster…≈ $0.04 ↵
RECENT PROMPTS
Add fishing minigame to lake tile2h ago
Make wizard sprite with purple robesyesterday
CAPABILITIES
Minigame · FishingGenerate one →
A day with Cinder

From idea to playable game in four steps.

01

cinder new

One CLI command scaffolds a TypeScript project with example scenes, a SKILL.md for Claude Code, and your dev preview window already open.

02

Describe

Open Claude Code or Codex. Tell it what you want. Cinder's MCP server lets your AI agent spawn entities, edit scenes, and run tests directly.

03

Iterate

Save a file, see the change in 100ms. Tweak a value, see the scene reload in 50ms. Hot reload that actually feels instant — like Flutter, but for games.

04

Ship

cinder build —target=android. Get a signed APK. Or WASM for the web. Or IPA for iOS. One codebase. Three targets. No magic.

AI is ambient

Not a chatbot in the corner.

Other engines bolted AI on as a chat panel. Cinder shows AI at the point of intent — six surfaces, one keystroke each. Hover any card to see it work.

01Empty-state invitation

The blank canvas is itself the AI prompt.

Describe what you want
• a top-down RPG with fishing• a roguelike with 5 enemies
02Hover ? chip

Selection-scoped Q&A on any entity.

ENTITIES
Hero
Goblin
Lake_NPC
?ask AI·regenerate·explain
03Right-click ✨ menu

Regenerate variations on the spot — never leave the asset.

SPRITE · hero/walk_down.pngright-click ↗
Right-click any sprite for AI tools
Generate · regenerate · swap palette
04Inline ✨ on selection

Paint by description. Select a region, ask for a tilemap.

TILEMAP · forest.toml
8 × 5 · 40 tiles
05Diagnostic 🪄 quick-fix

The error is the input. Click the red squiggle, ask AI to fix it.

player.lua⚠ 1 error
42 jump(p) {
43 p.velocityYY = -800
44 }
velocityYY does not exist
did you mean `velocityY`?
06External MCP

One MCP server. Every AI tool. Bring whichever you already pay for.

ANY AI TOOL → CINDER MCP
Claude Code
Codex
Cursor
Qwen / GLM
CinderMCP
Bring any AI

Works with the AI you already pay for.

MCP-first. Whatever AI tool you're already paying for, point it at the Cinder MCP server and it works. Your subscription powers your authoring. We charge you nothing for tokens.

Claude Code
Codex
Cursor
Cody
Gemini CLI
Continue.dev
Zed
Windsurf
Qwen Code
GLM Coder
DeepSeek
Kimi

Cost flexibility

Switch providers as inference prices fall. Pay for the tier that fits your project; we don't lock you into anyone's pricing curve.

Geographic access

Pick a regional model that works for your billing and latency. We don't gate the engine to any one provider's region or payment processor.

Future-proof

Today's leading model isn't tomorrow's. Ride every provider's improvements without renegotiating contracts.

Five iteration layers

Each loop ~10× faster than the one above it.

Game development is a stack of feedback loops. The editor's job: never block any of them. Cinder's iteration model is React-Fast-Refresh at the bottom, full project scaffolds at the top, and four equally fluid layers in between.

L1
Hot reload
<100ms

Edit a TS file, save — change is in the next frame, world state preserved.

hundreds × per session
L2
Inline AI
<5s

Cmd-K on a selection · Plan → Diff applied without a context switch.

dozens × per session
L3
Plan → Diff
~3min

AI proposes a multi-file change. You approve it per-file. Single git commit.

~10 × per session
L4
Device swap
<2s

Click the device chip · re-renders against iPhone 15 Pro / Pixel 8 / Web.

few × per session
L5
Capability templates
<30s

Drop in a Tilemap, TopDownActor, Minigame.Fishing — full-genre scaffold.

few × per project
Team workflow

Mergeable scenes. Reviewable AI commits.

Picture two devs touching the same scene at the same time.

On the legacy side, the scene file is a pseudo-binary blob with machine-generated GUIDs in every line. Both edits look identical to git. The merge tool gives up. Someone redoes their work by hand at 3am. Cinder is line-oriented TOML with stable string IDs. The diff reads like normal code. Git auto-merges it. Reviewers leave comments on the actual lines that changed. AI agents commit each run as one audited commit so you can revert any of them in one click.

LEGACY · same edit, binary scene
<<<<<<< HEAD
m_LocalPosition: {x: 4.21, y: 1.83, z: 0}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
fileID: 8732419281729192
=======
m_LocalPosition: {x: 4.21, y: 2.40, z: 0}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
fileID: 1844239917401290
>>>>>>> feature/lake
Auto-generated IDs collide · resolves manually · whole scene file regenerated
CINDER · lake.toml
[entity.fisherman]
capability = "DialogTree"
- position = [4.21, 1.83]
+ position = [4.21, 2.40]
rotation = 0
+ [entity.fishing_rod]
+ sprite = "rod.png"
+ parent = "fisherman"
Stable string IDs · git auto-merges · review like a code PR
History

Every AI run is one git commit. Auditable. Revertable.

HISTORYAll ▾
AI · Add fishing minigame2m ago
4 files · approved
✏️
You · edit player.lua14m ago
+12 −3
AI · Generate hero sprite (8 frames)47m ago
3 files · approved
AI · Build village layout1d ago
22 files · approved
Mobile + multiplayer

Targets you can swap. Multiplayer that ships.

Cinder authors against the device. The composite chip surfaces frame time, draw calls, memory, and APK size for whichever target you've picked. Multiplayer is in the engine from your first commit — rollback netcode, snapshot sync, cross-play mobile↔web.

Device chip · always visible
📱iPhone 15 Pro·60 fps·142 MB·47 draw
Frame time
12 / 16ms
Draw calls
47 / 200
Texture mem
189 / 256MB
APK size
8.4 / 25MB
Cinder · Android target
< 10 MB
vs
Typical 2D engine
50 MB+
Multiplayer · day one
P1 sees0·0first to 9 winsyoupeer
34ms
rollback
P2 sees0·0first to 9 winsyoupeer
NETWORK / 4 LINES
const room = await Net.createRoom("fishing-derby")
Net.replicate(player, ["position", "velocity"])
Net.onPlayerJoin((p) => world.spawn(p))
ggrs rollbackcross-play mobile ↔ webBYO server or hosted
During preview

Free during
preview.

Bring your own AI.

Cinder is free to use while we're in preview — and preview will run for a while. We're focused on getting the engine right; pricing comes later, when there's something worth paying for. For now: download, build, ship. Bring whichever AI tool you already pay for.

Get on the list

Make the game you can describe.

Get early access while we're in preview. Direct line to the engine team. We'll open up the alpha gradually — first names off the list go in first.

347
Devs on waitlist
Q1
Preview · 2027
Questions

The honest FAQ.

Is this another generic engine?

No. We're not chasing AAA-3D, the open-source generalist seat, or the AAA-cinematic crowd. Cinder is a focused 2D engine for mobile and web with AI-native authoring as the killer feature. We win on a different axis.

When will it ship?

Engine core MVP early in preview (rendering, scenes, hot reload, Android + web). MCP server and editor follow shortly after. Multiplayer and iOS later. A flagship F2P game shipped on Cinder by the end of preview — built in the engine, on a real store, monetized. Specifics on the public roadmap as we lock them in.

What does it cost?

Free to use during preview. Optional paid services (cloud builds, hosted multiplayer, marketplace) come later, when they're worth paying for. Never per-install. Never royalties on your game.

Why bring-your-own AI key?

Because you're already paying your AI provider. We're not going to mark up tokens. Your subscription powers your authoring. Our value is the integration depth — the MCP server, the project skills, the engine conventions that let your AI agent work intelligently inside your project.

Do I need to know Rust?

No. You write TypeScript. The core is in Rust under the hood — that's our problem, not yours. You only touch Rust if you want to extend the engine itself or write a hot-path optimization. Most game developers will never need to.

Why should I trust you?

You shouldn't, yet. Trust is earned. Pricing terms will be in writing when there's anything to charge for. The roadmap is public. Get on the waitlist and watch us ship.