All projects
Game Design • Development

Break the Loop

A materialist idle strategy game about the end of infinite growth, free to play in the browser. Players guide a society through its own contradictions, from primitive extraction through imperialism and crisis to a world without scarcity, with each mode of production rewriting which meters and actions matter. NPC nations react to every move, and conflict emerges from economic and diplomatic pressure rather than a menu click.

React
TypeScript
Node.js
Socket.IO
Prisma

Why it exists

Idle games are built on numbers that go up forever. Break the Loop asks what happens when they can't: a materialist strategy game in which growth itself creates crises, and the aim is to end the loop instead of grinding it.

What it does

  • A continuous simulation that you steer with policies, propaganda, diplomacy and timed transitions.
  • Modes of production from extraction through colonialism, imperialism and crisis to socialism and communism, each changing which meters matter and which actions are available.
  • NPC nations with interests of their own, trade, debt and aid. War emerges from economic and diplomatic pressure as a draining state, with no button to declare it.
  • Party leadership, where faction support and party unity limit what you can get away with.
  • A finite victory with no New Game+ grind, and several ways to lose, including coups and colonisation.
  • Multiple saves and guest sessions with no account needed, plus reduced-motion and cue-muting options.

How it's built

  • A monorepo with a TypeScript, Express, Prisma and Socket.IO simulation server ticking every two seconds, and a Vite and React interface.
  • The server is authoritative: the UI sends actions over REST, receives state in real time, and never invents a tick outcome.
  • Vitest covers ticks, actions, events, transitions, diplomacy and full campaign smoke runs.
  • Deployed as the interface on Vercel, the engine on Render and the database on Supabase.