Uvulites

A local two-player strategy game played on one shared screen, where you summon your army by placing real cards on physical readers. Two players, three lanes each, one goal: destroy the other base.

[troop / 01]cost · 4
Uvulite — the basic armored melee troop

Uvulite

atk · 24hp · 210

A heavily armored warrior that charges toward the nearest enemy.

How a match works.

Two players, one shared screen, and six card readers. Here’s the whole loop, start to finish.

01

Sit across the table

You and your opponent face each other over one horizontal screen. Each of you has three readers, one for each lane.

02

Play a card

Place a card on a reader and it appears on the battlefield: a troop marches down that lane, or a spell goes off. No buttons, no menus.

03

Destroy the base

Troops fight on their own once they're out. Push where the other side is thin and raze their base before they raze yours.

The cards are real.

Every card you play sits on a reader we built ourselves — an Arduino per player, three NFC readers each, and a lot of soldering.

A prototype NFC card reader built for Uvulites
// reader · prototype
01

The readers

Each player has an Arduino Nano wired to three PN532 NFC readers, one per lane. It watches all three and reports the moment a card lands, moves, or lifts off.

02

The cards

Hand-drawn pixel-art cards, each with an NFC tag carrying a unique ID. Placing one on a reader is the entire input — that ID is what the game reads.

03

The game

Written in C with Raylib. It takes the card ID over USB, looks it up in SQLite, and summons the matching troop or casts the matching spell.

Designed twice over.

The table and the readers have gone through a lot of versions — sketches, CAD, 3D prints, and a couple of dead-end PCBs. Some of that below.

// hero · render
// exploded view
// reader v1
// reader v2
// card tray
// internals
// status · in development

What’s built so far.

Uvulites is playable but unfinished. A full match already runs end to end on the real hardware — two players, six readers, troops, spells, both resources, a winner, and a rematch without restarting the program.

A lot of the recent work has been on the readers. Early versions could quietly stop reporting cards and need an Arduino unplugged mid-game. Now each one sends a steady heartbeat and resets itself when it locks up, so a match can usually keep going.

We post progress as we go on this site, X/Twitter, our newsletter, and YouTube. Playtests are still early and local to the UCF area.

// playable now

What works

Enough that two people can sit down and play a real match today.

  • A full two-player match, start to finish
  • Six NFC readers across three lanes each
  • Troops, spells, energy and sustenance
  • Base leveling, win/lose, instant rematch
  • Readers that recover on their own mid-match
Follow on X/Twitter
// still rough

What's left

The parts we're actively in the middle of.

  • Balancing the whole roster
  • Final art and sound
  • A few unit behaviors
  • Building the actual table
Newsletter
// what we’re working on now
// hardware

The table

Turning the prototype readers into something that fits inside a real table.

// game

Balance & feel

Tuning each unit around how people actually play, not just how we play.

// content

Art, sound, identity

Final sprites, sound effects, and giving each unit something that's its own.