Inspiration

We live in a world where the UN's Sustainable Development Goals are widely known but rarely felt. Charts and reports don't move people — games do. We asked ourselves: what if the urgency of a collapsing climate or failing education system hit you the same way losing all your money in Monopoly does?

That question gave birth to Terrapoly 2030 — a board game where greed has global consequences.

We were also inspired by the gap in EdTech: most SDG-awareness tools are passive. We wanted something competitive, social, and replayable that makes players genuinely care about SDG health — not because they're told to, but because the game punishes them if they don't.

What it does

Terrapoly 2030 is a multiplayer, web-based board game built on classic property-trading mechanics, reimagined around the UN's 17 SDGs.

  • Players join private rooms via a 6-character code and navigate a shared board
  • Instead of buying real estate, they invest Impact Points into SDG-aligned global initiatives (Climate, Education, Health, Energy, Justice)
  • Every round, neglected properties trigger an Apathy Tax, degrading both personal wealth and the global SDG score
  • At Rounds 5, 10, and 15, Global Crisis Events punish players who ignored underfunded SDG categories
  • The game ends after 15 rounds — if any SDG category collapses, everyone loses. The most impactful investor wins.

Solo players can fill slots with AI bots that have distinct personalities: Greedy, Eco-Warrior, and Balanced — each with their own voting and investment behavior.

How we built it

Frontend: React 19 + TypeScript, bundled with Vite. UI animations powered by Framer Motion, with Tailwind CSS v4 for styling. The 3D dice and board elements are rendered using Three.js via React Three Fiber and React Three Cannon for physics.

Backend: Node.js + Express server with Socket.io handling all real-time game events. PostgreSQL (via Docker) stores game and player state, accessed through Prisma ORM.

Architecture: The backend acts as the single authoritative source of game truth — all game logic (turn resolution, SDG scoring, crisis triggers, bot decisions) runs server-side through gameHandler.ts. The frontend is purely reactive to socket events, keeping gameplay consistent across all clients.

Challenges we ran into

  • Real-time state synchronization across multiple players was the hardest problem. Race conditions in turn resolution and bot moves required careful server-side sequencing.
  • Bot AI design — making bots feel distinct and strategic (not random) within the constraints of the hackathon was a significant design and engineering challenge.
  • Balancing the game economy — tuning Impact Points, Apathy Tax penalties, and Crisis Event weights so the game is neither too easy nor frustratingly punishing took many iterations.
  • 3D dice physics in the browser introduced unexpected performance issues that required optimization passes on the Three.js rendering pipeline.

Accomplishments that we're proud of

  • A fully playable multiplayer game built end-to-end during the hackathon
  • A working bot system with three distinct AI personalities that vote and invest autonomously
  • Smooth 3D dice rolls in the browser with real physics
  • A game loop that genuinely teaches SDG interdependence through consequence, not instruction

What we learned

  • Socket.io architecture at scale requires thinking carefully about event ordering and acknowledgment — optimistic UI updates can break game integrity
  • Game design and software architecture are deeply intertwined; a poorly modeled game state makes clean code impossible
  • Framer Motion + Tailwind v4 is an extremely productive UI stack for fast-paced builds
  • Cooperative-competitive mechanics are hard to balance but create far more memorable player experiences than pure competition

What's next for Terrapoly 2030

  • Expanded SDG board covering all 17 goals with unique mechanics per category
  • Educational mode with post-game SDG impact breakdowns for classroom use
  • Potential partnership track with UN SDG initiatives

Built With

Share this project:

Updates

Submission history