Volley!
A pixel-art volleyball arcade game
- TypeScript
- Vite.js
- HTML5




The context
It all started with an easter egg hidden somewhere on this very portfolio: a tiny volleyball minigame tucked away where only the curious would stumble on it. It turned out to be more fun than a secret deserved, so I pulled it out into a standalone game and published it on itch.io.
The original is still here, by the way. I will not tell you where: think of finding it as the tutorial level.
How it plays
One button, one ball, and the floor is game over. There are several ways to play:
- Keep it up: keep the ball off the floor, one point per touch.
- Hoops: fly the ball through the rings as they appear, a new one spawning somewhere else after every point.
- vs CPU: a full match against the computer, three touches a side, first to five.
Between games, the ball skin and the player’s shirt can be customised.
What I built
There is no game engine: it is Vite and vanilla TypeScript drawing on a single <canvas> of 120 by 180 cells, stretched to the screen with image-rendering: pixelated so every cell stays a hard-edged square. Physics, the computer opponent and the rendering are all hand written.
Outside a match the walls kick the ball back at a slightly random speed and angle, so rallies stay chaotic. In a match they become the stands and soak up most of its speed instead, so a spike that reaches the back dies there. The computer reads the ball by playing its flight forward with those same wall bounces, and the ball gets a little heavier with every touch, so two players who never miss cannot lob it back forever.
What’s next
More customisation, new modes and power-ups, then online matches and leaderboards, ahead of bringing it to CrazyGames and the mobile stores.