Ray Hockey

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.

Air hockey, taken seriously enough to be fun

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.


What's On The Table

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.

The Table

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.

The Toolkit

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.

The Wildcards

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.


How It Plays

01

Read the Spin

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.

02

Time the Cooldowns

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.

03

Survive the Celebration

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.

Built on Python and raylib

A real engine, hiding inside an arcade game

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.

Where We Are

v65
Current Build
8 sub-steps
Per Physics Frame
4 / 3 / 2
AI Levels · Materials · Special Moves
Linux · Deck
Primary Targets

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.

Stay In The Loop

01 — DEVLOG

Read the build notes

Engine, physics and AI tuning notes go up in the Scriptorium as the game evolves.

02 — PLAYGROUND

Play the slice

The first browser-playable match will appear in the Playground. One table, one AI, one rematch button.

03 — OTHER WORK

See what else we make

Ray Hockey is one of several Linux-first projects. Browse the rest on the Games page.

Back to All Games