Shuffling maps


How are the maps in Raid30 randomly shuffled whilst still retaining a fun difficulty curve?

The process is first to assign every map a difficulty level, either a number or enum. We have five difficulty levels - tutorial, beginner, easy, normal, and hard.

The tutorial difficulty is used simply for the tutorial map, as you might expect. Then, we have three beginner maps to start with, and six easy maps. The vast majority of maps in the game use the normal difficulty - fifteen in total. Finally, the game ends with six hard maps.

Once every map has a level assigned, we need to shuffle them in a random order at the start of the game. There is a loop which runs a large number of times, and for each loop a random map is chosen. We check the map one position higher to see if the difficulty level of both maps is the same - if so, their position in the list is swapped. At the end of this loop, we are left with a list of maps in a random order, but the same distribution of difficulty - three beginner, six easy, fifteen normal, and six hard maps.

The benefit of this from the player's point of view is obvious - the game retains a natural difficulty curve despite the random ordering of maps. The addition of extra modifiers every three floors ensures that the difficulty continues to increase even within the same difficulty level, so that, for example, during the fifteen-floor run of normal level maps there is still a noticeable jump in challenge. This demarcation helps me as a level designer, too. I know when designing any map that the player will have a certain number of modifiers enabled, so I can create the easier maps knowing the player will have one or two modifiers, or the final maps knowing they will have all, or all but one, turned on, and design around this.

This method means that Raid30 retains the careful design of hand-made levels with an engineered difficulty curve, whilst maintaining a certain degree of variety on every playthrough.

Get Raid30

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.