Inspiration
SPACE COMMAND started with one question: how much game can be built without filling the package with pre-authored assets? Instead of shipping a universe, it ships rules. Deterministic seeds, procedural geometry, canvas-drawn textures and compact game logic reconstruct every battlefield at runtime. 35 MB allowed. I chose math.
What it does
SPACE COMMAND is a portrait-first, seeded planetary Tower Defense & Strategy prototype. You are the battlefield commander: you spend ENERGY, place and upgrade defenses, choose targeting priorities, and decide when to trigger the next wave. Combat runs autonomously while you think.
Six planets unlock in order across a seeded galaxy, each with its own environment and pressure event — solar flare, whiteout, ion blackout, spore surge, time fracture. Seven build options cover the roster: PULSE, FROST, NOVA, MISSILE, DRONES, BARRICADE, and FOUNDATION, which pours new build territory onto the map and changes where a defense can exist at all. Enemies arrive as ground and air threats with distinct roles, and every planet ends with a commander who enters inside a formation of escorts. The Command Core has shield and hull; lose both and the planet falls. Commander XP persists across sessions.
Planet 0, GENESIS, is a guided training operation that teaches the full loop by having you play it — including FOUNDATION.
How I built it
Self-contained Three.js / HTML5, readable and unminified, with Three.js vendored locally and zero external network requests. Enemy chassis are lathe geometry, textures are drawn on canvas at load, and the whole game is about 1.2 MB.
The workflow is AI-directed engineering. I set the design, constraints, architecture and gameplay decisions, tested every build on a real iPhone, and iterated; AI wrote and patched the implementation, built headless Playwright harnesses that play every planet end to end, and documented the process. Each build layer is appended, never rewritten, so the runtime carries its own history — and the runtime itself is what gets committed and hash-verified, not the scripts that produced it.
Challenges I ran into
Procedural variety had to change decisions, not just appearance — a path that reads differently should also defend differently. Mobile is unforgiving: the build palette overflowed, tower cards covered the board, controls stacked on the same pixels, and every legibility gain broke a container somewhere else.
The hardest lesson was that source code lies about behaviour. Only physical play and instrumented runs told the truth: a tower type had silently stopped dealing damage behind a cosmetic effect layer; a slow effect could freeze an enemy forever and make a wave impossible to clear; a git branch named for a version did not contain that version's bytes. Each was found by measurement, not by reading.
Accomplishments that I'm proud of
Real players exposed that the original game failed to teach its most important systems — nobody discovered BARRICADE or FOUNDATION on their own. GENESIS exists because of that feedback, and it now carries a first-time player through every defense and into the galaxy. The full loop — build, survive, win, lose, retry, advance — is verified by automated end-to-end campaign playthroughs and on-device testing. The public beta collects player feedback directly and posts a live changelog.
What I learned
One authoritative next action at a time. Discoverability is a layout problem before it is a tutorial problem. Legibility changes must come with layout changes. And a prototype that can be verified — by hash, by harness, by hand — moves faster than one that is merely believed to work.
What's next for SPACE COMMAND
Enemy routing that reads like an obstacle course, sharper commander telegraphs, clearer per-defense combat feedback, and tuning of the final world. Long term: a galaxy where compact rules keep generating strategically distinct battlefields without an authored-world download.
The universe is not downloaded — it uncurls.
Log in or sign up for Devpost to join the conversation.