Picture of PABLO MARTÍN DE HERVÁS

PABLO MARTÍN DE HERVÁS

Level Designer

Operation Umbra

Go to...

Project goals

I’ve always been a huge fan of FPS games, and they are one of the reasons why I decided to become a game developer. After working with various game genres across all my professional/personal projects, I thought it was already time I made some FPS projects of my own.
I started making Jon Mata Mogollón, which was a third person shooter game that helped me get way better at designing shooter games. It didn’t take too long after I finished it for me to start working on a new FPS project, but this time I wanted to make a first person camera game.
 
That’s when I heard about the FPS Level design bootcamp by the Funsmith Club. Having Mike Madden (Call of Duty senior level designer) as an instructor and being a huge fan of the Call of Duty saga myself, I just had to attend the bootcamp. I knew this would provide me the perfect tools and knowledge to make a project of the highest possible quality.
 
This level was crafted to showcase my skills as a level designer, delivering a first-person shooter experience that escalates from stealth-driven tension to intense action. My objectives were to:
 
  1. Hone my level design skills by analyzing stealth FPS techniques to create an immersive infiltration phase.
  2. Design a linear level with a clear shift from stealth-based gameplay to intense action following a pivotal sabotage event.
  3. Create memorable, high-energy moments through dynamic action sequences, supported by a cohesive and engaging structure.
  4. Collaborate frequently with other level designers, conducting playtests between iterations to gather and apply feedback for level improvements.

Overview

Setting:

The level unfolds in an isolated mountain stronghold, dimly lit by the moon and sweeping searchlights. An allied unit was stationed there until contact was lost; investigation revealed that enemy forces had seized control. Bristling with automated defenses and patrolling hostiles, the fortress is a deadly maze.
 
The player, a special forces operative, must infiltrate this enemy territory to uncover the fate of the lost unit and disable the defenses, paving the way for an allied assault.

Constraints:

  • Linear level.  
  • Single – player PvE.
  • 5-10 minutes playtime.
  • First person shooter.
  • Unreal Engine 5.
  • 8 weeks to make the level.

Progress

General views of the level across iterations

Iteration 1: Level roughout made with basic shapes and modules crafter with UE5's modeling tool

Iteration 2: Added points of interest and enemy placeholders to generate a main path for the player
Iteration 3: Finished adding new spaces to the level, created a scripted sequence placeholder

Iterations 4-5: Final enemies, lighting, scripted events, refined shapes

I made 2 more iterations after the fifth one:

  • Iterations 6-7: Minor changes to improve quality of the final blockout thanks to the feedback of Kevin Falardeau, Brandon Dolinski, and Mathias Neukam. I also submitted my level to a public playtest organized by the Funsmith Club that helped me gather some extra feedback I used to improve certain elements of the level.

Level highlights

1. Tunnels

Opening section of the level where the player learns the core mechanics and objectives needed to navigate and succeed. The main functions of this part are:
  • The player gets used to the character’s movement thanks to some simple traversal challenges.
  • The player is introduced to the narrative context of the level.
  • The player learns how to interact with certain objects of the level.
  • The player is introduced to the combat.

2. Exploring the fortress

Fortress exploration: 1-5
In this segment the player explores the fortress undetected, visiting multiple points of interest as the tension is slowly built up:
  • Points of interest are used as key locations where the narrative is developed.
  • Striking visuals of the key elements in the level.
  • All the lights, obstacles and structures and strategically placed to enhance navigation, atmosphere and important elements such as enemies or interactable objects.

3. Control room & helicopter crash

Control room & helicopter crash: 5-6
The control room serves as a critical turning point in the level:
  • The player finishes sabotaging the fortress, so his allies launch their attack.
  • Scripted sequence that delivers a memorable moment for the player.
  • The stealth approach is over, from this point on, the fortress will be an absolute chaos and enemies will be aware of the player’s presence.

The helicopter crash is an unexpected event that alters the player’s main path:

  • Another scripted sequence that creates the most intense moment in the level.
  • The main path is interrupted, and the player is forced to take a detour to accomplish his new objectives.

4. Fighting across the fortress

Final section: 6-7
This section consists of 3 consecutive fights that take place after the helicopter crash sequence. The goal of the player is to get to the anti-aircraft system that destroyed the helicopter to get rid of it:
  • Blend of tight, enclosed areas and open zones to diversify encounters.
  • There are vantage points in every combat that will reward players who dare to make risky plays to secure those positions.
  • The sudden onslaught of enemies creates a high-stakes combat spike, challenging the player’s adaptability as stealth is no longer an option.

5. Level end

Final section: 7-8
The final encounter delivers the level’s peak difficulty, but it also rewards players who can analyze their surroundings and make the proper play:
  • Enemies hide behind good covers.
  • Enemies have the high ground.
  • An explosive barrel allows the player to get rid of the 2 enemies that will apply more pressure on him if he uses it properly.

After the fight, the player is rewarded with a final view of the entire level after being destroyed by the allied assault and the player’s actions.

Walkthrough

Beat Overview

Beat 1: Tunnels entry

The player arrives at the entrance of the tunnels that he will use to infiltrate the fortress. After saying goodbye to his partner, the mission can begin.

Top down view of the beats

Part 1 - Tunnels

PS. Tunnels entry

  • Level introduction
  • The player gets used to the character movement.
  • Narrative context introduction

2. Explosive wall

  • Explosive surfaces introduction
  • The player learns how to interact with certain level elements

3. First encounter

  • Combat introduction
  • Tension starts building up as the player approaches the fortress.

4. Second encounter

  • Explosive barrels introduction

Part 2 - Fortress

1. Fortress entry

  • The player gets a perfect view of the main gate of the fortress, setting it as an important element and reminding the player of his main goal in this level.

2. Morgue

  • The player finds the missing unit, achieving one of his main goals.
  • Narrative development.
  • All elements in this room intend to create a disturbing moment: sounds, lights flickering, blood all over the place…

 

3. Armory

  • The player starts sabotaging the fortress.
  • The player has the chance to refill his ammunition in this room.

4. Helipad

  • While sneaking under the helipad, the player can sabotage the fortress once again.
  • All the objects around the helipad are placed strategically to funnel the player into the underground tunnel.

5. Control room

  • The player finishes sabotaging the fortress.
  • Gameplay transition from stealth to action.
  • Main event of the level: the fortress is attacked by the allies.

6. Helicopter crash

  • Unexpected event: the ally helicopter is destroyed and destruction unfolds.
  • The player’s main path is interrupted as he is thrown to a room full of enemies.
  • A new objective is added: to destroy the last anti-aircraft defense system.

 

7. Anti-aircraft defense

  • As the player approaches the end of the level, the difficulty starts increasing.
  • The player can look at the place where the ally helicopter crashed, which shows the destruction that the attack is generating.

8. Level end

  • The final fight of the level takes place in the highest roof of the fortress.
  • Once the player clears the fight, he is rewarded with a final view of the whole fortress, which has been destroyed.
    • The destruction is a reflection of the player’s actions across the entire level.

Process

1: Research, ideation and planning

Goal: Generate an initial idea that I can use to start building my level.

Solution:

  • Used Miro to brainstorm ideas across categories:
    Setting, Locations, Events, Enemies, Mechanics…
  • Discussed with other level designers to identify the ideas that had potential.
    • Made a votation on the Miro board so I could have visual reference of their opinions.
  • Selected the row I would use to start working, using the following criteria:
    • Votations.
    • Doability of the level given the 8-week time restriction.
    • My own experience working on projects with X settings, gameplay, mechanics…
  • Gathered references:
    • Visual references from real life locations.
    • Picked a main reference from a AAA game for my level, in this case, I chose Operation 627 from Call of Duty: Modern Warfare 3 (2023).
      • Having Mike Madden as a mentor, I wanted to make something similar to a CoD level, as I thought I could get the best feedback from Mike given his professional experience working in the franchise.

Result: 

I was able to decide the main features of my project:

  • Infiltration level in which the player uses explosives to break through different structures.
  • The player will fight against an enemy army in both enclosed and open spaces.
    • Stealth vs face-to-face combats.
  • At some point there would be a frontal attack, which would serve as a turning point in the level.
  • I wanted the player to retake a location that had been stolen by the enemy, like in the Whiskey Hotel level from CoD MW2.
    • I also wanted to create a level ending where the player would have a great final view of the entire level.
Pureref with references + Miro board votation

2: Game beats & 2D map

Goal:

Structure gameplay pacing and environment layout from a raw level idea;

Create 2D map and LDD.

Solution:

To start structuring the events that would take place in the level and their order, I split  the level into 3 main parts:

  1. An introductory part where the player learns the narrative context of the level and how to play with the different mechanics present in it.
  2. An exploration part where the player traverses across the fortress undetected by the enemies, sabotaging some points of interests and searching for a missing allied unit.
  3. A final part where the player uses everything learned to overcome challenges with a higher degree of difficulty.

 

Thought of a narrative context for each of the parts:

    • Infiltration through tunnels.
    • Exploring the fortress undetected.
    • Fighting in the fortress once the ally attack begins. 

Threw all the events into an intensity graph to determine how I wanted to manage them across the level.

Intensity graph made with the main events of the level

Made basic layouts of the 2 parts in Photoshop to start visualizing spatial distribution. Thanks to this I would be able to start building the first roughout in Unreal Engine.

Tunnels
Fortress

Result:

  • The 2D maps allowed me to visualize how the main path fo the level would look like.
  • The intensity chart helped me determine the order of the main events and their relevance regarding the player’s emotional pacing.

3: The First Roughtout

Goal: Build a basic, playable version of the level inside Unreal Engine 5.

Solution:

Created the different modules I would need to build the level with UE5’s modeling mode
  • Tunnel modules for the introductory part: straight tunnel modules and intersection modules.
  • Wall module, door module, window module, floor module and stairs.
    • Created a yellow, giant door wall I used as a placeholder to signal the places where explosive structures would be placed.
  • Also made modules for the towers of the walls, making versions with open and closed doors. 
Modules showcase

At this point I was using the basic FPS template of Unreal Engine, so metrics and dimensions were established according to the default character movement.

Built the roughout following the 2D map I had created beforehand
Roughout's general view
Tunnels

Result:

I had a level fully playable with visual basics.

After making a play test with other level designers I got the following conclusions:

  • Flow/Readability in the fortress part was non-existent, people had no idea where to go once they reached this part.
    • This was something that didn’t really worry me at this point since I hadn’t added any guiding elements and the space was empty. Still, it was a mistake not to add placeholders for these elements so people could know where to go.
  • The tunnels part was too long and boring. In the other hand, going from the control room to the level goal took only about a minute, which made me think that the final part of the level was too short.

4: Iterating on the Roughout

Goal:

Build all the different points of interest in the level, add placeholders for enemies, start filling in the empty spaces and try to create a clearer path for the player. 

I wanted to focus on the fortress part, but I had to improve the design of the  first encounter room in the tunnels.

Solution:

  • I placed the enemies strategically, taking into account that the player would want to avoid them as it was a stealth mission so this would make him follow the path I had designed.
Roughtout + placeholders and POIs

Result:

After conducting another play test with my peers who hadn’t seen the roughout before, I was happy to see that this time it was way easier for them to find out the main path of the level.

  • I could still add more guiding elements like lights, dialogues… But the level was working way better already.

Fixing the first encounter room

Problem:

The room where the player encountered the first couple of enemies had a really bad design.

When other designers tested the level, they asked me if I wanted to give the player the option to sneak around  enemies, avoiding combat. I didn’t want that to happen, after all, this was a combat introduction, but I accidentally gave the player the option to do so because of the layout  of the elements in the room.

First encounter room in iteration 1

Solution:

Fortunately, the way to solve this was easy: I modified the layout of the room so the hallway to the next room was in the middle of the front wall, instead of having it on a side wall. Thanks to building the room with modules, the modification took no time:

Before vs after fixing the room

Result:

  • Now the player couldn’t avoid killing the enemies.
  • Every relevant element in the room was framed in the same point, which greatly improved legibility.
  • I positioned the enemies so that they were aligned with the player’s line of fire, thus simplifying the task of killing them since the player does not need to move his sights from one enemy to the next one after he starts shooting.

5: Receiving an unexpected task

Goal:

Before we moved into the blockout phase, my instructor Mike Madden decided to give us a surprise assignment to simulate a situation that could occur in a professional studio where you have to deal with an unexpected situation.

In my case, my task was to make the level longer: At some point, the main path would be interrupted by some kind of event and the player would be forced to take a detour.

Truth be told, this was actually quite convenient because I was already thinking I needed to do someting like that since I felt my final section was a bit short.

Solution: 

I had to start a process where I had to remake a few things in the level, and I also added some new stuff.

Redesigning the final section

Wasted space in the fortress

I had a lot of free space I wasn’t using around the control room, so my first task was to see how I was going to fill it up and how I would make the player go there.

I also had to add the last POI before the final fight of the level (anti-aircraft defenses) which was located on the walls of the fortress. Whatever modification I made to this section, the path would have to take the player to this final point of interest.

Roof fight Nº1

I started by getting rid of the combat room I was making, along with the hallway that connected it to the control room.

After that, I added a small fighting space that simulated a fight on one of the roofs.

Tower collapsing sequence placeholder

After winning the fight, the path guides the player to a walkway that is connected to the walls.

I placed a trigger in the middle of the walkway that initiates a simple sequence in which one of the towers (the one with the blue material) collapses and breaks the walkway, throwing the player into a room full of enemies.

  • This sequence would be improved in future iterations, at this point I just wanted a simple placeholder to test and see if my design was functional.

This gave me the chance to create an additional fighting space before getting back to the top of the walls and going into the final part of the level and the anti-aircraft defenses, which I added after finishing with the redesign of the area.

Before vs after

Result:

I tested this sequence with my partners, and I got the following conclusions:

  • The level was way longer, and I was making a better use of the space I had.
    • Having 3 different fights instead of just one, I had to make sure they were shorter and easier than the original fight so the new section didn’t feel frustrating or too long.

The sequence had a couple problems:

  • There wasn’t a clear reason why the tower collapsed in the sequence (lack of context).
  • I had to make the player look at the tower somehow, or he wouldn’t understand why he was being thrown under the floor.
  • The player had to stay above the floor that would be destroyed or he wouldn’t be thrown into the next room..

To solve this problems, this sequence would later evolve into the helicopter crash sequence in the final blockout.

6: Moving to the Blockout

Goal:

Move from the roughout phase to the blockout phase, getting close to the final level of quality I wanted to achieve with this project. To do so, I started working on the following tasks:

  1. Lighting: Use lighting to guide the player through the level, generate a believable environment and highlight elements of the level that could evoke different emotions in the player.
  2. Add dialogues: I needed to add dialogues to provide narrative context to the player about the level and the events that were happening as he progressed.
  3. Program the explosive walls and the sabotage points: they were the special mechanic I wanted to implement in the level, but until this point all I had was a simple placeholder.
  4. Scripted sequences: the level had 2 main sequences with which I wanted to generate memorable moments for the players, but so far I had only generated the placeholder for one of them in the previous iteration.
  5. Make a good use of the Low Poly FPS Pack: During the bootcamp we were given access to the Low Poly FPS Pack. In the previous iteration I used it to give a more interesting pawn to the player, but now it was time to research and make the most out of the package.

Solution:

Lighting

  • The first step was to modify the sky box to simulate night time.
  • After that, I placed lights strategically to highlight important elements in the level, such as enemies, POIs…
      • I played with different light temperatures to generate contrasts and different effects that would attract the player’s attention.
      • I also used differente light colors and intensities to evoke different emotions/thoughts in the player

Red lights surrounding the enemy helicopter = danger

Slightly green lights to highlight the ally helicopter

Low intensity lights = creepy, disturbing spaces

  • I also created street lights and surveillance lights I placed around the fortress to highlight enemies, explosive barrels, the main path…
    • I placed most of the lights above the control room to emphasize its relevance in the level, being clearly visible from any point in the courtyard.

Surveillance lights above the control room

Enemies and explosive barrels enlightened in the roof fight

Used construction lamps and yellow wires to guide the player in the helipad part

Fortress initial view

I took advantage of the street lights to create a great view of the main gate when the player reaches the fortress, serving as a reminder of what his main mission is.

Adding dialogues

 I used an AI to record the dialogues of the level:

  • I created a blueprint which consisted of a trigger that would play a dialogue when the player’s pawn overlapped with it.
  • I used the first dialogues to provide narrative context to the player about the level: What is that place and what is the player doing there? What are his objectives?
  • I also created dialogues for the main events of the level. They let the player know what’s going on in the level.
    • Dialogues also work as a signal that the player is progressing in the level.

Of course, AI is not the best option if you are looking for voices that can convey emotions, but I can’t afford to pay voice actors for a personal project.

Explosive walls and sabotage points

Explosive wall interaction in the level
  • For the explosive walls, I created a blueprint that allowed the player to interact with determined structures if he was close enough.
    • The interaction spawns a C4 charge that destroys the wall after 3 seconds.
  • I created sabotage points for the armory and the helipad sections.
    • They worked the same way as the explosive walls, except they just spawned the C4 charge but it did not explode.

Scripted sequences

   Ally attack

Just like I did with the collapsing tower sequence, I used the level sequencer to create a new sequence in which the allies of the player start the attack to the fortress to take it back.

Allied attack sequence
  • The sequence is played when the player interacts with a button in the control room:

    • First, a dialogue between the player’s character and the HQ is played.
    • When the dialogue ends, the sequence starts.
      • I also used a video editor to create a 2D sound that complements the visual effects of the sequence (rockets being launched, explosions, music…).
    • After the sequence ends, the door that lets the player progress in the level is automatically opened.

   Helicopter crash

I had to refine the placeholder sequence of the collapsing tower I had created in previous iterations and find a solution to the next issues.

  • I had to make the player look at the tower before it collapsed so he knew what was going on.
  • The player must be on the floor that will be destroyed when the tower hits the ground, or he won’t be launched to the next room and all the excitement of the moment will be lost. 
  • There was a huge lack of context in the sequence. Why did the tower collapse?

Knowing that after the sequence the player still had to visit the last POI of the level, the anti-aircraft defense system, I had the idea of having an ally helicopter shot down and crashed into the tower by this final point of interest.

The results of this new sequence were great:

  • The players watch as the helicopter crashes into the tower, and thus, as it begins to collapse.
  • To keep the player where he should be, I scripted a bunch of blocking volumes to keep him above the floor that will be destroyed.
  • The sequence lets the player know about the last POI of the level and it gives him a reason to go there, as he must destroy the anti-aircraft system before his allies can provide more air support.
Heli crash sequence

Making the most out of the Low Poly FPS pack

Enemies showcase
  1. I created different types of enemies according to the weapons they carried (rifle, SMG, shotgun…).
    • I made an especially weak type of enemy for the stealth section that has really bad weapons and only 25% of the maximum health.
  2. I made some game balance to give players a smoother experience. Enemies were super tanky, they could withstand up to 10 shots depending on the weapon the player was using, so I decreased their maximum health by 60%.
      • Placed nav meshes in the map so the AI could move. In some fights, AI movement is limited to certain areas to create some kind of safe zones for the players.
      • In other cases, some enemies are able to move to the covers where the player will be hiding at the beginning of the combats, so they become a priority target.

Tweaking the AI behaviour

The AI was designed to shoot at whatever hurt the enemies, but there wasn’t any option to make them shoot at the player as soon as they saw him.
Since my skills working with AI are pretty basic, I looked for an alternative way to make enemies become aggressive. I created a blueprint which consisted of a trigger that dealt 1 point of damage to enemies of my choice when the player overlapped with it:

  • Enemies affected by this interaction detect the player as the origin of the damage, thus starting to shoot at him.
  • I also created an additional function to kill the enemies instead of just “activating” them that I used in the ally attack sequence to kill enemies that are affected by the explosions in the courtyard.
  • Finally, I used this same blueprint in the ally attack sequence to make the enemies in the courtyard fight against the allied soldiers driving into the fortress. I used the “activation” function but instead of detecting the player as the source of the damage, they detect the soldiers in the opposite side.

Result:

I needed 2 iterations to accomplish all these tasks, but it was definitely worth it.

  • The play tests were great, the leap in quality was huge and the reception was fantastic.
  • Difficulty was a bit higher than I thought, so I had to nerf enemy’s maximum health a little bit to make the experience easier.
  • Even with the dialogues, the tunnels were still a bit boring before you encountered the first couple of enemies.

Creating the final view

I wanted the players to have a final reward for clearing the level that wasn’t just a victory screen.

During the level, the player produces considerable destruction throughout the fortress by himself, I thought it would be very impressive and rewarding to have a final vision reflecting the result of all his actions. That’s why I decided that the end of the level would be at the highest point of the fortress, so that the player could contemplate all the destruction that had occurred there.

Final view of the fortress

To simulate the destruction, various particle systems are spawned at all locations where explosions have occurred in the fortress as the player approaches the final section.

The result is a rewarding view that enhances the player’s sense of power, offering a memorable reward for completing the level.

7: Refining the blockout

After making the blockout, the level was tested and reviewed by Kevin Falardeau, Brandon Dolinski and Mathias Neukam, whom I would like to thank for taking their time to give me feedback and help me improve my level.

Polishing the tunnels

Since almost all my efforts were invested in making the fortress part, the tunnels were left in the background and it was noticeable that they hadn’t received the same amount of work and dedication.

I started by turning the entrance into a more believable place, simulating that it was a giant sewer built underground in a natural environment.

Going through the tunnels was boring and monotonous, the player simply walked in a straight line with occasional turns.

To make the course more entertaining, I added small obstacles that could be easily avoided, but that would force the player to be aware of his surroundings and to move conveniently.

This was also a great way of getting the player used to the movement.

The first encounter room was redesigned again.

This time, the stairs that lead to the platform where the player can advance to the next room were moved to the middle of the elevated walkway where the player enters the room.

  • The player now has the option to shoot at the enemies before he reaches the stairs, using the side railings as covers, or he can take a more aggressive approach and rush their position.
  • This also prevents players from running directly into enemies if they are not  paying attention, as they have several warnings of enemy presence in the room while they make the turns.

The second encounter room was also redesigned.

The intent of this room was to introduce the player to the explosive barrels mechanic. To do so, the player was expected to carefully move to the sides of the room and shoot at the barrel while hiding from the enemies.

  • The distribution of the obstacles was modified in order to force the player to walk to one of the sides of the room from where he is expected to shoot.
  • The height of the obstacles was also modified to match the height of the player’s character. This allows him to peek at the enemies while still feeling like he is hiding.

Making the morgue creepier

In the morgue the player is supposed to have a dramatic moment, but in the end, the event felt very flat and did not really evoke any emotion.

To make the morgue more creepy and increase the narrative burden of the discovery, I created a short sequence in which the lights flicker uncontrollably when the player enters the room. I also reduced their intensity so the room wasn’t perfectly lightened and had some dark spots.

I also added blood decals to make the space look more gore and disturbing.

Lights flickering effect

Preparing the player for unexpected fights

There were 2 moments in the level when the player was forced to enter rooms where enemies were already waiting for him, which put the player at a great disadvantage if he didn’t react quickly enough:

  • The control room.
  • The helicopter crash sequence.

The biggest problem that could arise at this time was that the player was not looking in the direction of the enemies when he entered the rooms, instantly getting shot by enemies he wasn’t even aware of. To solve this, I created a blueprint that allowed me to force the player’s camera rotation in a certain direction.

Camera rotator blueprint: The arrow indicates the direction in which the player's camera rotation will be forced.

Improving the final fight

I wanted the player to have a really challenging final fight, which meant that this fight was the highest peak of difficulty of the entire level.

  • Enemies had good covers.
  • The player was at a lower height and he didn’t have much space to move.
  • If the player hid for too long, an enemy equipped with a shotgun would get to his position and kill him.

Yes, I went overboard with the difficulty of this fight…

To give the player a little help, I placed an explosive barrel next to the enemy closest to the player’s starting position.

Final fight after adding the explosive barrel

The player can shoot at the barrel as soon as the fight starts, getting rid of the enemy who will apply more pressure on him… But if he waits a few seconds, he can explode it when the enemy with the shotgun passes by it, killing 2 birds with one stone (or 2 enemies with one barrel). This way, players who are patient and have good decision making are rewarded.

  • Now, the player has a little aid to overcome the final challenge.
  • The explosive barrel also adds depth to the fight and rewards players who can analyze the situation and make the right decisions.