University competition-winning game made in a semester


In 2025, I took a class about developing video games at university. It had two assignments, creating a game design document and creating a vertical slice of the game. I created "Mirage Runner" (MR). MR is a first-person action platformer slasher set within a harsh desert environment. The game combines fast-paced movement with melee combat, taking inspiration from similar games such as Ghostrunner. The player navigates the level using movement abilities such as wall-running and dashing while fighting enemies and interacting with destructible objects. The goal of the game is to avoid taking any damage or setting off traps while sneaking around the level to destroy pots, vases, and other containers which contain rewards. The aim is to do this in the fastest time as there is a multiplier on the rewards collected based on how long it took for the player to exit the level. The player can exit the level at any time, provided that a minimum value has been collected from the level by returning to a wagon stationed outside the main area.
Development Scope
It was developed as a solo project over approximately six weeks as part of a university assessment. The completed vertical slice consisted of a single playable level designed primarily as a demonstration of the game's core mechanics, visual direction, technical systems, and environmental art. The project was subsequently demonstrated in a competition, where it achieved first place. The project was developed using Unreal Engine 5, with additional software including Blender, Substance Designer & Painter, Photoshop, Audacity, and Quadspinner Gaea 2. Many of Unreal Engine's systems were utilised including MetaSounds, Lumen, and Niagara.
Most assets were created by me for this project except the following: rock meshes were sourced from Quixel Megascans, while a number of textures used on 3D assets also from Megascans. These assets were incorporated into the project alongside custom-created assets and materials. Sound effects were sourced from Freesound rather than created from scratch. However, the audio was processed before being integrated into the game. This included trimming recordings, removing unwanted background noise, and applying filtering to make the sounds better suited to the game. No generative AI was used in the creation of this game.
The development process was constrained by the approximately six-week development period. As a result, development focused on creating a functional and visually coherent vertical slice rather than implementing a large number of gameplay systems.

Setting
The game is set in a low-fantasy desert region in a rapidly changing late 1800s world, heavily impacted by industrialisation and war, with an atmosphere drawing inspiration from Japan's Meiji Restoration. The plot unfolds one month after a civil war has ended, pitting the losing faction, the Imperial Loyalists (who represented stability and tradition), against the victorious Revolutionaries. Although the Revolutionaries fought to preserve independence, they are portrayed as a corrupt power. The player takes on the role of an unnamed, silent protagonist who is a former Imperial Loyalist who was betrayed and presumed dead during the war. Now that his side has lost, the protagonist has returned to civilisation only to find the new government oppressing the populace, forcing him to steal supplies from the Revolutionaries to fund and arm a desperate rebellion.
Programming and Gameplay
All gameplay programming was implemented with C++, with Blueprints used only where it was more convenient than writing C++. The primary systems included the player movement and dash system, wall-running, melee combat, destructible objects, jump pads, cannon enemy AI, scoring, and the UI/HUD. These systems were developed alongside the level and art assets so that they could be tested and iterated within the playable environment.
The player controller was designed around fast traversal, with wall-running and dashing providing alternatives to standard movement with camera sway to add to the feel of the movement abilities. The melee combat system was integrated with Unreal's animation system so that attacks could trigger gameplay events at appropriate points in the animation. Destructible objects were also implemented as gameplay systems; for example, destroying a clay pot causes it to break into individual pieces. These objects were connected to the scoring system, encouraging the player to search the environment for breakable targets.


The main enemy of the vertical slice is a cannon that detects the player when they enter its detection range and fires cannonballs towards them. This provides a ranged threat that the player must respond to using their movement abilities. Other enemies which would have required different strategies to beat were planned but not finished in the time constraint. The level itself was developed through prototyping, with structures such as pillars, ruins, jump pads, and enemies being used to guide the player. Breakable scoring objects were marked with beams above them to make their location visible.


Art & Audio
I created the majority of the game's visual assets myself, including the 3D models, materials, visual effects, animations, UI, and HUD icons. Blender was used for modelling, while Substance Painter and Substance Designer were used for texturing. All custom materials were created using Unreal Engine's Material Editor and used PBR workflows, incorporating maps such as base colour, normal, roughness, and metallic where appropriate. Some rock meshes and textures were sourced from Quixel Megascans, allowing development time to be focused on creating gameplay-specific and architectural assets. The environment was designed to appear weathered and worn, with materials and props supporting the game's desert and war-torn setting.

The desert terrain was created using QuadSpinner Gaea before being imported into Unreal Engine. Gaea allowed the terrain to be developed with large-scale natural variation and geological features that would have been time-consuming to create manually. The generated terrain was then combined with manually created structures, props, ruins, and gameplay elements within Unreal Engine. This allowed the environment to retain a natural desert appearance while still being designed around the requirements of the gameplay and player traversal.

Visual effects were created using Unreal Engine's Niagara system, while Lumen and post-processing were used to establish the lighting and dusty atmosphere. Lumen was particularly useful during development because it allowed lighting to be iterated quickly without repeatedly baking lighting as the environment changed. Fog cards were also used to create additional atmospheric depth. By placing semi-transparent cards throughout the environment, distant dust and haze could be simulated without relying on more expensive volumetric effects. This provided both artistic control and a relatively inexpensive method of making the large desert environment feel more atmospheric.


The animation system was implemented using Unreal Engine's Animation Blueprints and related animation assets. I created the majority of the animations myself and Animation Montages and Animation Notifies were used to control specific actions and synchronise animation with gameplay events.
Audio was sourced from Freesound.org and then edited to suit the project, including trimming, noise removal, and filtering.
Optimisation
Due to the six-week development period, there was no dedicated optimisation phase. However, optimisation was considered during asset creation by keeping models at relatively low polygon counts and using the lowest practical texture resolutions. This helped avoid unnecessary geometry and texture memory usage while still maintaining the intended visual quality.
A more comprehensive optimisation pass would have been beneficial. In particular, trim sheets could have been introduced for repeated architectural and environmental assets. This would reduce the amount of unique texture data required while also improving consistency between related assets. The limited development time meant that implementing a trim-sheet workflow across the existing assets was not feasible.
Challenges & Future Improvements
The primary challenge of the project was managing the scope of a complete game experience within approximately six weeks while working alone across programming, 3D art, VFX, level design, and technical implementation. This required prioritising the systems that were most important for demonstrating the core concept rather than attempting to build a larger variety of content.
The main area I would improve is the level design. Although the wall-running system was functional, the final level was relatively open and did not make enough use of the mechanic. A redesigned level would provide more vertical routes, tighter spaces, and interconnected structures that encourage the player to combine wall-running and dashing. I would also introduce additional enemy types to create greater combat variety, implement trim sheets as part of a more deliberate optimisation pass, and spend additional time on environmental detail, animation, and general polish.

Despite these limitations, the project successfully demonstrated a complete playable vertical slice containing custom art, movement, combat, enemy AI, destruction, UI, terrain, lighting, and visual effects. The project also provided experience in integrating multiple areas of game development into a cohesive playable experience and ultimately achieved first place when presented in the competition.
