Marble Marcher is what happens when Monkey Ball meets math

Marble Marcher is equal parts mesmerising, fascinating, frustrating and educational – a short, free ball-rolling game by CodeParade, you’ve got a ticking timer, a goal, and a procedural fractal landscape to somehow navigate across, sometimes shifting and warping under you. It’s a bit of a technical marvel despite its mechanical simplicity. Below is a brief look at the game, plus an explanation on the collision detection trick that made the game possible in the first place. Grab the game on Itch here – do note you’ll need a beefy GPU to run at higher resolutions.

The GPU-heavy nature of Marble Marcher is thanks to the rendering technique it uses. Ray marching is a seldom-used approach, but it allows for the rendering of hugely complex fractal spaces in realtime, though its cost on GPU scales directly with resolution. 1280 x 720 is about all that my laptop Geforce 1070 can do well. While visually stunning, fractal shapes don’t normally make for the most playable game-spaces, but through a very accurate collision detection system (partially based on the renderer itself), CodeParade found that a simple ball-rolling format worked well.

Even if the underlying math and techniques make your brain sizzle like bacon, it’s mesmerising to look at. Marble Marcher includes about a half hour’s worth of levels to roll through, some of them morphing in real-time. There’s also a screen saver mode so you can ogle the environments that can be generated from iterating on a single, simple source model. Being a nice sort, CodeParade has also released the source code for Marble Marcher here on Github. I’d love to see more done with this – other game types explored, perhaps, or just additional levels, if nothing else.

Marble Marcher is free and┬áhere on Itch, although half the appeal (in my opinion, at least) is watching and trying to wrap your brain around┬áCodeParade’s video on ray marching, and the video above for how the physics were resolved.

Related posts

Leave a Comment