The Match
First to seven. Best out of however-many-you-want. Local hot-seat against a friend, or against one of four AI personalities ranging from a forgiving sparring partner to an opponent that has no business being this fast.
ARCADE // PHYSICS-DRIVEN // ACTIVE DEVELOPMENT
A puck, two mallets, and a table that takes itself a little too seriously. Ray Hockey is arcade air hockey rebuilt on a sub-stepped physics engine, lit with PBR, and stuffed with enough wall targets, bumpers and chaos modifiers to keep the late-night rematches honest.
Eight physics sub-steps per frame. PBR-lit table with ACES filmic tonemap. A goal celebration with slow-mo, confetti and a shockwave you can feel through the screen. The arcade feel is the point — but everything underneath it is real.
First to seven. Best out of however-many-you-want. Local hot-seat against a friend, or against one of four AI personalities ranging from a forgiving sparring partner to an opponent that has no business being this fast.
Three puck materials — Plastic, Ice, Rubber — each with their own friction, restitution and personality. The table itself comes peppered with wall targets to break for bonus points and bumpers that send the puck on errands you didn't sign off on.
Two cooldown moves on each side: a Super shot that more than doubles the force on contact, and Feet — a short sprint that briefly turns your mallet into a missile. Use them sparingly. Use them well.
Optional Zones light up when struck enough times and pay out bonuses while they're hot. Optional Chaos mode randomises friction, occasionally reverses your inputs, and adds input delay just often enough to lose you a perfectly good lead. Both off by default. Both worth turning on.
Pucks carry real angular velocity. A clipped hit comes back wrong on purpose. Learn how the rails redirect at speed and the table starts to feel like a chess board with a bad temper.
Super and Feet share screen real estate with the score for a reason. Burn them on a 30-degree angle and you're stuck flat-footed when the AI returns it down centre. Stack them with a wall target and you're suddenly four points ahead.
Goals trigger slow-mo, confetti and a screen-wide shockwave before the next puck drop. It's loud on purpose. The next puck drop is faster than the one before it, and the AI just learned something about you.
Ray Hockey runs on a custom Python build over raylib with a hand-written PBR-lite shader stack — Cook-Torrance GGX, hemispheric ambient, ACES filmic tonemap — and an 8-substep collision loop that does not flinch at 2,200 px/s puck velocities. Quality tiers from LOW to ULTRA cover everything from a 2017 laptop to a desktop with headroom to spare.
Native Linux build. Tested on desktop and Steam Deck. A web-playable slice of a single match against the Easy AI will land in the Playground first — no installs, no save files, just the table.
$ ./ray-hockey --quality HIGH --ai HARD [boot] ray hockey v65.0 [render] PBR-lite shader compiled — ACES tonemap on [phys] sub-steps: 8 • max puck v: 2200 px/s [assets] floor_table.glb · puck.glb · mallet.glb [ai] personality: HARD (target smooth 1.0) [match] first-to-7 • zones OFF • chaos OFF ready.
Ray Hockey is the smaller of our two active game projects — a tight, replayable thing we use to stress-test the engine and try ideas before they end up in the bigger games. Build notes and balance changes land in the Scriptorium as we go.
Engine, physics and AI tuning notes go up in the Scriptorium as the game evolves.
The first browser-playable match will appear in the Playground. One table, one AI, one rematch button.
Ray Hockey is one of several Linux-first projects. Browse the rest on the Games page.