This is the ASCII-version of RunToTheStairs. Try the new graphical version (requires WebGL 2.0)!


  • Move your character with the numpad.
  • Pressing [.] or [5] skips a turn. 
  • Trigger a nitro with [space] or [enter] if you have one.
  • Toggle digging mode with [ctrl] or [0].
  • (If the game does not react on keyboard inputs click on it and try again.)

Alternative controls if you don't have a numpad

  • Use [w][a][s][d] for cardinal directions.
  • Use [q][e][z][c] for diagonal movement.
  • (For QWERTZ-keyboard-layout users [y] can also be used for moving down-left.)

If you prefer the Vi keys you can press [v] to switch to the Vi-key-mode. In this mode the Vi keys are used for movement. Hitting [v] another time brings you back to WASD-QEZC-mode.

Music volume {new in v0.3}

  • [+] increases music volume
  • [-] decreases music volume
  • This does not affect sound effects. 

How to play

  • The game is very well explained in this video by ToneHack.
  • This game is about racing to the exit (the stairs) of a dungeon floor.
  • Your goal is to reach the stairs before your opponents do.
    • You loose if your rank is 7th or worse.
    • Better ranking gives better score.
  • There is no combat.
  • Your character is displayed as an "@"-sign.
  • Your opponents are displayed as capital letters.
  • The stairs are displayed as a ">"-sign.
  • You can pick up the following items:
    • : Coins give score
    • : Permanent Speed-Upgrade by 10%
    • : Nitro - Doubles your speed for 10 turns, when ignited.
    • ~ : Drill - Allows you to destroy a wall. {new in v0.2}
  • At the beginning you and your opponents all move with the same speed.
  • The speed of your opponents increases with every dungeon-level.
  • Your opponents can only move in 4 directions whereas you can move in 8 directions (including diagonal movement).
    • Diagonal movement enables you to cut corners and use shorter paths when traversing rooms!
  • There are 4 possibilities to overtake opponents:
    • Take advantages of your diagonal movement in rooms.
    • Find a shorter path.
    • Increase your speed by speed-upgrades or nitros.
    • Dig your own shortcut using a drill.  {new in v0.2}
  • You are supported by a magic navigation system:
    • One possible path to the stairs is always indicated by a colored trace.
    • Be aware: This path is calculated considering 4-way-movement!
    • Therefore it is by no means ideal when you are capable of 8-way-movement!
    • Always consider alternative routes in order to take advantage of your ability to walk diagonal.
  • How digging works:  {new in v0.2}
    • You need at least one drill "~" in order to be able to dig.
    • If you have a drill, you can press [ctrl] or [0] to start digging-mode.
    • When in digging-mode, the @-sign representing the player is displayed in yellow and the walls are displayed as "#"-signs to allow better counting.
    • Your movement speed is halved as long as you are in digging-mode.
    • Just bump into a wall to remove it.
    • The removal of every wall-tile consumes one drill.
    • You automatically leave digging-mode when you move towards an empty square.
    • You can collect as many drills as you like. This allows you to dig long tunnels by investing the corresponding amount of drills.

Examples how overtaking works

Overtaking by diagonal movement

See how I manage to overtake Runner H by moving diagonal:

This was very close but it worked since I could cut the corner! :-)

Overtaking by taking another route

Here I am overtaking runner H by taking another route so Runner H does not block my way:

Overtaking by igniting a nitro

Here I doubled my speed by igniting  a nitro in order to overtake runner E. The @-sign representing the player is displayed in red as long as the player has double speed. 

Overtaking by digging a shortcut using a drill {new in v0.2}

Here I am overtaking runner G by digging a shortcut using a drill. The @-sign representing the player is displayed in yellow as long as the player is in digging mode. 

How to have fun in your first games

  • Play fast and don't worry too much about perfect movement - it's a racing game! ;-)
  • Just follow your navigation system.
  • Only pick up Items if they lie directly on your way.
  • If you are stuck in traffic, just follow the other runners until there are larger rooms which allow overtaking by diagonal movement.
  • Don't worry about score too much.
  • Just focus on overtaking in your first games and watch yourself climb the rankings shown at the right side of the screen.
  • Just race like this:


How to get a high score

  • In this game you get points in the following situations:
    • When you pick up coins.
    • When you finish races (when you reach the stairs).
  • The points you get for finishing races depend on your ranking:
  • Getting no points in a race also means Game Over for the player.
  • Picking up many Speed-Upgrades and Nitros may help you to survive later levels when your opponents move faster.
  • But be aware that surviving 10 levels ranked 6th gives you as many points as one time finishing 1st!
  • So there is always a trade-off between taking the shortest path and making a detour in order to pick up an item.
  • I'm very curios to find out what scores would be possible in my game. So I would be pleased if you could post your high-scores in the comments below! :-) 


RankVersionWhoScoreDungeon LevelVideoComments / Strategy / Great Moments
1v0.3RantotheStairs244 🏆 21 see video🏆 Current world record of RunToTheStairs! 🏆
A neat maneuver where he overtakes two guys by digging trough a wall can be watched here.
2v0.3RantotheStairs243 20"Finally. Now I can live. 243. Level 20. Your move." "Funny enough, I was actually about to leave for a long commute so this was a bit of a speed-run, I'd say about 20min.  I wish I could remember my speed after lvl1, it was either 160 or 170, and I used nitros excessively in the first 6 or 7 rounds so I could cover lots of ground. Such a great game. V0.3 is great, drills were a genius next step."
3v0.3Webmant22921 "Very well designed game, makes it very difficult to make some decisions."
4v0.0Steffen133722021 "Looks like it´s InfuriatedBrute's turn to beat that ;D ... So as for strategy: Always get permanent speed upgrades. Use Nitros in earlier levels to gain access to a permanent speed boost and still finish first. Restart first level until you have at least 190% permanent speed after first level. This way you have plenty of room in the next 5 levels to get all the upgrades and still easily finish first. On this try I had been 3 times as fast as the enemies on end of level 3. That being said - I´m eager to see who is obsessed enough to get above 500 points or to level 25 first ;D" 
I really like how Steffen1337JohannesvH and InfuriatedBrute maxed out my game! Steffen has even written a mathematical treatise about RunToTheStairs in this post!
5v0.0JohannesvH21322 🥉 "I am getting closer... New level record" "I just had 160% in the first round. Maybe I should be more patient for restarting it until I have more in the first round. I think the key to getting a lot of points is also to collect a lot of $ (whenever you can) especially in the first rounds where you're much faster than the others."
Achievement 🥉earned for 3rd best dungeon level result!
6v0.1RantotheStairs211201090% speed!
7v0.2JohannesvH20420"Sometimes you can really use the drills to your advantage. Nice new feature! I think 220 is definitely beatable..."
8v0.4Flooderbenga20219"Should have looked for more ways of using drills instead of just spamming nitros in later levels. Surprising how speed boost is nearly worthless in later levels but crucial in early ones. Really like this game :)"
9v0.2myself18821 I achieved this score while playtesting v0.2.
10v0.3Aix018720"I got 187 points after 20 races. Maybe highest possible for me!"
11v0.0InfuriatedBrute18619"Strategy: Log stats,  nitros -> 2$ is fine at any point, lategame go for $ over position, block enemies if they're faster than you, prefer open corridors as they give more opportunities for items (even if you can't see anything). Oh yeah, and restart until you get an upgrade in the first room."
12v0.0JohannesvH18019You have improved a lot compared to your first try. Keep going Johannes! :-)
13v0.0lisan1234517320"Extremely innovative game! Very addictive and fun. Thank's for the fun. Here is my high score, I made an account just to post it. Thanks!"
14v0.0Steffen133716317"strategy:  get all permanent speed  boost by any costs." 
Wow: Steffen had still 26 nitros left at the time he went Game Over!! I wonder what score would have been possible If he just fired them up in time?
15v0.4gim15820"best run so far (and deepest), level 20"
16v0.1Aix015616"Fun, but tough!"
16v0.0InfuriatedBrute15616"Very fun game, very polished and innovative. ... My strategy is always go for upgrades, go for nitros that are <10 away (sometimes more), save the vast majority of them for lategame."
18v0.4gim15420"heh, was close to previous best"
19v0.4RantotheStairs14928 🥇 see video"Still love the game. Was a tough adjustment at first, but a few minutes of playing and I was used to it. My newest thing is trying to get as far as possible rather than high score."
Achievement 🥇earned for best dungeon level result!
A great maneuver where RantotheStairs manages to overtake the entire field by using a nitro and a drill can be watched here. From last to first place - what a huge shortcut! :-)
20v0.0owlmoth / astroskag14821 see video"Not the top of the leaderboard, but I'm pretty proud of it. The way I'm kind of mentally strategizing is while I'm faster than the other runners, saving nitros and getting boosts at all costs. Once the other runners are faster than me, I only burn nitros when I'm out of the top 6. I broke my own rules in level 9, though, diverting just before the finish line to pick up a boost that was way off track, and then burning nitros so I'd be able to catch up before the end of the race; I don't know if it was worth it."
21v0.3xyncht14417"Game is very fun!  Given your current leaderboard, may come back for a second playthrough and see if I can get top 10 ;)   Boosts are a big deal, of course, but the exponential enemy speed growth means that past level 14ish it doesn't much matter if your speed gets another ~2% improvement-- nitros (and maybe drills, haven't used those effectively yet) are the only things keeping you alive.  Also for the last several levels of a run, when you're barely making it each time, coins are where your points come from.  And when you know you're dead, it's time to fetch coins till the ref calls the game on account of everyone else finishing."
23v0.4gim13717 "this time I was trying to reach higher in terms of level, but at some point it becomes pretty complicated"
24v0.4gim13621 "trying to get deeper, but it's really hard. would "almost" reach 22, but was I was one nitro short"
25v0.2nobusawa13517"I was finally able to beat my previous score, grabbing every speed boost I could find helped a lot but it seemed like sometimes they just weren't there or were so far away that I never saw them."
25v0.0tcookiem13517"This game is kind of addictive. Main strategy was to go for any speed upgrade I saw on the earlier levels and most nitros, then I had about 550% saved up for when they overtook me in speed. Then I used up about 20 nitros to make it through the last few levels before I ran out."
27v0.0JohannesvH13218"A really nice game :)"
28v0.4gim13017"few random ideas:  * some bonus that either permanently or temporarily changes nitro duration and or multiplier  * jump-over-jet-boots - say a) your speed is 2x other runner (or during boost) b) you both go in same direction c) you use boots (for 1 turn) == jump over him - could be handy especially in tunnels near the end  * nuke - blow up all walls in some visible region"
29v0.4gim91312723 🥈see videoA nice maneuver where gim913 worked himself up from position 7 to 3 by digging a 3-tiles-long-tunnel can be seen here.
Achievement 🥈earned for 2nd best dungeon level result!
30v0.0Xecutor12416"That's more fun and addictive than one might think :)"
31v0.0Tone11818"... but in the end the other racers were too fast!"
32v0.0ToneHack11715see videoA daredevil overtaking maneuver where ToneHack manages to overtake "Runner A" just in the last possible moment by igniting a Nitro can be seen here.
33v0.0Aix011311"Fun game!"
34v0.4gim11113"dead with 8 nitros and 8 drills :-("
35v0.0Rogueliker10214see videoA smart move where Rogueliker gets past "Runner C" by overtaking him with a double diagonal move at a junction can be seen here.
36v0.4io9523 🥈Achievement 🥈earned for 2nd best dungeon level result!
37v0.0Makeyejr9112"Feel pretty happy about that score. Probably could have scored higher if I didn't get greedy trying to go after power ups in the last level."
38v0.0nobusawa9014"Pretty cool game, I found it cause Nookrium played it on his youtube channel."
39v0.0owlmoth8915"It's a very creative take on the roguelike mechanic to not be combat-based, but stays true to the spirit by maintaining all the high points of the genre like resource management, unlimited replayability, and "weighty" risk vs. reward choices - trying to decide if it's worth detouring for a power-up feels meaningful in the context of the game."
40v0.4red_kangaroo8315"Wow, you made quite a progress! The game is beautiful and really cool. :) And congratulations on the popularity, RTTS seems to be cropping up near the top of games playable in browser."
red_kangaroo is a member of the dev-team of IVAN so I am very proud that he played my game!
41v0.0myself6910I must admit, my score is not that good. So maybe I need a little more practice on my own game! At the moment I just enjoy playing the other games of the 7DRL Challenge 2019. All 7DRLs I already enjoyed can be seen in this collection. Currently my favorite games are Pocket Dimensions RL by Lauren HArs Moriendi by simonasker and Inner Life by dungeonyak.
42v0.0patrickdavison5510"55 on level 10!"
43v0.0cubicDisco539see videoA spectacular overtaking maneuver where  cubicDisco overtakes 2 runners at once can be seen here.
44v0.0shaddockh388"Wow!  This is surprisingly addictive.  I haven't gotten too far, but diagonal movement is definitely key here."
45v0.0Nookrium20 *2 *see video* Game has not been finished in the video. A nice sequence of moves resulting in two overtakes by cutting corners can be seen here.

Please post your score and dungeon level in the comments below and you will get listed here. If you post your score here, I will definitely play your game and give some feedback. If you provide a video, I will link to it here and highlight some special moment in the "Comments" column.

If you do not have an and do not want to create one, just post your score in the comments-section of one of the linked videos. I will also check there every now and than and will update this table accordingly.

If your score would be the new top score of this table it would be nice if you could also provide a screenshot of your game-over-screen. You could either post it or link it in your comment or send it per email to gerhard[dot]wonner[at] However if your score does not beat the current top score it is not necessary to provide a screenshot. Just posting the score is enough in this case.


  • This is a score-based game with an infinite number of levels.
  • If you do not know how speed can work in a turn-based game:
    • I implemented the speed-mechanic using the "Speed scheduler" of the rot.js library.
  • In each new level the speed of all opponents is increased according to the following table:
Dungeon LevelOpponent SpeedIncrease
  • As you can see, this is an nonlinear function since the increase of the speed also increases!
  • The increase of the players speed is on the other hand limited by the amount of Speed-Upgrades he finds.
    • Since the number of Speed-Upgrades does not increase from level to level, this means that the player will at some point no longer be able to catch up to the opponents and will eventually loose.
    • The better the player performs, the farther he gets and the higher his score will be.
  • In order to prevent all opponents from using the same path they sometimes get "confused" and take alternative paths which are inferior to the shortest path.
    • This lowers the difficulty and enables the player to get ahead of them even with lower speed.
    • Confused opponents change their color to magenta.
  • The items are somehow automatically balanced due to the game mechanic:
    • E.g. if I decided to double the bonus of a certain item this would only affect the maximal length of a detour an optimal playing player would take into account in order to get this item.
  • The possibility of digging allows the player to take greater risks when taking alternative routes, since this will enable him to rescue himself by spending some resources (drills) if his route decision turns out to be wrong. {new in v0.2}

Roguelike elements

  • Procedural generated dungeons
  • Permadeath since Game-over means Game-over
  • The whole game is around an implicit hunger-clock since you inevitably loose if you lurk around too long in one level.
  • Turn-based
  • Grid-based
  • Resource management: The player decides when to use his nitros or drills. They can be taken to the next level.

Credits and links

  • This game was created during the 7DRL Challenge 2019.
  • I was inspired to take part in this challenge by Roguelike Radio.
    • The episode covering RunToTheStairs and other games of the the 7DRL Challenge 2019 can be found here.
    • The episode that inspired me to make a 7DRL myself can be found here.
  • I used  the JavaScript roguelike-library rot.js by Ondřej Žára.
  • {new in v0.3} The music was composed by Dekkanoid. I am absolutely blasted by what this Australian guy created in just few hours!
  • The sound effects have been taken from the following sources:
  • The idea of having an 8-way moving character outmaneuvering 4-way moving characters is stolen from "Ananas aus Caracas". This is a game one develops when doing the rot.js-tutorial. My game is based on my own version of "Ananas aus Caracas" which I kept extending after finishing the tutorial.
  • The animated screenshots where created using the software ScreenToGif.
  • RunToTheStairs has been covered by the following youtubers:
    • ToneHack: A quite long video which explains the game very well and discusses strategic and tactical decisions. 
    • Rogueliker: This video by a very experienced and quite popular roguelike player gave RunToTheStairs a huge boost in popularity.
    • cubicDisco: Funny video from a very relaxed Australian guy who plays RunToTheStairs blind and learns the game while playing.
    • astroskag: Short but fast-paced video with great music.
    • Nookrium: The shortest video and at the same time the one with the most views. It's fun to watch since you can see Nookriums reactions because he is using a facecam.


I have to apologize that the following text will have an accumulation of the word "amazing" in it. The reason for this is, that what happened yesterday (25.03.2019) was just absolutely ... AMAZING! So I want to share it with you! :-)

As I checked the most popular web games on I found my game RunToTheStairs on first place out of 55,563:


And as I checked the most popular games without any filter it was listed 7th out of 157,274:


I just could not believe this and thought that my browser was fooling me and somehow biased my game to the top. So I asked some nice guys from Discord to check it and they just saw the same screens as I did. Isn't this amazing? I don't know exactly how this popularity ranking works. The best source I found is here. I just want to thank Rogueliker since he boosted the popularity of my game with his nice video about it. Just see the huge step the click-rate did after he posted it:

I also like to share with you some geographical data I got from Google Analytics about the countries the users came from (the data also comes from 25.03.2019):



Someone on the Maldives probably played my game. I just can't believe it. Go out and enjoy the sun at the beach... and then come back and play RunToTheStairs again! ;-)

Since most of the players came from the USA I will give a little more detail here:


Hey why is nobody in Alaska playing my game? Somebody has to tell them to do so! ;-)

How clicks evolved since then

Meanwhile RunToTheStairs reached the milestone of 3000 views.

The visitors came from 84 different countries!



What the judges think about RunToTheStairs

Following you find the 3 official reviews of the 3 different jam-judges who reviewed my game for the 7DRL Challenge 2019:

  1. "This one is quite original. And addictive. And not as simple as you might thing from the description. The only feature that is IMO absolutely required, but missing is the ability to pan the view around. The game is technically all about finding an optimal path that short enough and have number of collectibles maxed. But you can only rely on the very restricted field of view and pathfinder. I wouldn't mind at the very least have some kind of predicted pathfinder, see where it will path if I'll go there. Right now deviation from the main route is always a gamble. There can be different path from that nook, then you are fine, or it can be dead end and then you are screwed. There were roguelikes without combat, there were roguelikes about getting from point A to point B as fast as possible, but in this format, probably not. Let's call it moderately innovative. But I think there could be much more to the game. More upgrades, some way to hinder AI players... As much as the game tries to squeeze into formal rouguelike definition, I think it is too shallow to be called true roguelike."
  2. "Run to the Stairs is a tidy, small game that adds some nice gamifications around a simple central mechanic. And a quick note up front before discussing the game proper, the author has done a lot around the central game to add to the experience of play: there is a long and interesting description of the mechanics on the game’s page, there are clear information panels in the game itself, and the author has also implemented a sort of bespoke leader board on the itch page, all of which add to the experience. The core mechanic of this game really worked for me – using diagonal movement and player decisions to outsmart pathfinding AI. I also think that it was wise of the author to focus on refining this central premise, rather than trying to add too many bells and whistles. The inclusion of the “fastest” line, the granular calculation of racers’ speed, and the simplicity of the power ups all contribute in a clear way to the central experience of racing. I did find myself wishing for slightly more visual polish. The choice of typeface for the ascii-characters I found particularly sharp and vertical, and the colors could have been chosen with more care. More substantially, because the game hinges so completely on moving across corners, some visual indication of the grid would have helped ease the eyes, rather than having rooms and walls exist as just large contiguous sections of black and grey. Regardless, this game is definitely worth a play. "
  3. "An interesting take on the RL genre, and a well executed one. Little techniques and tricks here and there to get the advantage and good use on the nitro makes it very fun and interesting to play. I would say that it feels overwhelming the more you play by placing the enemy units way ahead and also giving them an increased scaling speed over you that can be really hard to beat. Strategy can take you so far, since you can't see far ahead to calculate better paths and if upgrades worth your position investment. Overall I had a great time playing and it's a concept I would love to see improved on and grow into an actual game."

I wanna thank the judges for the detailed and constructive feedback! 

The reviews of all the exciting games in the challenge can found on I want to congratulate dungeonyak for winning the challenge with his imaginative game Inner Life - a well deserved victory!

Non-official reviews 

I also wanna share with you this very nice comment by owlmoth about which I am very happy:

"I've been playing a lot the last few days, this is my best score so far. It's a very creative take on the roguelike mechanic to not be combat-based, but stays true to the spirit by maintaining all the high points of the genre like resource management, unlimited replayability, and "weighty" risk vs. reward choices - trying to decide if it's worth detouring for a power-up feels meaningful in the context of the game. The gameplay is also a lot snappier than you'd expect from a turn-based game, another departure from the norm that just works really well here. This is what indie games are all about for me; taking some risks, making some less-common design choices, leaving the beaten path and finding a fun little mechanic off in the weeds somewhere.  If I could add anything, it'd only be an 'instant replay' feature; to be able to go back after the end of a level and rewatch the race in 'real' time. Thanks for sharing this with us!"

Post challenge development

v0.0Submitted version for the  7DRL Challenge 2019
v0.1- New alternative controls for people lacking a numpad (WASD-QEZC-mode) - The probability of opponents getting confused has been decreased. - Opponents now change color if they get confused. - Opponents already start with some grand-prix-points in order to make it more challenging for the player to climb up the rankings. - Some colors have been changed.
v0.2The player can now dig tunnels!  For this purpose a new collectible item called "drill" was introduced which enables the player to remove one wall element by bumping into it.  The possibility of digging allows the player to take greater risks when taking alternative routes, since this will enable him to rescue himself by spending some resources (drills) if his route decision turns out to be wrong.
v0.3- The game now plays music composed by Dekkanoid. I am absolutely blasted by what this Australian guy created in just few hours!  - The game now emits one out of 3 burning sounds (random choice) on each step the player takes while burning a nitro.  - I moved the players position on screen towards left in order to increase the field of view since the player mainly moves from left to right.  - Some fixes regarding sound effects.

Plans for the future

I consider to implement the following things:

  • Different tilesets for different groups of levels to give each of them a different theme.
  • Providing different music-tracks fitting the themes of the levels.
  • Implementing a server-sided back-end to manage leaderboards and collect statistics.
  • Implementing an achievement-system.
  • Particle effects for nitros and when digging.


Log in with to leave a comment.


144.  Game is very fun!  Given your current leaderboard, may come back for a second playthrough and see if I can get top 10 ;)   Boosts are a big deal, of course, but the exponential enemy speed growth means that past level 14ish it doesn't much matter if your speed gets another ~2% improvement-- nitros (and maybe drills, haven't used those effectively yet) are the only things keeping you alive.  Also for the last several levels of a run, when you're barely making it each time, coins are where your points come from.  And when you know you're dead, it's time to fetch coins till the ref calls the game on account of everyone else finishing.

Pretty happy to make it this high on the leaderboard on my first try, though D:  I could probably have gotten another 1st place with better early play in terms of boost collection and mid-game nitro usage.

Thank you for playing my game and sharing your score. I included you into the high-score-table. Congratulations, you are currently on rank 16. 144 points are a very good score considering that it was your first try. I am very curious, how high you can climb on the leaderboards!
Have you already tried the graphical version of RunToTheStairs? It looks much better, but requires a modern browser which is supporting WebGL 2.0.

I like your analysis of my game. In fact the game has several phases where different items are of different value and different tactics have to be applied. But there are no hard borders between these phases. Getting a sense for these phases is crucial for getting a high score. Also you have to make a tradeoff between using nitros for finishing in good positions in early levels vs. using them for pure survival in later levels.