1
0 Comments

I built a WebGPU multiplayer snake (with a phone fallback)

I shipped a small open arena snake game: https://snaketron.com/en/

It’s an original game — eat orbs, grow, boost, die when you hit a body. Not affiliated with slither.io or other snake titles. No fake “players online” counters.

Stack (short): Cloudflare Worker + Durable Object for the arena, WebSocket snapshots, WebGPU when the browser supports it, Canvas2D fallback on phones. UI in a bunch of languages because it’s part of a small site factory.

What ate the most time recently:

  1. On phones the cheap render path cleared the snake’s tube geometry while WebGL/WebGPU still expected it — so you literally only saw a head. Fixed.
  2. On the free Durable Object plan a permanent setInterval kept empty rooms awake and burned the daily duration quota (/ws → 1101). Switched to hibernation-friendly ticks: only run while someone is connected.

It’s early and still rough. If you try a round, the footer has a small Feedback link — short notes beat silence.

Play: https://snaketron.com/en/
Feedback: https://snaketron.com/en/feedback

Happy to hear what feels off (mobile controls, lag, fairness).

on September 7, 2026