Problem
A location-based game has to keep several phones in sync while players move through a real environment. It also has to recover cleanly from reconnects, enforce the play zone, and keep network, map, and battery use under control.
Solo build · 70,000+ downloads · #10 UK / #25 US App Store · 2025 - present
A real-time outdoor multiplayer game for iOS and Android, with live GPS, custom play zones, tactical items, and eight game modes. 70,000+ downloads, reaching #10 in the UK and #25 in the US App Store Adventure charts.
HideZone turns any park or neighborhood into a multiplayer game board. I built and shipped the Flutter app end to end, from the host-authoritative game loop and Firebase synchronization to geofenced maps, items, subscriptions, ads, and both store releases.
A location-based game has to keep several phones in sync while players move through a real environment. It also has to recover cleanly from reconnects, enforce the play zone, and keep network, map, and battery use under control.
Built a host-authoritative game engine on top of Firebase Realtime Database. Eight game modes plug into isolated strategy bundles, while shared services handle location updates, zone rules, items, reconnects, maps, billing, ads, and privacy-safe diagnostics.
Designed, built, and shipped independently on Google Play and the App Store, reaching more than 70,000 organic downloads and placing #10 in the UK and #25 in the US on the App Store Adventure charts. The current architecture is backed by more than 2,200 Flutter tests, deterministic multiplayer simulations, traffic budgets, and automated checks around network ownership and wire compatibility.
Flutter and Riverpod power both mobile clients. A synchronous host engine owns game decisions, while mode-specific strategy bundles keep the rules for Standard, Freeze Tag, Zombie, Chase, Sardines, Murder Mystery, Meteor, and Assassin isolated. Focused Firebase repositories sit behind a compatibility facade, and versioned codecs protect the production wire format.
Scanners reveal locations, Proximity Mines set traps, Ghost Mode grants stealth, and Zone Movers flush out campers.
Standard, Freeze Tag, Zombie, Chase, Sardines, Murder Mystery, Meteor, and Assassin share one engine without mixing their rules.
Geofenced play areas, cancellable map requests, a bounded tile cache, and local-only match replays.
Anonymous sessions and tightly allowlisted Crashlytics records keep coordinates, names, lobby codes, and match data out of telemetry.
Started mobile development, establishing data schemas and core state structures.
Integrated game modes, the item system, and geographic boundaries.
Tested with local groups to tune GPS precision, battery use, and latency.
Shipped to the Google Play Store and refined systems based on early usage logs.
Reworked synchronization and polling to reduce unnecessary Realtime Database traffic.
Shipped to the Apple App Store with cross-platform multiplayer support.
Separated the host engine, mode rules, Firebase repositories, and UI ownership, then locked the behavior down with automated tests and traffic budgets.
Crossed 70,000 organic downloads, reaching #10 in the UK and #25 in the US App Store Adventure charts.
Swipe or open to viewScroll, drag, or open to view