Experiment · Browser game

NoMap: memorize the route, then find your way home.

NoMap is a browser game built around spatial memory. The player studies a highlighted route, loses the visual guide, and must navigate back through the city from memory while the game tracks time, wrong turns, distance, and score.

The mechanic

The classic mode uses intersection-to-intersection movement: study the route, then tap a lit junction, swipe, or use keyboard controls to reproduce it. A second version adds curved road shapes and continuous steering, so movement becomes spatial rather than stepwise.

What I built

  • Twelve districts with increasing difficulty and locked/unlocked progression.
  • A daily challenge generated from a deterministic seed, giving players one repeatable map per day.
  • Scoring around memory accuracy, completion time, wrong turns, and travelled distance.
  • Pause, replay, next-level, settings, audio controls, and browser-persisted progress.
  • Two movement models: discrete junction navigation in the classic game and continuous steering in V2.

Front-end architecture

NoMap is built with React, TypeScript, Vite, Tailwind CSS, and Zustand. It has no backend. Game state, persistence, level data, scoring, deterministic random generation, audio, and screen flow are separated into focused modules rather than kept inside one monolithic component.

The rendering is DOM/SVG-oriented rather than a Canvas or WebGL implementation, so this case study does not claim technologies the project does not use.

Interaction and performance

The game supports pointer, swipe, arrow-key, and WASD input. Keeping the game client-only avoids network latency in the core loop, while local persistence lets level progress survive reloads without account infrastructure.

What this experiment demonstrates

NoMap is intentionally secondary to my commercial engineering work, but it demonstrates state-machine thinking, deterministic systems, interaction design, browser input handling, responsive UI work, and the ability to build a complete playable product rather than a static demo.

Related work

For production-oriented work, see SaveHere, my custom WordPress systems, and performance engineering.

Play NoMap

Have a defined problem?

Let’s make the scope real.

Tell me the URL, the current constraint, and what a successful outcome looks like.