In Active Development

Build Worlds.
Tell Stories.

A hand-crafted RPG engine built from scratch — tile maps, living NPCs, branching dialogue, faction politics, and a fully custom content editor, all woven together.

A Complete RPG Foundation

Every layer of a role-playing game — from raw pixels to branching quest lines — designed to work together cohesively rather than bolted on as afterthoughts.

🗺️

Layered Tile Maps

Multi-layer room system with per-layer NPC placement, tile painting, and live canvas preview. Maps resize non-destructively and remember every edit through a branching history system.

World Building
🧙

Instance-Based NPCs

NPCs are first-class world objects — each instance carries its own identity, position, layer, sprite, faction, and dialogue assignment. Templates seed instances; instances live their own lives.

Characters
💬

Branching Dialogue

A full dialogue runtime with nodes, choices, and flags. Conversations can gate on world state, advance quests, and leave lasting marks on the game world — all authored without touching code.

Narrative
⚔️

Abilities & Combat

Data-driven ability definitions let designers craft spells, attacks, and skills without engine changes. The runtime resolves them against the entity-component system in real time.

Gameplay
🏛️

Faction System

Characters and NPCs belong to factions that shape their behavior and relationships. Faction affiliation flows from templates to instances and influences how the world reacts to the player.

Politics
📜

Quest Engine

Quests are authored as structured data — objectives, rewards, and state transitions all live in content files. The runtime tracks progress and drives world reactions without hard-coded story logic.

Story
🎒

Items & Loot Tables

A rich item schema with weighted loot tables that populate treasure dynamically. Every drop can be tuned by designers without touching a single line of engine code.

Economy
✏️

Live Content Editor

A React-powered web editor runs alongside the engine. Edit maps, NPCs, dialogues, items, and quests in a live UI — changes hit the disk instantly and the runtime picks them up seamlessly.

Tooling
🎮

Native C++ Runtime

The game runtime is a hand-written C++ engine using SDL2 — no third-party game framework, no black boxes. Every system, from the tile renderer to the ECS, is owned and understood.

Performance

Every tile tells a story

Maps are built from character-based tile layers that compile directly into the game runtime. The same tile data that renders in the editor is what the C++ engine reads — no export steps, no format conversions. What you see is exactly what the player walks through.


Layers stack transparently: base terrain on the ground floor, decorations above, NPCs floating on whichever layer makes narrative sense. The "All Layers" view shows the complete picture; individual layers can be isolated for precise editing.

Nothing is ever lost

The map editor maintains a full branching history of every change — tile strokes, NPC moves, layer additions, map resizes. Undo and redo navigate the tree freely.


History is persisted across sessions. Reopen the editor and your full undo tree is exactly where you left it, right down to the currently selected step.

Built to be understood

01

Data-Driven Everything

Game content lives in structured JSON — not in code, not in binary blobs. Every system reads from files the editor writes, making iteration instant and fearless.

02

No Abstraction Tax

The engine is written to be read. No framework magic, no engine-within-an-engine. Every line of C++ does exactly what it says and nothing it doesn't.

03

Editor as First-Class Citizen

The content editor is not an afterthought. It was designed alongside the runtime so that what the tool produces is exactly what the game consumes — always.

Chosen with care

Every technology in the stack was chosen because it earns its place — no excess dependencies, no frameworks used as crutches.

C++ 17 SDL 2 CMake React 18 TypeScript Vite Node.js
nginx