SnowSplash - A 4v4 Snowball Fight Where Getting Caught Isn't a Punishment
Freeze the other team with a water blaster, lob snow bombs, bring their flag home. The hard part was making it fun for the kid who loses.
It had to stay fun across a skill gap
Building a game to play with a young nephew, this was the part that mattered most. An adult and a child playing together are not evenly matched. If the weaker player keeps getting caught and ends up spectating, there is no second round. And going easy on them is obvious within a minute.
SnowSplash was designed from that point. It's 4v4 capture-the-flag in the Snow Carnival Arena, and the rules are simple. Freeze opponents with your water blaster, lob snow bombs, carry the other team's flag back to score.
Freezing instead of dying
The key is that being frozen wears off by itself. No respawn button, no waiting on a teammate. Getting caught has to cost a pause rather than a turn, so the weaker player keeps running around. Matches are three minutes, so a loss is quickly followed by another one.
Bots fill empty slots. A game that makes you wait in a lobby for four people is a game you stop opening.
The server owns the calls
It runs on a 60 Hz authoritative WebSocket server. Whether a hit landed, and who is carrying the flag, is decided by the server; clients receive the outcome. Let clients decide and the laggy player is permanently aggrieved, and it's easy to cheat.
Server authority alone looks choppy, so positions are reconciled against snapshots and remote players are interpolated. A dropped connection reconnects on its own, and a bot holds the slot in the meantime.
Web and app share one game codebase
It's an npm workspaces monorepo, and the game code lives in exactly one place, packages/game. The web build pulls it in through a dynamic import, the app through a Vite bundle. Per-app pieces like the analytics client are injected, so the package isn't tied to one framework.
Accessibility
- Touch controls: left pad to move, drag the right side to aim and fire, buttons for jump, dash and bomb
- A reduced-motion option. The first-person view has head bob and recoil, and without this some people find it nauseating.
- Korean accessibility labels throughout
Where it stands
It's on Google Play. It's early: flag battles are the only mode right now, with a blizzard survival mode and a rescue mission in progress.