Infiltration

A third-person stealth adventure

Sound ON for the best experience!

Project Summary

Introduction

A third-person stealth adventure focusing on composition, level flow, and environmental storytelling. Sneak through the valley, neutralize enemy patrols, traverse the cableway, and expose ivory smuggling inside a textile mill.

Specifications

  • Individual portfolio project

  • Developed over 8 weeks half-time

  • Unreal Engine 5.2 using Max Forsberg's Basic Template.

  • Inspired by game series such as Hitman, Metal Gear Solid and Uncharted

  • Other key tools included Renderdoc and Blender

My goals

This level is a revisit of my "Infiltration" assignment. I thought it had a solid foundation and wanted it to become a more engaging experience.

My focus involved adding more gameplay beats, build a stronger narrative to reinforce the setting, and improve composition to guide the player.

Level objective

You play as an agent tasked with infiltrating a textile mill overtaken by enemies.

You must navigate through a valley, avoid detection at an enemy outpost, and use the mill’s cableway system to enter the factory.

Inside, you discover a smuggling operation where ivory is concealed within crates under textile fabrics. Your mission: plant GPS trackers on the crates and escape unnoticed.

Process

Pre-production

Inspiration through geo-data

The original assignment was to design a stealth level where the player starts in an exterior and works their way into an interior.

I usually find inspiration on Pinterest, but this time, nothing stood out to me. My mentor Max Forsberg then suggested searching Google Maps for real life locations which, after some time, led me to an industrial area in western Croatia.

This location came to guide the blockout process. It also became my first experience integrating geo-data when designing.

Reference gathering

Once I had a setting, it became much easier to build a library of reference images. I tend to use Pureref as it can stay on top of other programs, so that my references always are visible when I work.

Additionally, I used it to save paintovers and screenshots of my progress.

Scripting a gradual detection system

For my rework, I implemented a gradual detection system with two ranges. The outer range allows the player to be inside enemy vision for a short period without being detected, while the inner range immediately triggers the AI:s detection.

If the player gets spotted but manages to get away, the AI will return to their patrols and the system resets. I also equipped enemies with flashlights matching their vision range.

Combined, I think it improved the gameplay tremendously and the flashlights gave a strong presence that really suited the stealth genre.

Player gym

Knowing I would design several buildings I created a small gym to establish and maintain consistent metrics.

After a feedback session, I adjusted some of these metrics, but since I made blueprints of everything, these changes were updated across the entire level automatically, which saved me a bunch of time.

Blockout

Rough blockout

I began by importing geo-data from Google Maps to Blender via Renderdoc. I cut the models into smaller pieces and imported them into Unreal to build a new landscape. This helped with finding good scale and distances, as well as establishing the main path and sightlines.

The river acted as a strong datum, and the cliffs were placed to create leading lines for the player. To maintain an organic feel, I used a simple rock and tree model made in Blender as part of my blockout.

Refined blockout

Here, I kept improving sightlines, the main path and major gameplay elements.

Balancing the time spent between outdoor and indoor areas was one of the more challenging aspects, as it was easy to become overly focused on one, feeling there’s always room for improvement.

Whitebox

Besides iterating on the layout, I implemented scripts and made sure the level was working from start to finish, allowing players to experience the key moments.

Re-iteration

Picking up the piece for my portfolio, I wanted to create a stronger narrative that also tied to the environment.

One concern was that the indoor areas were too cramped. Additionally,  feedback suggested that the factory felt disconnected to the world and that the level was too much of a ‘walking simulator’.

I made some significant changes, such as implementing a cableway system that varied how players moved through parts of the level, a new factory with a much larger footprint that tied to the story and opened the area toward the ocean to imply that there’s more to the world.

Additionally, I shortened the level to improve the pacing and added new gameplay beats to create a more engaging experience.

Design techniques

Reveals

In this establishing shot, I aimed to introduce the short, mid, and long-term goals one by one. First presenting the outpost as the long-term goal, then gradually revealing the building to the left as the mid-term goal, and finally leading the view downward toward the broken bridge.

The idea was to guide the players’ attention to establish these goals more easily and to prolong the atmospheric build-up. A small "funnel before reveal" enhanced this effect.

10-second Rule

As the level was based around stealth without access to any weapon I had to find other ways to keep rewarding the player and avoid the 'walking simulator' trait.

I added more gameplay beats (like placing GPS-trackers, subdue guards, and using the cableway) and mixed indoor and outdoor environments and open and closed spaces with different ways to traverse.

Gameplay

Stealth

Playtests showed that the implemented detection system helped enhancing the stealth gameplay.

To create tension I made the player exposed when moving between covers. This would trigger the detection meter, but I tried to design the space so that the player always would be close enough to the next cover.

Cableway

The idea that the textile mill once used a cableway to transport the goods upstream felt conceivable, and it also gave me narrative justification for having enemy guards at the outpost as they could be using it for transporting the contraband.

To cost-effectively use this mechanic, I tried to vary how the player uses it.

The player initially jumps over the cable cars, then activates the cableway, and finally uses a car to level loop back while in stealth.

Later, the player has to utilize the cable cars as moveable covers, and further down they are used as a rewarding transport.

GPS-trackers

Toward the end of the level, the player places GPS-trackers while sneaking past guards.

Given more time, I would have kept iterating this space and the overall textile mill to make better us of its footprint, as it felt a bit cramped at times.

Problems & Solutions

Cable cars on splines

Problem:

  • I run into problems when trying to position the cable cars on a splined path, as all cars snapped to the root spline point.
  • Brute-forcing the mechanic by giving each cable car an individual spline to follow was neither elegant nor efficient.


Solution:

  • Created a blueprint script that positioned the cable cars based on vector position and spline length.
  • Made sure the travel speed was the same regardless of start position.

    The solution works in this context but the cars tend to offset when the spline is curved too hard. It would require further development for general use, but that was beyond the scope of this project.

Guide the player through the outpost

Problem:

  • Players wanted to explore the other side of the outpost
  • Players was unsure where to go once crossing the river and found it difficult to locate the button to activate the cableway.
  • A single cableway ride felt tedious and a waste of gameplay beats.


Solution:

  • Cable cars were used as both the problem and the solution. The cars were blocking access, forcing the player to cross the river, but once the cableway was activated the cable cars formed a level loop for the player.
  • For the control panel, I increased the control room's footprint for greater visibility, moved the button to a position where it was visible from the other side of the river, and gave it a red light to signpost it even more.
  • Inside the building, the control room was opened up and a door was repositioned to "greet" the player. Pillars were removed to decrease noise, and boxes were placed to extend the wall in case the player still went past the door.
  • The cableway's continuity was faked, making it appear to continue down the valley while it restarted much earlier. This helped limit the players movement, while improving player agency, as the player would have more cars to choose from and not having to wait for a specific one.

Reflections

I wanted to showcase my composition and storytelling skills, and I’m proud of how I managed to integrate a cableway system into an existing design on a tight deadline, and crafting what I think is a believable outdoor space. Moreover, I think I did a good job improving the gameplay beats and making use of the "10-second rule” to maintain player interest.

Balancing my time was tough. The cableway ended up taking more time than expected, but since it was part of the main path, I had to prioritize it. This in turn led to the Textile Mill not getting as much attention as I wanted. It ended up feeling cramped and too linear for my taste.

I learned a lot, especially in improving my scripting skills, but I also see several areas for further improvement. The challenge of designing indoor spaces has been a valuable lesson. I also feel the need to make my levels less linear to allow for different ways of play.

Thank you for taking the time to read!

Playthrough (no commentary)