top of page

Updated: Nov 17, 2020

Procedural Map Generation with Minorly Varying Constant Map Parts

Procedural level design does not mean that these levels should be randomly ordered. For endless runner games, pattern recognition has a big role. Player learns how to recognize the action patterns and how to operate the moves to complete these patterns. Most of game design failures in this genre is related to the lack of pattern recognition consistency, or to the lack of minor variations.

The best example in this regard is without doubt the two layered procedural design of Subway Surfers. The visual layout outside of the actual game field is ordered in a different layer. This visual layer merge with the game field layer in bonus parts hidden in upper installations and through the tunnels that sometimes connect different game-field subsections. These subsections offer a quickly recognized game experience while preventing repetitiveness via small variations.

Did you know that: In Subway Surfers, in order to avoid overloading of physics engine, the trains that move towards the player place their bounding box statically at the point of contact, depending on the game’s speed at that instant. Therefore, even if they move visually, theoretically, they constitute static obstacles like other obstacles in the game.

The balance between the randomness and pattern recognition should be carefully/masterfully built/crafted in our project. Within “Buddies: Dash In Time”, there are several stages that are divided in parts such as Farms, City, Fortress, Arena, Market Places etc. Each of these parts are composed of 6-8 subsections that can also contain minor variations. The player, in order to pass to the next stage, should traverse through 16-32 subsections: this means that each subsection repeats 2 or 3 times during the game. Each stage aims to be memorised(?) by specific visual aesthetics and color coding. During the first sessions, the player will experience only two of these stages. Other stages will be unlocked sequentially once the player completes missions and levels up. This sequential progression is important in building a joyful ride for the beginners, and bringing new challenges to more advanced players, and thus, completing an easy-to-learn-hard-to-master game design.

Another factor that should be taken in consideration for procedurally generated stages is to design them with a speed-proof approach. Because they will be ordered in a random fashion, each stage should offer experiences conforming to the minimum, average and maximum game speed with an increasing, but not impossible level of difficulty.

Difficulty Curve for Jumping

Changing the difficulty of procedurally generated maps with minor variants is critically important.

Beyond classical reflex timing challenges, which is common for all endless runners, Subway Surfers have a very significant success in creatively managing the difficulty curves with “Air Control Mastery”. The game tutorial does not reveal that there is a chance of air control (runner instantly dive to ground if the player swipe down while on air) and none of the obstacles is designed to require that skill during the low speed runs. After a while, run speed increases to a specific range and few obstacle designs (which are already used regularly on low speeds) begin to require the air control skill to be discovered for longer runs. At the maximum speed, the air control becomes an important part of the game, which is used almost in each second of the run, and player need to master this action to survive. This excellent trick converts the gameplay to an easy-to-learn-hard-to-master experience, which can be taken as example for our project.

The secret paths that will be used in “Buddies: Dash In Time” are good instances where the experience of air control mastery can be used and be expanded.

By using the catapults in the game, the player can make longer and higher jumps (that can be continued only in the middle lane). This allows to win bonus gold during the fly and a power-up at the end. To connect two stages, we use the same catapult. Catapult throws protagonist over the castle walls and continue the run over there. During the long-jump experience, the camera targets a higher point of normal view in order to reveal the target location better, and when the protagonist hits the peak, it starts to focus down in order to show the ground, and therefore, to let the player avoid any obstacle that might be on the track that is about to be landed on. During the first part of this jump-journey where the main focus is to collect gold coins, the player does not perceive what is left down the road: it is rather a lucrative and calm ascent. The secret path design above was built to be discovered at this very moment when a player chooses to descend from the jump.

What do you think? Would that work?

Updated: Nov 17, 2020


Before starting the project, Buddies: Dash In Time, I had investigated many endless runners. Endless Runner genre is one of most popular choice within mobile casual games. In this article, I summarize the characteristics of this genre, and provide a simple classification. Endless runners can be classified into two sub-types: Horizontal and Vertical Endless Runners.

Horizontal Endless Runners

In this sub-type, there is a protagonist running on the left side of the screen and obstacles coming from the right side. For this reason, horizontal runners use landscape orientation on mobile screens to use the active area as much as possible.

Most popular examples in this sub-type are Canabalt and Jetpack Joyride, and their popularity is mostly due to their choice of minimalistic control scheme. (Hold/Touch to Anywhere). This is related to the structure of horizontal runner game sub-type which cannot integrate a complex interaction model. Majority of the horizontal runner games fail to build a game design that render four directional swipe useful. Most of them miss left or right swipe, or even both. In a horizontal oriented layout, lack of horizontal swipes is actually a big limitation. (Also, they fail to use gyroscope and accelerometer of mobile devices but it doesn’t form a big issue, as I’ll explain later on Vertical Endless Runners section). This is why swipe control schemes are less preferred in Horizontal Endless Runners. Games that don’t employ minimalistic control scheme usually use left/right action controls(hold/touch to left/right side of the screen have 2 different actions: one of them is always “jump”) rather than swipe control.

Another challenge for horizontal runners is left-to-right direction of the game. Since the obstacles come from the right side of the screen and the majority of people are right handed, even within minimalistic, touch anywhere control schemes, right hand obscures the player’s vision. Games with left/right action controls try to use the lower bottom part of the screen as dead (useless) space to ensure player’s fingers do not obscure the vision.

Another problematic aspect of horizontal runners is their lack of “Air Control”: with minimalistic or left/right action controls, one cannot direct the protagonist while on air. Since most of the platforming depends on jumping, lack of air control disturbs the learning curve. The reason for that is, on classical platformers, while on air, player can choose where to fall easily by using air control mechanisms, and users might confuse horizontal endless runner with classical platformers, for they look the same. This confusion brings a harsh learning curve and this can frustrate users easily. The most popular horizontal runner Jetpack Joyride clearly solves this problem by using no platformer elements and choosing a levitating protagonist rather than running & jumping one.

Last problem is, horizontal runners can’t be played by a single hand on mobile cell phones because of the horizontal orientation of the screen, even when they have a minimalistic, touch anywhere control scheme.

Vertical Endless Runners

In this sub-type, there is a protagonist running on the bottom and obstacles coming from the top, or, in most cases, a protagonist running in a 3D setting and obstacles coming from the depth. For this reason, vertical runners use vertical (portrait) orientation on mobile screens to make use of the active area as much as possible. Usually, 3D vertical runner games use a third person camera, and 2D vertical runner games use a top down or isometric perspective.

Majority of vertical runner games use tracks-lanes to organize obstacles and integrate four directional swipe control scheme. Player can change track/lane with horizontal swipes and jump/dive/crouch/roll with vertical swipes (Some of them could also use double tap for other actions to increase the depth of the gameplay).

Track/Lane counts vary, but usually minimum track number (three) is chosen. In general, if a runner have more than three tracks, it’s complexity increases and this can lead to a narrower target audience.

UPDATE: SYBO released a new vertical runner: Blades of Brim is a brilliant example of multi tracked runner game design, yet this decision directly limits the target audience to a more experienced fanbase when compared to their massive audience (1 billion downloaded) vertical runner game Subway Surfers. However, it should be noted that, Blades of Brim expanded the endless runner core game loop (with brilliant additions such as wall jumps and monster jumps) to a more advanced level, and this can bring new norms to endless runners, considering the audience’s increasing expectations from mobile casual games.

Some very polished and balanced games such as Temple Run, Temple Run 2, Traffic Racer and Minion Rush choose gyroscope as part of the control scheme. However, compared to Subway Surfers, we can see that gyroscope has a big negative role in the retention rates, possibly caused by its inconvenience to play in unsuitable places, such as metro, bus, or while waiting in line, etc.

In vertical runners, beginner gameplay rely mostly on changing track/lane actions and on simple jumps and rolls. Air control becomes more crucial for advanced gameplay with longer runs.

For 3D vertical runners, z-depth is very important in executing the actions on time. Usually this problem is handled by a cylindrical vertex shader that manipulates the world coordinates. (In technical respect, Curved World is a very good Unity 3D plugin that simulates the similar results.) This shader also hides the new generated upcoming map parts from player’s sight. The most popular game on this genre, Subway Surfers prefer to twist this shader to left. This decision greatly affects competence over depth for right handed players (It would be a better idea to have a left handed option on the settings). Also, fog has an important role in perceiving approaching obstacles’ z-depths.

  • RSS
  • Twitter
  • LinkedIn
  • Facebook

© 2015 by Orcun Nisli. All rights reserved, so please try the lefts.

bottom of page