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.