Gamasutra is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
January 16, 2021
arrowPress Releases

If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Randomized Platformer Levels | Roguelike Devlog #12 "The Colosseum"

by Deniz Cakmaz on 11/27/20 06:29:00 am

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.


If you prefer youtube videos

Why Randomize Paths?

The problem with the platforming elements is that people die often in roguelikes and ours is no exception. So even if we create a lot of paths, at one point, people will recognize every path. Than the paths feel boring and stale. And I don't want that! So this updated we focused on randomizing paths.

So whats the pros and cons?

  • Mediocre paths are better than stale paths that everyone remembers. Also the challenge in roguelikes should never become less just because you remember the layout. They should become easier because you become better at them.

  • The randomness changes the difficulty. The difficulty therefore is never exactly above or below you. Its usually around your skill level.

  • The problem is that these paths take way longer to build and I talk about that in a bit.

  • But the biggest problem is, even though the randomization makes it that people take longer to get accustomed to the same path. The path still uses the same mechanic. And the mechanic in itself will become stale at one point.

So we want to walk a tight rope between building enough levels with the same mechanics so people don't recognize the same paths. That way paths have longevity.
MEANWHILE we want enough mechanics in these paths so people don't become bored of the mechanics.
BUT lets also not forget that this is a roguelike about fighting and not about platforming. Its a secondary part of it. So we don't want to many mechanics with it and make this part harder to master than the primary part of the game.


So how do we randomize?

Whoever knows me, knows that I hate randomizing in games. At least fully randomizing things. I love platformer games. Handcrafted levels. Perfectly positioned traps with thoughts put behind every single element and decision. The level is as good as it can be. When randomizing, the level is sometimes good and sometimes bad. I hate that. So we don't fully randomize the paths!

We use several techniques and steps:

  1. First I pick a mechanic / trap to use in this path and make a simple half of the path. This should stand on its own and be fun by itself.

  2. Now I test it. Is it fun? Is it hard? Impossible? Different from already created paths?

  3. Now we randomize the shit out of this!

    1. Randomize the size of holes and platforms.

    2. Add extra elements / obstacles. When the path is picked, each element has a 50% chance of actually being there. So sometimes there will be no extra elements, sometimes eight. This creates a range of difficulty and makes recognizing the path way harder.

    3. Randomize the position of traps between two points.

    4. Switch around the position of traps to another position. Again this has a 50% chance to happen for each.

  4. Repeat step 2 (testing)

  5. Now I create the second part of the path the same way WHILE keeping in mind that the first and second part have a 50% chance to be switched around. This again helps to make the path different and less recognizable

All this randomizing takes a long time, but it makes it really hard to get used to any path. After all they are different each time. Its a lot of small differences but together they make a big difference.


That's all folks!

This week I came up with this algorithm and used it to create paths. This was a lot harder and more time intensive then expected!
Next update I will focus on iterating over the obstacles more. You will be able to destroy some traps to make the path easier but you will get less rewards that way!

Thank you for your time and have a good day everyone!

Related Jobs

Square Enix, Inc.
Square Enix, Inc. — El Segundo, California, United States

Senior Web Developer
Sucker Punch Productions
Sucker Punch Productions — Bellevue, Washington, United States

Jackbox Games, Inc.
Jackbox Games, Inc. — Chicago, Illinois, United States

Senior Gameplay Engineer
innogames — Hamburg, Germany

Senior Mobile Game Developer (C++) - Forge of Empires

Loading Comments

loader image