Reel Run

Stardust Studios

Lead Designer & Lighting Artist, August 2024 - May 2025

Team size of 12 people

Reel Run is an Unreal Engine game about traversing three different films: an old western film, a horror film, and a telenovela romance film. The player must battle through these films in order to escape them, and only once the boss of each level is defeated can they move on to the next film.

The project was completed over a 32 week timeframe with a 12 member team.

Western Level

Level Designer and Lighting Artist

The western level is one of the many films contained within Reel Run. The player fights through a saloon, a train, and then a cave in an attempt to subdue a group of bandits. The aim was to make the level feel like an old western film, with desaturated colors and paper-like effects on screen to immerse the player in the film.

Final scene with full lighting, post processing, and asset population

Lightmap complexity of stationary and movable lights

Final scene with full lighting, post processing, and asset population

The Saloon

In a more visual sense, this scene is the start of the western level, in which the player fights through hordes of bandits. It’s a small space, designed and lit with the idea to add visual interest to an otherwise uninteresting area. The player’s eyes are drawn toward the bottles on the bar, which are throwable and can stun enemies. They are also drawn to the bright areas of the floor, where most of the combat takes place. This scene utilizes lumen for high quality settings, however it has a fallback baked lightmap in GPU lightmass for medium settings and below.

Unlit view of scene with full asset population

Detail lighting view

The Train

After the saloon, the player chases the bandits to the train, where the lighting streams in from windows and illuminates a tight corridor of combat space. I did not design this level, however I was responsible for all of the asset population as well as the lighting to bring this level from a whitebox to a finished state. Because this is a smaller scene with tight gameplay, I was able to have more lights contained in the scene and still achieve quite good performance. This level also uses lumen, but with a baked lightmap to fall back on for lower settings.

Unlit view of scene with full asset population

Detail lighting view

The Cave

Unlit view of scene with full asset population

Detail lighting view

Saloon GPU lightmass bake

I was the primary level designer for this space in addition to being the lighting artist. This was the game’s first level, and because the creative director was still figuring out what we wanted to do with the combat, I designed the space as a pseudo-playground that could support various forms of combat. This allowed us to try several different styles before we eventually settled on a wave system where enemies run through the saloon doors through 5 consecutive waves. This allowed for bursts of fighting that last around 15-30 seconds each. This, combined with adding destructible tables and chairs, led the space to become a baseline for how Reel Run should be designed as a whole.

Lightmap complexity of stationary and movable lights

The player chases the final bandit to the cave, where they fight their first boss. I fulfilled a similar role for this level as the one I had on the train level; I took the whitebox of the level and turned it into the final version (pictured below). This level was a particular challenge to light, as there was little illumination from the directional light to begin with. There are small lanterns placed around the floor to add small pieces of illumination, but the key lights are two spotlights shining on the primary combat space to further illuminate the area. The playable space is to the right of the fence, and the lighting was aimed to highlight that with a sharp cutoff beyond.

Lightmap complexity of stationary and movable lights

Final scene with full lighting, post processing, and asset population

Fallback Baked Lightmaps

For all of the levels in Reel Run, realtime lighting with Unreal Engine’s lumen was prioritized as the main way to experience the game. However, in order to support lower end hardware, high quality baked lightmaps were included as well on medium settings or below. These were aimed to be artifact free and as performant as possible while also taking up the least amount of RAM possible.

Train GPU lightmass bake

Cave GPU lightmass bake

Horror Level

Level Designer and Lighting Artist

The horror level was the second film developed for Reel Run. The player takes on the role of a serial killer who has infiltrated a campground. The goal is to kill the campers. The aim here was not to make the level scary, but rather make it incredibly atmospheric and haunting. To help achieve this feeling, it’s one big open world map, allowing the player to travel from place to place within one contained level.

The mess hall with unlit view (top left), lightmap (top right), detail lighting (bottom left), and final version with full lighting and post processing (bottom right)

The Theatre

After the mess hall, the player then navigates to the theatre. The theatre is highlighted with red lights to indicate that enemies are nearby, and the hanging lights on the path circle it to encapsulate the critical path.

I kitbashed the theatre together with just 3 plank assets from our art team; from there, I placed benches, then foliage painted rocks and trees (grass was on the landscape material). The lighting was the last part, with the only difficulty being the hanging lights. The final version of them involves two point lights in a triangle shape, neither of which cast shadows. This was the most performant version, and also the version that retained a high level of visual fidelity.

Other Areas and Optimization

Pictured to the right are several other areas in the horror level. Designing these areas was straightforward once I had the previous areas setup; however, getting this level running at a smooth framerate was anything but simple. I ended up utilizing WPO disable distance on the foliage, in addition to baking the global illumination in GPU lightmass for all quality settings. I also set the render velocities to be during the base pass, as well as disabled ray tracing on the grass meshes.

From here, the level had gained a very substantial amount of FPS (from around 5 FPS to around 30 FPS on our benchmark machine), however to reach the goal of 45 FPS, I then swapped the reflections to screenspace, and then swapped our anti-aliasing method from TSR to TAA. The final push was switching the grass from dynamic shadows to contact shadows only, which did hurt the visuals, but massively improved the performance.

After the western level set the benchmark for how we wanted to design our levels, I decided to take a more creative approach to the horror level by designing it as one large open world level. This was partially to keep the gameplay fresh, but also to challenge the team to create such an experience. As the sole designer of this level, I was given a lot of freedom to create this level, as our creative director simply wanted the level to feel spooky and atmospheric. The boss fight takes place in the cemetery, with the fight being designed by our gameplay programmer. Signage and lighting helps guide the player to the correct path through the forest, with nearly all players being able to find the critical path with no outside help. Campfire smoke later in the level is also used to highlight pathways the player should visit, with the second act using pillars of smoke to highlight key locations.

In addition to this, our performance target was an RTX 2060 running the game at 45 fps at 1080p resolution with full ray tracing; I was responsible for ensuring this level hit that target. It ended slightly above that to be closer to 50 FPS.

The Mess Hall

This scene is the start of the horror level, in which the player fights through a series of campers who were in the mess hall area of the campground. It’s a large room, with red light to guide the player to enemy spawns and breakable tables and benches. The general lighting is blue with red as the accent to lead the player to enemies.

The lights hanging from the beams sway in with a small point light attached to the top and a larger, stationary spotlight to illuminate beneath them. This area is designed as a large arena that facilitates groups of enemies that surround the player.

The theatre with unlit view (top left), lightmap (top right), detail lighting (bottom left), and final version with full lighting and post processing (bottom right)

Pictures of key locations in the horror level (top left: campsites, top right and bottom left: cemetery, bottom right: radio tower)

The last piece of the horror level, after the post processing, was the custom volumetric fog. A video demonstrating the custom material is below and to the left. The post processing values are below. In addition to these settings, an outline shader and VHS post processing shader are also applied.

Romance Level

The third level developed for Reel Run took heavy inspiration from romance telenovela films. The player is Alejandro, a man fighting with his brother, Ignacio, for Maria, a woman whom both brothers are in love with. The player fights through Ignacio’s supporters on a boat deck and in a dining hall, before finishing the level with a boss between the brothers in a club.

Lighting Artist

The boat deck with unlit view (top left), lightmap (top right), detail lighting (bottom left), and final version with full lighting and post processing (bottom right)

The boat deck’s fallback baked lightmap for medium settings and below.

Boat Lighting

This level is the start of the romance film. It has a total of 30 stationary lights, including the directional light. This scene had a lot of performance issues because of how it was designed, so I had to work around a lot of architecture and mesh issues in order to get it running well.

This scene ended up running slightly better than the horror level’s outside areas, which was more than enough performance to hit our benchmarks. It still has a fallback baked lightmap, which can be seen below in four different instances. The images to the left demonstrate the lumen implementation.

The dining room with unlit view (top left), lightmap (top right), detail lighting (bottom left), and final version with full lighting and post processing (bottom right)

Dining Room Lighting

After the boat, the player goes below deck into the dining room. The lighting here consists of a few movable candle lights on the destructible tables, with the wall lights being stationary. The hanging lights from the ceiling went through a few iterations, but eventually ended up with one singular rect light covering the ceiling of the level.

The lightmap for this scene has few overlapping lights, and this is the only scene in the entire game without a lighting bake of any kind. It runs incredibly well and has roughly twice the performance of the horror level. Additionally, baking this level proved to be nearly impossible because of how many moving curtains and destructible furniture the level has.

The club with unlit view (top left), lightmap (top right), detail lighting (bottom left), and final version with full lighting and post processing (bottom right)

All three of these scenes use a similar post processing setup with slightly different values for each area. Below is the post process volume for the club scene, which has a good demonstration of how post processing was done for the romance level as a whole.

Club Lighting

The player finishes the romance film with an adventure into the club, in which they fight the boss of the film. All of the emissive lights on the walls and ceilings use a similar strategy to the dining room, with one rect light covering the level. The difference is that these are baked, where the previous level had them as realtime stationary lights.

The lightmap is quite optimized, which was a point of concern for a club filled with lights in every corner. After several iterations, this is the final result. It uses a baked lightmap with screenspace reflections for the clearest, artifact free results.

Project Takeaways

Reel Run taught me a lot about lighting in ways that really expanded my knowledge of the practice. Just putting lights in a scene will tank performance before long, and using new features like lumen in Unreal Engine 5 look good, but oftentimes lead to bad performance and graphical artifacts behind the scenes. I utilized cutting edge features of Unreal Engine for this project, and I learned a lot about how the technology works and how it impacts performance. I can make a scene look amazing, but if it doesn’t perform well, then there really isn’t any point in it. I learned that performance is key, and can exist in tandem with visuals, but the road to get there can be very long and bumpy.