Rooftop Runners
Overview
Rooftop Runners is a short-term prototype heavily inspired by Mirror's Edge. The player is placed in a small open space and can find Mission markers scattered across the rooftops, running into them will spawn a collectible token somewhere else on the mark with a time limit. collecting this token will award you a point, but if you don't collect the token in time your score resets to zero. You must navigate the rooftops in the best route to finish as many Missions as possible!
Pre-Production
The project was designed and programmed by myself as a 5 week student project where the goal was to design and prototype a game to the clients specifications. For me I was given "Flow State" as a client brief, with the following objectives;
The game should strip away any extra elements that detract from immediately getting into the game loop
The game should keep the player engaged in skill based activity, utilizing clear goals and feedback.
Make the player feel control without any second thoughts, requiring a clear game loop that requires concentration and fast decision making
With this in mind I immediately thought to "Mirrors Edge", and it's fast paced movement going from building to building, And as I wanted to test my level design skills as well as experience in character controller programming I went to work.
My primary inspiration for the project was the tutorial level in “Mirror’s Edge”. I wanted to extend the gameplay of minimalist parkour in a small but playground esque level into a fully playable game loop. As my brief was “Flow State” I wanted to strip away every common system that halted the players gameplay as possible, Which also benefited in an inherently minimal scope.
Every interaction in the game is created exclusively on the players movement (or lack of).
Running into a objective beam starts said objective and it’s timer.
Running into the objective completes it and rewards a point.
The objective running out of time fails the objective and resets your score.
I ensured there was no objective confirmation, openable doors or anything else that would stop and/or slow the player from running.
Production
One of the major issues I discovered in Alpha was that the time it takes the player to find the next objective was a major slowdown in pacing. While I could have created a direct HUD marker to show the player the objective I felt that would have removed the aspect completely which was unnecessary. To resolve the issue I;
Modified the level to have less line of sight obstructions.
Added a directional sound effect to the objective to help the player quickly locate the direction and distance of the objective
Added a real time distance counter to the HUD to inform the player how many meters they were from the objective
These changes were tested by myself and peers and I immediately noticed it being far faster to locate the objective. These changes had a beneficial side effect in also helping the player rapidly understand which parts of the map did not have the objective, which helps minimize the amount of areas they have to check.
Alpha
Level Design
At the start I wanted to make a level that has a simple loop that explains the premise of the game, getting from building A to building B using Running, Jumping & Wall-Running. With this I made the first mockup of the level with only the 4 buildings. 3 to complete the simple loop and the 4th to experiment with an indoors part of the level.
After this worked out pretty well I slowly expanded the level where it felt naturally right, I used the Wall-Running building as an indoor parkour showcase that acts as a hub between the 3 different height layers the map offers. Heavily inspired by Mirrors Edge, I used White and Grey as the base layers for the map which gives the lightly used red a easy way to find the start of a path to a different building. This makes it natural for the player to seek out different paths so they can get to the objectives fast. From there I set-dressed the map with cosmetic pieces and a trainline to help fill in the environments scene.
By the end the map feels nice and diverse to run around in while having plenty of options to go from building to building.
Level Design
Programming
The majority of the programming was done by myself, using systems like Prefabs, ScriptableObjects and the concept of Object Oriented Programming to create flexible and readable code that I could use to easily and quickly prototype throughout the unit. With this in mind I had the Quest Spawners, Quests & the mechanics to end the quest all as separate scripts, allowing for the flexibility to create iterations on the standard quest without major rewriting.
I struggled implementing the Wall-Running mechanic due to inexperience with certain math so I reached out to my peers & teachers to understand what I was missing and collaborate on that specific code, Learning mathematics ideas like Dot Products.
Post Mortem
I was extremely happy with this project made in such a tight time budget. I tried to create an extremely minimalistic game loop and focused on rapid iteration to ensure the game was fun to play and easy to zone out to. My client brief for this project was "Flow State" and I found myself and playtesters passively falling into the gameplay without getting stumped by any slow and hard to understand mechanics. The level feels like it's on place and the areas of the level feel nice and diverse. The environment feels very connected to the original mirrors edge inspiration while not being a direct remake.
Screenshots
Credits
Primary Contributors
Jackson Adenan - Design
Jackson Adenan - Programming
Harley Bekker - Programming Assistance
Erik Camenzuli - Programming Assistance
Jackson Adenan - Art
Soundsnap - SFX
And A Special Thanks To;
Murray Lorden for being a fantastic design teacher and giving valuable feedback
Karim Marshall, Dean Malotsis, Prince Fernandez and more for playtesting and feedback