Countryside Shooter
An Android TV arcade shooter you aim with your phone — gyro over UDP, with the TV as the one authority and the phone a thin client that never decides a hit.
Live, in your browser — not a screenshot.
Problem
I wanted the feel of a light-gun arcade game on a modern Android TV, using the phone already in your pocket as the gun. The difficult part was making wrist-to-crosshair motion feel immediate over ordinary, lossy home Wi-Fi.
What I built
One Godot project runs as an authoritative TV host or a thin phone controller. UDP discovery removes IP setup; ENet carries gyro aim, firing and state. Two players can mix phones and PS5 pads, while nine headless suites test flight, hit and round logic before CI builds both APKs.
The hard part
The key boundary is simple: the phone owns the mapping; the TV owns the truth. The phone converts gyro or touch input into one absolute normalized aim point, but sends only aim and fire intent. The TV performs every hit test against its own state, so disconnects cannot desynchronise the score.
Aim travels at 60 Hz on an unreliable latest-wins channel; fire, reload and results are reliable. A dropped aim packet is obsolete one frame later, while a dropped shot would corrupt state. That split kept aiming responsive without making gameplay inconsistent.
Results
A complete 90-second arcade game now runs solo or two-player on Android TV, survives controller drops, and accepts four input modes through one message shape. All visuals and audio are original and generated in code.