Skip to content
All projects

Games

Arcade

A rope-cutting physics puzzle, a Nokia Snake clone and a colour sort puzzle. Each one is hand-written: the rope physics, the sprite drawing and the level generation are all mine rather than a framework's.

Tejie generates every level by starting from a solved board and replaying random pours backwards, so a level is solvable by construction rather than by luck.

Cutzrope: cut the ropes and drop the coffee bean into the jebena
Snake Xenzia: every sprite, bevel and scanline drawn on the canvas
Tejie: pour between bottles until each one holds a single colour
The three games behind one page

01 / 04Cutzrope: cut the ropes and drop the coffee bean into the jebena

Overview

Three small games that exist because the interesting part of a game is the part a framework usually hides: how a rope behaves when you cut it, how a snake body follows its head between grid cells, how to build a puzzle that is guaranteed to have a solution.

Cutzrope runs its own Verlet integration. Each rope is a chain of points relaxed over several passes a frame, so cutting one mid-span leaves both halves swinging the way they should. Levels are data rather than code: ropes, the cup, stars, bubbles and bounce pads are written in normalised coordinates, so one file lays out correctly at any canvas size.

Snake Xenzia loads no images at all. The bevelled arcade chrome, the LCD scanlines, the shading on each body segment, the eyes and the tongue are all drawn on the canvas, and movement is interpolated between grid steps so the snake glides instead of hopping. Tejie is the algorithmic one: it builds each board solved, then unsolves it with random reverse pours.

Features

  • Verlet rope physics with cutting, particles and data-defined levels
  • A Snake clone with hand-drawn sprites, interpolated movement and synthesised sound
  • A colour sort puzzle whose levels are generated by unsolving a solved board
  • Keyboard, mouse and touch input across all three
  • No dependencies in two of the three games, and no backend in any of them

Challenges

  • Cutting a rope mid-span is not just deleting it. The chain has to split into two independent chains that each keep their own momentum, which is why the ropes are simulated as points and constraints rather than as lines.
  • Generating a colour sort puzzle at random usually produces a board that cannot be finished. Building it solved and then replaying random pours in reverse guarantees a solution exists without having to search for one.
  • Tejie's production build currently renders nothing: the bundle loads without errors but the PixiJS application never mounts its canvas, so it runs under the dev server only and is left out of the deployed arcade until that is fixed.