Hi, Jinks! - a totally new way to make games
Hi, Jinks!
Jinks is a lightweight multi-platform game engine, an interactive development environment, and more besides. I’m building it around one wonderful idea: write the engine core once, then run it everywhere—and have it behave identically wherever it runs.
As with everything I make, it started with a personal need. I make games, mostly the arcade sort, and I want them to run on the machines I care about—new ones and old ones—without writing each game again for every one of them. So the core knows nothing about any platform at all. Each platform gets a thin shell that draws what the core tells it to draw.
That shifts the work away from reinventing the wheel and onto the game itself: the systems, the mechanics, the rules, the scoring, the gameplay. The parts that are actually fun!
As of today, over fifty arcade, puzzle, and action games run on that single core, side by side. They share the same tick loop, the same collision system, the same renderer, with no per-game engine code. And each one is small and readable.
One of them is BELTRUNNER, and you can play it right now.
BELTRUNNER by gingerbeardman
One Core, Every Platform
macOS and iOS: Native, with Metal-based CRT post-processing, built-in game recording, and full keyboard, gamepad, and touch support.<br>Web browser: The whole engine compiles to WebAssembly and draws through WebGL2. Engine and game together come to about 1.44 MB, which means—yes—it fits on a floppy!<br>Desktop, portably: One C99 shell on raylib drives the very same core beyond Apple’s platforms.<br>Elsewhere: A second shell, on SDL2 and GLES2, takes that same core across Linux, from desktops to handhelds like those running muOS. It’s reached far older hardware, too—right down to the Nintendo Wii.
Every shell reads the same per-frame contract: the core says what to draw and what to play, and the shell just draws it. Nothing is reimplemented per platform, so nothing can drift.
Jinks, the Language
Underneath all of this is a language, also called Jinks, built for one thing only: making games. It isn’t a high-level language, and it isn’t a low-level one. It’s a totally new way to make games.
It’s small and succinct, and it keeps the work on the art of making games. Of everything here, it’s the part I’m most pleased with.
How small? Pong is 145 lines. Frogger is 263. Breakout 353, Asteroids 475, Arkanoid 962. BELTRUNNER, up above, is 1,278.
There’s a lot more to say about it, and I’ll say it closer to release.
Always Playable
A game comes up in minutes and stays playable at every step. No build-and-wait, no dead time between having an idea and seeing it move.
Better still, you can inspect and modify a game while it runs. Tune a speed. Tweak a property. Have it work out the theoretical maximum score. And since the IDE on macOS can connect to a game running on a nearby device, you can do all of that with one hand to a game being played on the phone in your other hand.
Same Every Time
The simulation runs on a fixed tick of up to 120 Hz, quite separate from the display refresh, so a game plays the same on devices with different capabilities. And any run can be reproduced exactly, from a random seed plus the input that followed it.
That one property pays for itself many times over. Replays are exact rather than approximate. The tests replay whole games, frame for frame. And the native and WebAssembly builds—the same core compiled two very different ways—are checked against each other to produce identical output, tick for tick.
Built for Arcade Games
CRT effects: Raster and vector display profiles, with phosphor bloom, RGB shift, scanlines, curvature, vignette, and flicker. There’s a power-off transition too, collapsing the picture down to a single dot before it fades. Naturally.<br>Palette cycling: Proper hardware-style indexed palette animation, worked out once in the core and cycled identically by every renderer.<br>Arcade text: Vector-stroke and bitmap font support, with glyph layout computed once and shared, so a letter lands in the same place everywhere.<br>Procedural audio: Oscillator synthesis and a compact music-tracker language (MML), rendered to the very same PCM on every platform.<br>Proper geometry: Worlds that wrap at their edges, ellipse colliders that rotate along with whatever they’re attached to, and SDF curve walls that are actually curved—not just axis-aligned boxes.<br>Input by intention: Games bind to named actions, so keyboard, gamepad (right down to raw HID for the awkward pads), pointer, and touch all drive them the same way.
Status
Jinks is in active development and not yet released. I’m bringing it up one platform at a time, and it’s getting closer to release with every one. If you’d like to know when it’s ready, sign up for my monthly newsletter.
Game development has never felt this focused and fun.
jinks.gg
Jinks! Good game.
Matt Sephton,
July 2026
Investors and Partners
Jinks has already come a long way, and...