- Arcade
Snake
Navigate the grid. Consume data. Don't crash
DATAWORM
// NEURAL DATA EXTRACTION PROTOCOL v9.0
> GRID: 20x20 SECTORS
> OBJECTIVE: CONSUME DATA PACKETS
> LIVES: 3 (EXTRA LIFE PICKUPS ENABLED)
> PORTALS: ACTIVE (BORDER WARP NODES)
> WARNING: SELF-COLLISION IS FATAL
PRESS [ENTER] TO INITIATE
- Difficulty
- beginner
- Grid
- 20 × 20
- Engine
- PixiJS
- TypeScript 72%
- Svelte 18%
- CSS 10%
About
Why I built this
Snake was one of the first games I played as a kid — on a Nokia phone with a monochrome screen. I wanted to rebuild it from scratch, but with portals instead of walls, extra life pickups, and the kind of visual polish that makes you want to keep playing. It's the simplest game in the collection, but it's also the one that pushed me to build the entire engine layer — input polling, game loop, grid rendering, state machines — because I needed a solid foundation before tackling anything more complex.
Highlights
Tech Stack
Dev Notes
The engine renders cells, not sprites — each frame the game returns an array of {x, y, color, shape} and the renderer draws them. No scene graph, no display objects.
Mouse steering converts click position to a direction relative to the snake head. It feels surprisingly natural for a grid game.
Border portals were a late addition that changed the whole feel — infinite corridors instead of claustrophobic walls.