Combat Encounter

An FPS experience

Sound ON for the best experience!

Project Summary

Introduction

For this FPS exercise, I focused on level design and combat design.

The players goal is to explore the hijacked water treatment plant, take down the intruders, restore the water supply, and fight your way back out.

Specifications

  • Individual portfolio project

  • Developed over 6 weeks half-time

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

  • Inspired by game series such as Call of Duty, Destiny, and The Division

My goals

This level is a revisit of my "Combat Encounter" assignment.

Goals were to practice preproduction and to design a believable space with engaging combat scenarios that could serve both as a single-player experience and a potential multiplayer or even part of an open-world. The major challenges were combined indoor- and outdoor spaces, narrative coherence, and player direction.

I only had a couple weeks to iterate on this piece for my portfolio. I spent that time focusing on improving the AI:s behaviour, the game play beats, and cleaning up the blockout.

Level objective

The player's mission is to reclaim a water treatment plant controlled by rogue agents. The level is structured into three acts: infiltrating the facility, restarting the primary clarifier, and defeat the enemies in order to reclaim the area and secure the city's water supply.

Process

Pre-production

Ideation

The assignment required that the player arrives to a building with the goal of restoring something. Once done, the player would have to backtrack while facing heavy resistance.

I quickly envisioned a factory setting for the combat and started to explore that thought. I gathered references and started working on a narrative that would support the setting.

In the end, I went for a water treatment plant. Its complex architecture gave me creative freedom to design varied indoor- and outdoor spaces for gameplay, and players would likely recognize the significance of these kind of facilities.

I believe I spent a bit too much time writing a story supporting the design, but I wanted to answer as many questions as possible before starting to block out the level.

Reference gathering

I continuously gathered reference images as I worked and took some time understanding the wastewater treatment process. I found the clarifier to be the most visually interesting element and wanted to build the plant around it.

Reference-based flowcharts

My teacher Tim Börrefors shared his method of using reference images and Miro to build flowcharts. I applied this method to this project, and it was good for breaking any sort of creative block as you get your first draft almost for free. Then it's just a matter of iterating until you end up with a manageable and interesting level progression.

As a bonus, these flowcharts doubled as rough overviews.

Blockout process

Blockout -> Refined -> Whitebox

In the early stages I prioritized scale, sightlines, presenting objectives, and vantage points. Platforms and cameras were set up at key locations to create "postcards".

I used my flowchart overview as a base, and then adapted the layout based on feedback. Gradually, the concept evolved to fit not only a single-player experience, but possibly multiplayer or open-world environments, so I started to think more of potential entry points that could be used for different game modes. The idea comes from my experience with earlier Call of Duty games, where the campaign and multiplayer maps were developed in parallel.

The interior were initially rough and mostly for establish proper scale and a main path so that the level could be played from start to finish.

I kept refining the layout, gradually cleaning up the blockout, adding covers, creating basic scripts for the key objectives, and adding more details.

The clarifier

The clarifier was meant to be the hero piece that defined the area. With playability in mind, I thought it would be interesting if the arms could be used as a moving platform once activated. I was seeing a scenario where valuable loot could be placed in the middle, creating an interesting risk-reward situation during firefights.

The area received quite extensive feedback during playtesting and went through several iterations, mainly since it was difficult visualizing how combat would unfold in that space, and how the AI would use it.

In the end, I went for one, bigger clarifier. The reasoning was that the clarifier became a more impactful focal point and improved the mental mapping of the space. It also gave me the option to easier connect buildings to it and I feel it created strong loop arounds.

Level walkthrough

Tension curve

ACT 1

For the establishing shot, I wanted to create a sense of vulnerability. I tried to achieve this by positioning the catwalk below the rest, so you would have to look up towards the facility. The idea was that this perspective would create a more intimidating siluette and making the player feel 'smaller', while still showing a clear view of the main path.

I envisioned howling winds and waves crashing against the cliffs to build the atmosphere and I placed killed workers along the catwalk, building the tension and foreshadowing the dangers ahead.

Player agency

As the player nears the facility's entry, they will have their first enemy encounter. I designed the space so that the player could choose between a head-on approach, or sneak under a door to flank the enemy. It’s subtle but I think the different paths enforce player agency.

ACT 2

Act 2 begins with the player reaching the clarifier. The vantage point provides much needed mental mapping over quite a complex space. I thought this was extra important since the player would return to it for a much bigger combat scenario. Looking back, I think the main path could have been more clearly signposted as there is so much going on in the area.

If the player looks toward the right, they can see the area from where they started the level. I thought it was a nice reward to give the player for their progression.

I was worried that the vantage point would turn into a classical door problem. My solution was to not provide any cover and hinting of weapon upgrades further down. There is also an alternative side path down to the area. Another possible solution would be to have enemies show up only after the player entered the area, which I would have tested given more time.

Bait & Switch

When the player reaches the plant’s operations centre, I wanted to subvert the player’s expectations, so I used a classic bait & switch.

The console is the players main objective, but upon interaction the water levels are too low for the clarifier to start. As the player turns away from the console, another way in to the operations centre is revealed.

A small twist that presents the problem before the solution, and a new objective for the player:  find a way to restore the water levels.

Problem before solution

After some combat where the  tougher enemy grunt is introduced, the focus shifts to a bit of puzzle solving.

The player must restore the water levels by turning on valves and replacing a missing valve handle. This is presented as a problem before solution and involves both a missing valve handle, and a locked door that requires a keycard. This varies the gameplay a bit but also connects to the narrative.

ACT 3

As the player reactivates the clarifier, the situation escalates. The moment they return to the clarifier area, it gets overrun by grunts. The player will have to use their knowledge of the area to defeat the enemy.

Scripted event

The final encounter happens as the player opens the garage door. Two trucks filled with grunts crashes through the gate. The movement helps drawing the players attention.

Several cover islands helps with player circulation.

Scripts

Improved AI

I made several tweaks to the AI so that it acted aggressive and appeared to work more as a team.

For example, once the player is detected, the AI doesn't just stay still or head straight for the player. Instead, it lerps the players position and a random position within a certain radius, which makes the AI's approach much more varied, even leading to flanking the player. Simple but worked great.

For added realism, I created another locomotion state where the AI would switch between walking and running. Additionally, when the AI is under fire, it tries to change location and communicates with their squad.

Adding a "heavy" enemy type that walked slower but took longer time to kill also mixed up the combat.

Combined with other smaller changes, I think this really improved the combat experience.

Furthermore, I gave the player a health bar and a health regen system if being out of combat for X seconds. This let me keep up the pacing where the player would have to take cover if receiving too much damage.

Card readers

I created a versatile card reader with multiple states. If player got access, it opens and close just like a normal door. If missing access, the door is locked in its starting position (open or closed).

The card reader can be assigned a keycard. If the player picks up the keycard, the card reader updates its access. It also keeps its new state after the keycard has been removed from inventory.

Reflections

This project was a good learning experience. I picked up several new methods, I got to improve my scripting, and I felt I had improved my blockout skills when iterating on the piece for my portfolio.

I think perhaps the strongest part is how the layout feels both organic yet industrial, moving away from a flat grid design.

If I had more time, I would have playtested more and iterated the indoor areas. They turned out a bit too linear and with limited exploration. I also feel I further could have varied the combat, like using more verticality instead of having enemies roughly at the same height and having them come from different directions. In general, space planning is something I want to pay more attention to moving forward.

Still, the gameplay and combat were fun, and the improved AI made the encounters interesting.

Thank you for reading!