itch.io is community of indie game creators and players

Devlogs

Stealth Game – Final Devlog

The Last Shrine
A downloadable game

Introduction

This devlog is the final entry on this project! Like I mentioned in my previous devlog update, this is the first time I’ve created a fully playable game. While there is definitely room for improvement, I am very proud of how far I have come in my knowledge and understanding of Unreal Engine. Over the course of the second half of this project I have focused on polishing the visuals and audio to give players a more complete and immersive experience. In this update, I will go over all of those final implementations. So without further ado, let's jump right in!

Lighting

Since the majority of the gameplay in my project takes place outdoors, I used my sky light as the primary light source. I chose to have my project take place while the sun is setting so that I could balance visibility with tension. The world is dark enough to have shadows for stealth, but still bright enough that players never feel like they cannot see. The warm color temperature from the setting sun gives the scene a more cinematic atmosphere, which makes the environment feel more dynamic. 

For a smaller more localized light source, I paired my fire VFX with a warm toned point light. I initially attempted to have the VFX itself emit light, but it was unstable and it didn't have as many adjustment options as I wanted. I chose the point light instead because it was able to provide a reliable light source for players that I could fine tune to blend seamlessly into the scene. I intentionally placed these light sources in darker areas where the skylight does not reach, which aids in making the environment, hiding places, and enemies more readable for players. It also helps strengthen the narrative tone by providing small, warm light sources in more secluded areas. Each point light varies in intensity and attenuation radius to better suit where it is at on the map.

When I had people play test my game, I received feedback that the ending area was a bit difficult to see at first. To solve this problem I added a warm colored rect light at the top of the room that aims downward to illuminate the room more. I set the intensity to 25 cd and expanded the radius so that the light spills outside the room, helping draw the player’s attention more effectively.

The warm tones throughout the whole scene reinforce the mood of a quiet, cinematic dusk, but also hints at danger as the warmth fades away. Warm tones also help to guide the players eye because it softens the overall environment which allows points of interest to pop more. This makes navigating paths, avoiding patrolling guards, and finding hidden treasures easier for players. I was also very intentional about the intensity by making sure no area was overwhelming lit. I used the brighter areas to suggest more open routes to enemies, while the darker areas create more coverage for players to hide behind. All of the light sources support the environment by setting the mood, improving readability, and reinforcing a more stealth focused design.

Post Processing

My goal with post-processing was to focus on reinforcing the warm, cinematic tone of the sky light while also refining the other colors in the scene. I also wanted to improve player readability by balancing shadows and contrast.

For the bloom, I used the convolution method and I increased the intensity to 2 and set the convolution scatter dispersion to 3 to give the scene a softer, slightly diffused look while also making lights shine more. This subtle hazy glow around bright lights keeps the environment from feeling too sharp or artificial. It also helps the lighting feel more natural, and pairs nicely with the warm sunset from the sky light.

To enhance the overall color palette, I lowered the exposure to 0.5. Reducing the brightness allows the warm tones in the sunlight to stand out more clearly without washing out the rest of the environment. It also helps to reinforce the atmosphere by making the level feel slightly dim but still easily navigable.

In the local exposure settings, I increased the shadow contrast to 0.28 to brighten darker areas to help players see more clearly in spaces where the skylight doesn't fully reach. I also set the shadow threshold to 0.3, which adds a bit more depth and contrast to the scene. Both adjustments make the warm highlights more visible and ensure that key gameplay spaces like corners, pathways, and cover spots aren’t lost in overly dark shadows. These settings still allow shadows to exist and remain readable, but prevent them from becoming too dark to the point where players struggle to see.

For color grading, I set the temperature to 5852 to bring out a little bit of coolness in the sky. This helps balance the overall warmth of the environment so the scene doesn’t feel overwhelmingly yellow or orange. The slight cool tint also makes the blue portions of the sky pop, which gives the environment more visual variety and makes the sunset feel more realistic and dynamic.

Initially when my game was being play tested, players commented that the interior section of my game was too dark. To fix this, I created a separate post processing volume for the indoor section with slightly adjusted settings. I did this so I could fine tune the atmosphere. I kept the convolution method for the bloom the same, but lowered the intensity and convolution scatter dispersion to 0. This prevents the indoor light sources from flaring as dramatically as the sun which keeps the lighting more grounded and believable. In exposure, I changed the metering mode to manual and the exposure compensation to 5. I also turned on apply physical camera exposure and made it false.  For the local exposure settings, I lowered the shadow contrast to 0.18 and the shadow threshold to 0. This keeps the shadows dark enough for players to recognize them, but it is still bright enough for players to navigate the space. For color grading, I adjusted the temperature to 6000 to have slightly warmer tones indoors. Under the post process volume settings, I changed the blend radius to 1400 to give a smoother transition between the post processing for the indoor and outdoor sections.

Overall, these post-processing choices support both the tone and the gameplay. They keep the scene warm, cinematic, and cohesive while ensuring players have a clear view of important environmental details during gameplay. When my game was being play tested, players told me that the post processing made the world feel very inviting and told a story all on its own. 

Assets and Materials

The visuals of the environment for my project was very important to me because I wanted to establish a mostly outdoors scene that takes places in the abandoned ruins of a forgotten civilization.  To achieve this, I intentionally selected a mixture of different assets and materials that I downloaded from Fab.com that helped reinforce the tone of a ancient civilization. The aesthetics of my environment was heavily inspired by Naughty Dog's Uncharted and The Last of Us series as well as Crystal Dynamics' Tomb Raider series

For the landscape, I used a grass material from the Chestnuts Pack (Aesculus hippocastanum) by Open World Development. Applying this material helped create a grounded and organic outdoor feel that supported the tone of my environment. I also used the tree meshes in this pack to fill in the empty areas in my level. Some feedback I received was that the land did not feel overgrown enough. To fix this, I decided to create more vegetation by adding three grass meshes to the foliage brush and painting them onto all the visible areas of the landscape. I then went back in with two of the plant meshes to add thicker overgrowth around the bases of the tress. This helped the environment feel more wild and overgrown. The combination of these assets brought to life the feeling that the ruins had been untouched for years.

For the architectural elements, I used structures from The Forgotten Shrine by Khanin Jittapan. This asset pack fit perfectly into the world I wanted to create. The worn stone, broken structures, and moss covered textures helped to visually communicate to players that this place had once been vital to an extinct civilization. These assets were the foundation I used to set the overall mood of decay and mystery.

To better differentiate the ending area from the rest of the map, I incorporated the Old Gate by BumpkinCZ into my asset list. The distinct shape of the door and materials helped mark the ending zone as a significant location while still matching the overarching aesthetic of the environment.

In addition to this, I used the Castle Stairs by Quixel Megascans to lead up to the higher area and down to the ending area. I chose this asset because the rough stone texture blended seamlessly with the surrounding ruins. This helped to make the stairway feel like a natural extension of the environment rather than a separate piece.

I wanted to have an asset I could attach to the wall to hold the fire VFX so I chose this Wall Scone by Get Dead Entertainment. I selected this specific asset because its worn metal and ornate design fit into the ancient aesthetic already established by the other assets used in the project. 

I changed the material on the checkpoint marker Unreal Engine's rock material so it would stand out just enough for players to recognize it, while still blending seamless into the rest of the ruins. Using a rock texture keeps the checkpoint consistent with the world’s abandoned, overgrown aesthetic, but it stands out against the grass and stone path which makes it readable during gameplay. This material choice supports both the visual goals of the environment and the functional needs of the player.

Lastly, I swapped the original can of beans for a Pile of Coins by Sebastian Sosnowski. This small change helps reinforce the world building and overall aesthetic of my environment. The coins are a small treasure that was lost in the abandoned ruins that players can find and collect. 

Play testers consistently told me that all the assets were cohesive, visually clear, and they also all felt like they truly belonged in the world. They liked how the trees, ruins, and vegetation blended together to create the sense of an overgrown and forgotten land. Play testers said that all the foliage made the landscape feel alive without making navigation confusing. I was also told that the architectural assets all came together nicely to sell the feeling of being in ruins of a lost city. 

Audio

To make the environment feel more alive and have ambient noises in my game, I layered different wildlife and environmental sounds. I started with a bird chirping audio that was provided to us in class and placed it in two of the trees. This helped to enhance the outdoor atmosphere which made the environment feel more natural and believable. I also used  Woods ambience in Missouri, some birds singing and soft breeze by Felix.blume to add a wind sound effect as well as more bird chirps. The wind sound effect gives players a sense of a gentle breeze blowing through the trees and ruins while the extra bird chirps provide variety to the first bird chirping audio. Emotionally, both of these sounds add a calm, peaceful layer to the environment, which contrast nicely with the tension and reinforces the feeling that nature has reclaimed the abandoned world. The sounds also have the functional purpose of giving players directional information because it helps them better understand which areas are more open, forested, or elevated based on where the sound is coming from. They also make the environment feel more dynamic and realistic by filling out the soundscape.

During play testing, players said the ambient wildlife audio made the environment feel more alive. They also liked the combination of birds and the wind blowing because it made the space feel more atmospheric without pulling attention away from gameplay. The only critique was that one of the bird sounds repeated too quickly, so I made the chirps more randomized by using the sound cue. After fixing that, the loop felt more natural and immersive. Overall, players said the ambient sounds helped ground the world and provided a sense of calm contrast to the overall tension from stealth.

I used this Fire Crackling audio by 231128virtualwindow to enhance the fire VFX.  I chose this sound because the crackling is soft and subtle, which allows it to blend naturally into the environment. The gentle crackle adds warmth and a sense of life to the ruins, which helps to emotional set the scene for players. The sound also serves a functional purpose of helping players identify where the fire sources are. Players said the fire crackling audio helped make the torches feel more realistic and that they liked that the sound was more subtle. They also said that the audio helped the fire feel more natural and like it belonged with the rest of the environment.

When my game was play tested, players mentioned that they found it difficult to tell when enemies began chasing them. To address this, I added distinct audio cues for footsteps as well as enemy detection voice overs. Both of these sounds serve the functional purpose of alerting players when they have been spotted as well as how quickly enemies are approaching. These cues also achieve the emotional goals of creating tension and urgency in players. The cues immediately alert players they are no longer safe, which sends them into a state of panic.

For the footsteps, I followed this tutorial UnrealSilas and used the audio he provided. I built a randomized sound cue so each step plays in a varied order, which keeps the audio from feeling repetitive. In the animation sequences for walking and running, I added a notify play sound at every footstep, that way the randomized sound cue triggers at the exact moment a step is taken. This audio also plays when the player is walking, but it’s disabled during crouching so players feel truly hidden and silent while sneaking.

For the enemy detection voice over alert, I created another randomized sound cue to select between the different lines in this audio by Beyercreative. I then added a Play Sound 2d node in the enemy's blueprint to trigger as soon as players are detected. This audio cue instantly communicates danger and helps players react faster, while also reinforcing the emotional intensity of being chased.

After being play tested again, players said that both of these changes made it much easier for them to immediately realize they are being chased. They also said that adding footsteps while their character walks made the gameplay feel more realistic. 

When players select an option in the main or pause menu, User Interaction Reverb SFX by Steaq plays. The functional purpose of this audio is to give players immediate feedback that their input was registered. The soft reverb also serves the emotional purpose of adding a subtle sense of atmosphere. This helps to reinforce the game’s mysterious tone by making menu navigation feel more connected to the world.

When the UI sound was tested, players said they liked how the soft reverb blended seamlessly into the UI and environment. They also said it was a good finishing touch to the menus. A couple of play testers initially commented that the sound wasn't loud enough, so I went in and slightly increased the volume. This improved players recognition that their selection was clicked. 

VFX

I followed this video by Motion Dreams to create a realistic fire simulation using Unreal Engine’s Niagara VFX Systems. I wanted to create this effect for my project because there are secluded areas that the sky light does not reach. I placed the fire effect in wall scones to illuminate dark sections so players can see barriers and items as they stealth through interior spaces. The VFX itself does not actually emit light, so I paired it with a point light to help illuminate the space.  The main purpose of the VFX is to add motion and visual flair to the environment. The realism is also enhanced with a fire crackling sound effect to further set the mood. The torches are placed sparingly so that it doesn’t overwhelm players and only highlights certain sections. I also made sure that the particle count is low because I did not want the VFX to hurt the game’s performance. 

The fire VFX works story wise for my project because it takes place in abandoned ruins that are overrun by mercenaries that the player has to stealth by. The mercenaries had lit up the old wall scones so that they could better navigate the ruins. The VFX helps set the stealth atmosphere because it adds shadows and flickering lights. This gives players a sense of vulnerability and suspense because the light makes them feel anxious about being caught as well anxiety as they wait for the enemy to round a corner.

When I had people play test, I received feedback about how it made the players truly feel as if there was a torch illuminating the room. They also said that it helped set the overall environment of the interior parts of the game as well as help set the stealth game mood. I was also told that the fire was initially too large, so I exposed the size parameters so that way I could better adjust the size of the fire to fit its placement.

User Interface

I used this tutorial by Gorka Games as the foundation creating the main menu of my project, but I made intentional design choices to better match the tone and aesthetic I was aiming for with my project. I drew inspiration from Naughty Dog's The Last of Us (2013) and Uncharted 4: A Thief's End (2016) for the aesthetics of both the main and pause menu. I chose these Naughty Dog titles because I liked the simplicity in their design. Their UI design is simple, clean, and it does not overpower the screen; it blends naturally into the scene behind it, but stands out just enough so players can immediately see it. I also like how the main menu UI is laid over a dynamic background that has subtle movements and sounds that give the menu a cinematic feeling while also telling players what the tone of the game is.

For the main menu layout, I went for a minimal vertical structure that sits off to the right side of the screen. I made sure there was enough spacing so that the screen does not feel cluttered. This design choice makes navigation straightforward and also supports the tone of my game. I used neutral text colors so that it stood out a bit from the warm background, but not too much to where it overpowered the screen. That way the UI harmonizes with the environment instead of competing with it. I also made it so when the players hover their mouse over a menu selection, the text will change to a lighter color so that players can better differentiate what they are going to click on. When players click on a button, it plays the reverb SFX that I mentioned earlier. I chose FS Industrie Wd Medium as the font because it is easily readable by players and also matches the aesthetics of my game's environment. For the background of my main menu, I created a new game map and imported the assets from the ending location into it. This creates a more cinematic feeling that matches the tones and aesthetics of the actual game. The design choice of using a dynamic background to create an immersive main menu was inspired by the Naughty Dog titles.

For my pause menu layout, I kept the same font and neutral text color from the main menu to help maintain a consistency for all of the UI. Buttons will also still change to a lighter color when the mouse is hovering over them and the same sound effect will play when an option is selected. However I did choose to center the pause menu options on screen to make the interface more immediately readable because it does not need the same level of cinematic feelings as the main menu. The pause menu needs to be more functional so players can quickly access the options they are looking for but it still needs to have the same overall aesthetic from the main menu. To help reinforce the idea that the game is paused, I added a background blurring effect that softens the game environment behind the menu. This visual shift helps create a clear distinction between gameplay and UI for the players to recognize. The blur also helps the text stand out which makes it more readable for players. Overall, the pause menu uses the same design style as the main menu by keeping the minimalism, neutral tones, and clean typography. 

Players told me that initially my font in the pause menu was too large, so I lowered it to put the focus back on the game. Players also said that the minimalistic choices for the text helped fit into the overall aesthetics of the game. Overall, players told me that the UI felt very responsive and that they liked how the overall presentation fit nicely into the tone of my game.

Conclusion

It is a very surreal feeling reaching the end of this project but it is also very rewarding. Over the course of this semester I created a fully playable project with intentional design choices with layout, assets, materials, VFX, lighting, audio, UI, and post processing. Each of these aspects worked together to support the overall gameplay and narrative of the project. I also focused heavily on player emotion while making these choices so that I could create the emotional impact I was going for. To do this, I used play testing to see how players reacted to the atmosphere and gameplay in real time. The feedback I received from this was invaluable and it truly helped me achieve a product I feel proud about. While this devlog marks the end of this project, it also represents the start of my Unreal Engine experience. This project truly pushed me to further my skills and understanding and I cannot wait to take all that I have learned into my next project. See you next semester with Game Design 2!

Files

  • Nov_25_2025.zip 271 MB
    10 hours ago
Download The Last Shrine
Leave a comment