SPLATZ cover
← Work 49 / 51 In progress 2026 Solo developer

SPLATZ

Neon co-op platformer with server-authoritative physics, four levels, Electron shell, and Steamworks branch.

SPLATZ is a four-player neon platformer where stacking on each other’s heads is the main verb. Phaser 3 renders the juice — matrix rain, splat particles, screen shake, player trails — while a Node WebSocket server owns physics, collisions, sync buttons, key fragments, and portal unlock logic so clients cannot cheat co-op puzzles.

Phases 1 through 6 are shipped: lobby with room codes and ready-up, coyote time and jump buffering, four defined levels (The Stack, Laser Corridor, Glitch Sync, The Gauntlet), HUD with death counter and timer, Electron wrapper with a clean production build, and a Steamworks integration branch (SteamService, achievements, friends invites stubbed). Vitest covers room lifecycle, kill/respawn, portal gating, and transport injection for testability.

SPLATZ in-game level with neon platforms, matrix rain background, player entities, and HUD showing key fragments and timer.
Level 1: The Stack — server-authoritative physics, neon splat trails, matrix rain, key-fragment HUD. Host starts from the lobby; state syncs over WebSocket.
SPLATZ game lobby with neon matrix background, room code field, and create/join controls.
Lobby — matrix rain backdrop, four-digit room codes, create/join flow. Server at ws://localhost:2567.

The hard part was not rendering — it was server authority without Colyseus. SplatzRoom exposes tick() and startLevelForTest() hooks, cancellable timers, empty-room cleanup, and unsubscribe-safe network managers so GameScene does not leak listeners on scene shutdown. That discipline is what lets 54 tests stay green while I tune feel.

Remaining before Steam: two-human playtesting, register achievement IDs on the partner site, and verify steamworks.js against a real Steam client. The game is a portfolio piece for multiplayer engineering, not just another Phaser tutorial.

SPLATZ Vitest test suite results
54/54 Vitest tests passing across 8 files — SplatzRoom physics, lobby lifecycle, co-op mechanics, and server transport mocks.