Back to projects
Apr 01, 2026
2 min read

Cosmos Wars

A physical-digital hybrid collectible game where NFC-embedded metal coins unlock characters in a mobile battle arena. Built across the full stack -- game engine, multiplayer server, animation layer, NFC integration.

What it is

Most games are either physical or digital. Cosmos Wars is both. Each metal coin has an NFC chip; tap it to your phone and the character unlocks in the game.

The challenge wasn’t just building a good-looking mobile UI. It was making the physical-to-digital handoff feel seamless, architecting a multiplayer server that could handle concurrent game rooms without a dedicated infrastructure budget, and designing a battle system that works offline as well as it does with internet.

How it started

Before a single production screen was designed, I built a working prototype covering auth, game room creation, and room joining across React Native clients. That prototype was enough for the client to commit fully to production development.

The stack

  • React Native + Expo (managed workflow) for the mobile client
  • boardgame.io on Render for the real-time game server
  • Supabase for auth, database, and storage
  • React Native Skia for the custom game UI and animation layer
  • Reanimated 4 for gesture-driven transitions
  • NFC reading via react-native-nfc-manager, with a mock system for devices without NFC hardware controlled via EXPO_PUBLIC_ENV flag

Key decisions

Stats are keyed to NFC UID, not player identity, the physical coin is the character. Coins register lazily on first tap. Game rooms are JWT-gated. Boardgame.io handles all sync.

Every decision was validated before a single production screen shipped.

Status

In active development. Playable prototype exists. Production UI currently in the design phase.