Inspiration

"Hokie Plague" is what Virginia Tech students call the wave of sickness that sweeps campus every semester. We decided to turn it into something more fun: a real-life game where you either spread the plague or run from it.

What it does

Hokie Plague is a real-time, GPS-based infection game played across campus. Players join a round with a game code and are split into plaguers and survivors. The app tracks everyone's location and shows a plaguer an "Infect" button when a survivor is close enough to tag.

The game also has rules that keep rounds fair and moving:

Safe zones: green zones appear on the map where survivors can't be infected, with a warning before a new one appears. Death zones: when a survivor is infected, a red zone marks the spot for a few minutes. Boundary: leave the play area and you get a warning and a countdown before you're eliminated. Tag cooldown: plaguers can't spam infections back to back. Live alerts: a "plaguer nearby" warning and the distance to the nearest survivor..

How we built it

App: React Native with Expo, so it runs on our own phones for testing. Backend: Firebase Realtime Database syncs every player's position and status live. Phones send their GPS location every few seconds, and everyone listens for updates. Game rules: we wrote the rules (tagging, cooldowns, safe zones, boundary elimination) as plain JavaScript functions with no UI or database code, using the haversine formula to turn GPS coordinates into distances in meters. That let us test them in Node with fake players instead of walking around outside. Tuning: all the numbers (tag range, cooldown, boundary timer, zone sizes) live in one config file, so we could adjust balance quickly after playtests. Design/UI: We made assets reflecting the theme of the app and imported them across the app. We also spent a long time formatting the app to best reflect a game. For the animation shown in the beginning we made lines and vibration to add a personal development team touch.

Challenges we ran into

GPS isn't precise. Phone locations drift by several meters and can go stale, so we ignore old positions and players without a fix, and we had to think about fairness at the edge of the boundary and safe zones. Agreeing on the data. The rules, backend, and UI all depend on the same player data, and a small mismatch (like a misspelled team name or seconds vs. milliseconds) broke things silently. We caught many of these with automated tests. Fairness and balance. Tag range, cooldown, and zone timing decide who wins, and it took multiple playtests to tune them so neither team wins every time. Teamwork and git. Working on separate branches in one repo, plus setting up Firebase, taught us to agree on structure early.

Accomplishments that we're proud of

A polished user interface and experience that makes the game easy to pick up. Smooth animations and transitions to different screens. A rules engine that's fully tested, so tagging, cooldowns, safe-zone ties, stale positions, and boundary elimination behave predictably. Live multiplayer that works outdoors on real phones.

What we learned

How to build real-time multiplayer with Firebase and live GPS data. Why separating game rules from the UI makes them far easier to test and fix. How messy real-world location data is, and how to design rules that tolerate it. How to coordinate a team on shared data formats and git workflow under a hackathon deadline.

What's next for Hokie Plague

Full campus-wide rounds with scheduled daily games and a lobby to browse them. Leaderboards and stats across rounds. Extra roles and power-ups, such as a medic or a decoy. More precise location handling, like a grace buffer at boundaries and smoothing for GPS jitter. Player accounts, and stronger security rules and server-side checks so nobody can cheat by spoofing location. Support for other campuses.

Built With

Share this project:

Updates

Submission history