The Relay Station


Deep in the mountains a fortified relay station transmits signals over the peaks. Guarded by  patrolling security bots and automated cameras it's no easy task to get access to the facility. 
The Relay Station is a demo of design and level scripting. Set up as mainly a outdoor scene the level could be a minor encounter in a open world map or a side quest in a more linear setting. I created the level as a way to deepen my design skills in Unreal, while working with limited amount of assets I wanted to focus on composition, sight-lines and level scripting
Since I wanted to work from a gameplay framework I set up the map with a stealth mechanism in mind. The goal for the player is to reach the endpoint without being caught.


  •  Single player map stealth map with scripted events
  • Created in 12 weeks half-time (4 hours/day)
  • Created in Unreal 4.18
  • Assets from Epic Games
  • 2D Symbols made by Henrik Giang

Top-down layout of gameplay area

Getting started

Before I started building I did some research. The Halo maps "Silent Carthographer" and "Sierra 117" caught my eye and I was inspired to use aspects of them. I started sketching on ideas and settled for a two main areas separated by a wall-like structure.

Browsing the web for inspiration and references

Initial Top-Down Planning. Player start, goal  and areas separated by a structure

Blocking, Shapes and Early Composition

With a basic idea of what I wanted and started the blockout process. I needed to set the basic shapes of the landscape and the two buildings enclosing the game-play area. Using a mountainous landscape I tried to block out buildings that followed the lines and flow of the landscape

First Blockout. A basic landscape and two structures form the playable area. Intended player path in red with.

First block-out start area view. Landscape outlines in red. Building outlines in Yellow

Feeling of shapes in First player view from start position to passing first building in a early iteration. Trying the blockout made me relize more iterations was needed

Iterating on Approach and Blockout

While I liked the some things from the first drafts it felt they were a bit bland and not suited for the game play. Working with some ideas I changed the start area to a overhead approach. Changing the approach would enable the player to observe the entire gameplay area from above beforehand.  I also changed the landscape adding more parallax and depth enhancing the feeling of elevation.

The new approach hides the most of buildings letting the antenna hint of something and presents a safe vantage point...

From where the target building is revealed and....

The player can observe the dangers below.

Hinting the Way - Guiding the Player

Even a linear map like this would need hints and nudges enabling the player to find their way. My ambition was to use shapes, color and light to provide the player with information of where to look and where to go. The subtleness and amount of information is vary throughout the level. I deemed that getting the player to understand the different paths and finding the exit were crucial and used quite direct guides in form of pipe-lines and scripted events to highlight the way


Here I'm using blue colored pipes to show two side routes into the first building. For the Gung-ho player the middle is still a option. 

More colored pipes showing the player a safer path to the second buildning

Inside the first building lights and the pipes guide the player to the open door

The artillery event with smoke, light and sound attract attention to the green lit door

Visual Level Scripting

In order to make the level work I know I had to do some heavy scripting, but since the scope of the project was limited I tried to use approaches that allowed me to re-implement script to get multiple uses of the same functions. In order not to get overwhelmed I divided the scripting needs in three smaller parts that could be divided into manageable tasks:

  • Gameplay scripts - AI behavior and functionality, sneaking mechanics and HUD/UI 
  • Event scripting - Pre scripted events intended to enhance gameplay and/or tell the story
  • Environmental scripts  - Smaller things to increase the eligibility of the level

I worked with the scripts in a small test scene until they had basic functionality and then implemented them for test and tweak in the real level.

The size of the blueprint in this level makes some less suitable to show on mobile devices. For readers not viewing this page on a mobile device that have a interest in how i solved the scripting the majority of my blueprints can be found on Relay Station Blueprint Viewer page in a more comprehensive format.

Gameplay Scripting

Level design should always be framed in the context of the gameplay. So in order to set up this frame I scripted a stealth mechanic and detection behaviors for the enemies. In order to keep it interesting I set up different behaviors for the enemies
Both the Guardbots and the Security Cameras detects the player with a cone-shaped collider with a mesh providing visual representation. If the player is detected they would change behavior and the color channge on the view-cone with a scalar parameter.
I decided to use the standard UE player controls but tweaked them a bit and added the ability to crouch. 


Visual representation problems

During the process I encountered a problem with my lightning-based stealth system. During playtest I noticed that the light-gather function did not correspond well with the visual representation of the shadows. 
After looking into the problem I found that the directed light caused the shadows to be less visually represented that what they needed to be. A player looking for a place to hide did not grasp when they would be able to hide and when they would be not. After trying to solve the problem with lightning settings and tweaking the script I  reached the conclusion that I needed to re-think the stealth mechanic to get a match between my visual  and gameplay ambitions. In the time scope available I went for a more basic stealth system based on Pawn sensing.


The blueprint for the Guardbots and their behavior and detection

Without a direct light shadows and the script both give the impression that the red area is suitble for stealth

With direct light the pointlight script becomes meaningless making the idea problematic unless a new setting/level reconstruction is done.

Event Scripting

I used events in specific locations to enhance the gameplay. In the scenario the Relay Station is under artillery fire and as the player progresses rounds are falling down blocking or opening paths. In order to achieve this I used particle emitters to spawn the incoming fire, explosions and smoke. I added sound to make the player draw attention and scripted destructible meshes to block, open and give additional feeling to the event.
I also added a matinee cutscene since I wanted to lead the player towards the second structure. In this script I added fading and disabled the HUD to better fit the cinematic to the scene.

Blueprint for the Artillery Open Door event

Blueprint for Fly-By Event

Conclusion and Lessons Learned

The level was a large undertaking and while working on the project I learned a lot. While I picked up things I did not know about the Unreal engine I'm also glad I decided to spend time researching composition and architecture picking up valuable lessons in those fields that I know will be beneficial further down the road
In retrospect I think the largest mistake in this level on my part was to use test scene that did not correspond in a good way with the real level. But all in all I'm satisfied with the result and think the goal I set out to accomplish was reached. I made a lot of design choices and iterations when building the level but the most important one was to changes to the overhead approach.