SCRAPS

Class Project | Unreal Engine 5.5 | First Person Shooter

Role: Level Designer
Team Size: 3 Designers
Duration: 1 Month
Platform:
Tools: Unreal Engine 5.5, Perforce

Scraps is a post-apocalyptic first-person zombie shooter where players explore an abandoned research facility buried beneath a wasteland. I owned the Focal Point of the level, the Trolley Entrance section, which connects the loading & storage area to the research lab entrance.

Gameplay Showcase

LDD Document

Design

Goals

Goal

Teach new mechanics without overwhelming

Blend puzzle + combat

Encourage player choice

Prevent frustration

Solution

Created a practice version of the trolley puzzle before the research lab

Forced players to activate systems while under zombie patrol pressure

Designed the encounter so players can sneak or shoot

Added trolley auto-closing doors to avoid falling off the track

Blockout Snapshots

vs

Asset Complete

My Level Section – Trolley Entrance

This section bridges the opening area with the research lab and introduces an action-block puzzle blended with combat pressure.

This project was a collaboration between 3 level designers, including me. We used the World Partition feature in Unreal Engine to separate our level sections, then eventually integrate them into a single level.

My section covered the middle portion of the level, bridging the beginning and the end by introducing enemy encounters and incorporating a level mechanic designed to challenge the player to make meaningful decisions under pressure.

Player Flow

1. Enter the trolley station from loading area vent

2. Go upstairs to get to trolley

3. Press the trolley button to initiate transport to next stop

4. Fight or sneak past roaming zombies in the control room

5. Pull lever to initiate power to next trolley

6. Press the trolley button to initiate transport

7. Ride trolley into research lab entrance

Trolley Level Mechanic

Using the Primitive shapes, I quickly modeled a trolley transportation to create the Blueprint’s mesh. Most importantly, each door is an individual mesh, so I will eventually create a sliding-door animation for them using Timelines.

First, in my section of the level, the power to the trolley has been shut off. To make it functional, the player must first turn on the lever to restore power.

This is a simple lever that has an animation of it pulling downward, indicating the player has interacted with it. This then tells a button to turn green, indicating that the button can now be used to open the trolley.

This is the blueprint script for the button. Just like the lever, this specific button references the specific trolley, making sure it communicates with the right blueprint.

Again, here, I utilized Timelines for player interaction feedback, in addition to changing the color of the button.

Effectively, I’ve made the button able to make the trolley move in reverse, allowing flexibility in making different puzzle situations. This also helps, just in case the player is left behind, they can call the trolley back.

This is the Blueprint for the Trolley. Showing how the sliding door is opened and closed using Timelines.

The traversal of the trolley is also uses Timeline, with instance editable Vectors to edit its Starting and End points in the Viewport for easy editing.

I have also created safety measures to ensure that the trolley will not travel without the player inside. Reducing the chances of a soft lock.

Encounter Breakdown – Control Room

This is the section I am most proud of.

  • Two zombies patrol the control room using scripted routes

  • The player can observe patterns before engaging

  • Stealth path avoids confrontation

  • Combat path rewards aggressive play but risks damage while activating systems

This encounter trains players to read enemy behavior instead of brute forcing every situation.

Iteration & Playtesting

The level went through two major milestones: Alpha and Beta.

Playtests were conducted by classmates from other teams.

Issue Found:

  1. Zombies not patrolling

  2. Player falling off trolley

  3. Forced jump at the staircase

Fix

  1. Changed runtime navigation mesh generation to Dynamic

  2. Added auto-closing sliding doors

  3. Leveled geometry to improve flow

Blockmesh to Final

I blockmeshed the level using a modular kit and later replaced geometry with modular environment assets. When necessary, I combined modules to create unconventional shapes such as train ticket scanner.

Level & Technical Design

  • World Partition setup for multi-designer workflow

  • Button and lever action blocks controlling the trolley state

  • Scripted patrol routes for zombies

  • Using Blueprints to make the trolley level mechanic function

  • Conditional trolley logic preventing misuse

Reflection

This was my first collaborative level design project using World Partition, which taught me how to properly own and integrate a section of a shared environment.

The biggest takeaway was the importance of playtesting early. Watching unfamiliar players navigate my level revealed usability issues I would not have caught alone.

What I Would Improve

Given more time, I would push our mechanic through a full IPM cycle (Introduction, Practice, Mastery) instead of stopping at the practice stage. Production was limited to under 10 minutes of gameplay, so some mechanical depth had to be cut.

Next
Next

Bang for the Bounty