Inspiration

The classic hacker rite of passage has always been: "Can it run DOOM?"

When we walked into Hack the North and got our hardware badges we knew we couldn't just leave them as glorified digital nametags. We wanted to push the hardware to its absolute limits. Instead of settling for a simple port or a basic 2D mini-game, we decided to revive the golden age of 90s LAN parties right on our lanyards by turning hacker badges into a real-time, playful 3D battle. Additionally, the games that we can currently play are only single person, but we wanted a way to play against each other.

What it does

FirmWar transforms standard Hack the North badges into a standalone, peer-to-peer 1v1 corridor shooter:

  • Pseudo-3D Raycasting Engine: Renders textured walls, perspective depth, and player sprites smoothly on the badge’s embedded display.
  • Low-Latency Wireless Networking: Wirelessly syncs player positions, orientations, and projectile states between two badges in real time for responsive PvP duels.
  • On-Badge Controls: Maps movement, turning, and shooting directly to the badge’s physical buttons with retro audio/visual hit feedback.
  • Zero Infrastructure Required: Players can face off anywhere: in line for food, between workshops, or while walking across campus, as long as they are on the same network.

Accomplishments that we're proud of

  • Achieving a rock-solid, playable frame rate on embedded hardware never intended to run 3D perspective graphics.
  • Pulling off real-time wireless 1v1 gameplay that feels responsive and fair.

What we learned

  • Embedded Optimization: Writing performant code on low-power hardware is hard and every clock cycle, bit shift, and byte of heap memory counts.
  • Reverse-Engineering: How to quickly dissect unknown hardware platforms under intense 36-hour hackathon time constraints.

What's next for FirmWar

  • Different games, different game modes.
  • Map & Weapon Pickups: Adding health packs, armor, shotguns, and multiple labyrinth layouts stored across badge partitions.
  • Badge-to-Badge Stat Tracking: Persisting player kill/death ratios, high scores, and tournament brackets directly into non-volatile storage so badges remember who won the weekend.

Built With

  • badge
  • c
  • esp-32
  • raycasting
Share this project:

Updates

Submission history