top of page

Construction Site Chase

Video Playthrough

​September 2021 - December 2021

Engine: Unreal Engine 4

Platforms: PC (Windows)

A second-year project, over the course of a semester I created a design document for and blocked-out a third-person shooter level. 

Over the course of developing the level, I worked on:

  • Level Layout & Block-out

  • Lighting

  • Level Streaming​

  • Scripted Gameplay Sequences

  • Cutscenes

  • Enemy AI Setup

  • Scripting extra gameplay mechanics

Pre-production

Reference Gathering

I started with gathering reference images and material for the location. Specifically looking at real life construction sites, particularly in cities and for skyscraper buildings. I also tried to gather references for different interiors that could fit in this context, like lobbies or restaurants etc.

Once I had settled on the sequence of events, I began the process of designing the actual layout of the level itself. I started by drawing bubble-diagram sketches, then moving on to creating rough layout drafts, and eventually putting together the final layout plan of the whole level.

Designing the Level Layout

Flowchart and Beatmap

Alongside reference gathering, I also made both a flowchart and beatmap to plan the gameplay sequences and desired pacing for the level.

Collapsing Scaffold Sequence

This is the first main scripted sequence of the level. The idea was to create a more intense platforming section with the inclusion of collapsing platforms and time pressure.

The player drops from a higher ledge (acting as a valve for the sequence), triggering a short cutscene. In playtests I found it took most players a while to realize what was happening in the sequence, or some would continue on completely unaware, so I included the cutscene to make sure the context was clear.

Each section of scaffolding has a delay timer, triggering shortly one after another. The components making up the supports of these actors were purposefully placed in unstable positions, so once they had physics enabled, the platform would collapse naturally.

All of the triggers and scaffolding are contained within a sublevel, so they can easily be reloaded if the player dies and respawns at the beginning.​

Helicopter Sequence

​The next big scripted sequence of the level takes place as the player is ascending an under-construction skyscraper. An enemy helicopter (introduced earlier in the level) opens fire and chases the player along the outside of the building.

The helicopter periodically stops shooting to reload, giving the player an opening to run between different forms of cover.

I implemented the helicopter's movement using an array of target points. At any time, the helicopter has an index that points to one of these, and the actor interpolates its position towards it. A set of box triggers throughout the level will increment this index when the player passes through them, moving the helicopter from point to point. The helicopter's gunfire is toggled in the same way.​

The helicopter is set up to only be damageable with a rocket launcher, which the player obtains at the end of the level. Once hit, the helicopter spins out of control towards another target point.

 

This also triggers an event that causes a radio tower to fall over, providing a way forward for the player.

Helicopter target points

Level Streaming

​To maintain stable performance with such a large level, I had to make use of level streaming. The level is split into many smaller sections that are loaded in and out as needed.

Certain areas lent themselves well to this, such as the indoor sections of the level. However, due to the vertical nature of the level, almost all outdoor areas would be visible from later areas on the skyscraper. 

 

To get around this, I created simpler LOD versions of these areas to load in when visible from a distance, and without any dynamic lights.

Intro Cutscene

​This was actually added later on in the level's development. I wanted to better establish the narrative context, as well as give the player a better idea of their goal.

The cutscene was implemented using Unreal's level sequencer tools, which controlled the camera as well as most actors' movement (e.g the helicopter)

Dealing with the player character took a bit more work, since I didn't have the time or skills to manually animate their movements in the scene.

 

Instead I set up an AI controller specifically for controlling the character's movements in cutscenes. The cutscene's sequencer could call various events and functions in the controller, telling the character to move to set locations or perform certain actions at different times.​

bottom of page