You can Skimp on Level Design
January 14th, 2024
In my travels as a humble hobbyist game developer, I've stumbled upon a curious discovery in the world of level design.
I couldn't wait to get started – but just to get a quick baseline to compare against, I decided to start with something simple:Math.random()
in a for loop.
for(let i = 0; i < 100; i++) {
polygons.append({
width: random() * 10 + 1;
height: random() * 10 + 1;
x: random() * 100 - 5;
y: random() * 10 - 5 + 10;
angle: random() * Math.PI * 2;
isSlippery = random() < 0.5;
});
}
Literally the entire level genration code of Arc Roam.
To my surprise, the results were pretty good! I've been pleasantly surprised by how passable, and sometimes even exciting, theseMath.random()
generated levels turned out to be.
Some random levels.
Hm, not bad! Playing these is actually pretty fun. Can Math.random really be enough?
To illustrate what I'm talking about, here are some of my favorite discoveries in Arc Roam so far:
Left: Seemingly impossible level – slippery start so you just slide off. Right: No wait, you can actually bounce of the wall and get past the obstacle anyway!
Left: Oh no, we're stuck in a hole! Right: Actually, if you time the jump just right, you can fly out with ease!
Left: Interesting girder could take some time to get past... Right: Aha, we just need to jump over the entire pit!
As it it turns out – and this is perhaps the secret of certain classic old-school PC games like Elasto Mania, and more recently, games like Getting Over It – if the physics-based movement scheme is deep and flexible enough, almost any level can be fun to traverse, because the challenge lies in mastering the movement itself, not the level.
Good Level Design™ is still important, even for physics-based traversal games. More sophisticated level generation (and a level editor?!) is coming to Arc Roam eventually – but – for now, I'm quite taken with the happy accidents my simple method keeps throwing up!
Haha, I'm really selling this game, aren't I. "Arc Roam - the level design isn't terrible!"
I guess I just wanted to share this little discovery with you. I hope you enjoyed it!
Try Arc Roam for yourself here: