Case study · In development · 2026

AEON

A god simulator built completely from scratch — no engine, no libraries. Civilizations rise, war, worship, and fall on their own; you raise mountains, bless harvests, and unleash the heavens.

None — built from scratch

Game engine

Birth-only souls

Population

Stone Age → Space

Era arc

6,687 lines

Simulation code

Year 216 — five realms, 22 cities, a plague and an earthquake in the same season
Fig. 01 — Year 216 — five realms, 22 cities, a plague and an earthquake in the same season

01

The premise

Every world starts as empty land and exactly two people. There is no scripted spawning: population grows only through birth, tribes form when kin-groups settle fertile land, and empires emerge organically from there — with procedural names, heraldry that ennobles with rank, and dynasties that pass power by blood succession. A 'Chronicle of Ages' records the history the world writes for itself: first city, first mine, first war, living legends chronicled on death.

02

What I'm trying to achieve

The design principle that reshaped the whole project is causality over spectacle. Midway through, the sim felt hollow — 'there is no real reason why anything is happening' — so everything was rebuilt around cause and effect. When a performance win abstracted the population to 100k statistical souls, it severed the link between events and people, and I reverted it: integrity over raw scale. The current goal is turning a deep simulation into an actual game — a resource economy, meaningful stakes, and an endgame where a civilization ascends to the stars.

03

A living world

Wars end through exhaustion, treaties, and annexation rather than running forever. Village limits, loyalty and rebellion, tech diffusion, and imperial decadence form negative-feedback loops so no empire dominates permanently. Sixteen resources drive scarcity, trade routes, and wars; faiths spread, schism, and fight holy wars; seasons and climate cause famines and migrations; disasters chain causally — a plague follows the war that crowded the refugees into one city.

04

Engineering

No engine, no runtime dependencies — an Electron shell around hand-written HTML5 Canvas 2D and a from-scratch WebGL2 instanced renderer that draws entire crowds in a single draw call. Audio is fully synthesized with the Web Audio API (no audio files). Terrain is procedurally baked with dual-grid coastline smoothing; portraits, skylines, and coats of arms are procedural SVG that evolve with era and rank. 6,687 lines of simulation across 17 modules.

AEON title screen — raise mountains, breathe life into the dust
Fig. 02 — AEON title screen — raise mountains, breathe life into the dust

Stack

Vanilla JavaScriptCanvas 2DWebGL2Web AudioElectron