Seeker

In Development Phaser 3 / Node.js / WebSockets / Express claude

A multiplayer browser game where players hunt each other on a shared map with fog-of-war mechanics.

Seeker 2 (2021)

Built with Claude. Successor to the original experiment, rebuilt on Phaser 3 with fog-of-war visibility, dynamic player spawning, and an Express backend.

Seeker Experiment (2020)

A personal challenge to learn Phaser and to figure out, from nothing, how a multiplayer server actually works. Not the theory. The real thing — what happens when two browsers need to agree on where a character is standing.

Hide and seek is one of the oldest games. You close your eyes, count, and someone disappears. The entire premise is the absence of information. You know they’re out there. You just don’t know where. That tension is the whole game.

Game map with player avatars

What’s strange is that the same tension holds when the “out there” isn’t a backyard but a region of server memory. Two players connected over websockets, each seeing only their slice of a shared map. Fog of war isn’t just a game mechanic — it’s the default state. You only ever see what the server decides to tell you. Everyone else is hidden until they aren’t.

Building it from the ground up meant learning what “real-time” actually costs. Every cursor event, every position update, every frame — the server has to hold the truth of the world while each client renders its own partial view. The terminal spitting cursor_down detected true hundreds of times a second was the first sign that something was actually alive in there. Two machines, separated by distance, sharing a space that only exists in memory.

Side-by-side map views

There were avatars once, and little pixel animations — characters wandering between palm trees and desert buildings. Those are long gone now. What remains is the map and the idea: that something as simple as hide and seek becomes a different experience when the hiding place is a literal abstraction, a coordinate in a process that disappears the moment you kill the server.