

CROSS THE CONTINENT
A Sword Ride till the Horizon.
Level & Technical Design Focused Project
Project Pitch.
Experience Goals:
-
Create a fast-paced shooter locomotion system
-
Design an engaging flow that pushes the player to move forward
-
Finish the level with a Wow moment

This is a three-week rapid level prototyping school project. For this project, I was tasked with creating a fast-paced shooter level prototype for 3-4 players. All the art assets are from the Epic marketplace.

By researching references from similar games, I created several combat areas containing multiple paths for players. Breadcrumb loot boxes were planned along with each path to help players engage in the combat area and keep moving forward.

I designed and implemented a Sword-riding Wow moment as the level's coda to impress the players further. This Wow moment was built by the Unreal level sequencer.

This is a three-week rapid level prototyping school project. For this project, I was tasked with creating a fast-paced shooter level prototype for 3-4 players. All the art assets are from the Epic marketplace.
Key Responsibilities:
-
Designed and built the level blockout
-
Planned and scripted level enhancers
-
Planned enemy spawning positions
-
Scripted a damage system interface for enemies and the player
-
Designed and scripted enemies' skills, behavior trees, and EQS system
-
Directed and implemented level sequence for a Wow moment
Project Information.
Cross the Continent is a multiplayer first-person shooter level developed by Unreal 5 in three weeks. In this level, the players will start from a cave and explore a nearby shrine to find a soul sword to help cross the ocean. However, the shrine is occupied by mysterious creatures. These creatures are extremely dangerous, and they protect the energy germs that seal the Soul sword.
​
The level's gameplay and locomotion system resembles Apex Legend and Borderlands. All the enemies have scripted skills and are handled by the Unreal 5 Behavior Tree and EQS system. The level contains the following scripted features:
-
Enemy (Base, Melee, Ranged) with skills​
-
Player locomotion system (Sprint, Slide, Vault, Jump)
-
Damage system (Health, ammo, reload)
-
AI Behavior Tree and EQS system
-
Random looting
-
Level enhancer (floating platform controlled by level sequence)
-
Save and load system
Engine: Unreal 5
Play in: Unreal Executable
Work Time: Jan 10, 2024 - Jan 24, 2024
Team Size: Individual
Play Time: 5 - 10 minutes
Features:
-
Fast-paced shooter gameplay and locomotion system
-
Enemies implemented with Behavior Tree and EQS
-
A sword riding Wow moment
Feature Techniques.
Locomotion
The player locomotion system includes walking, sprinting, sliding, climbing, and jumping. All of these are UE 5 Enhanced Input Actions, and their logic is implemented with UE Blueprint.
Managing Method - I defined 4 player movement states and use an enumurator to the state's changes while playing the game. The 4 states are as follows and they are managed by two functions "Resolve Movement State" and "Set Movement State"
-
Walking
-
Sprinting
-
Crouching
-
Sliding
When the player's movement state changes, the execution will trigger "Resolve Movement State" and update to a new state according to the player's input actions.
Sliding - When the player is sprinting, pressing the Crouching key will start sliding. Then, the following steps will be executed to handle the sliding from its beginning to its end:
-
Begin a "Camera Tilt" by using Timeline to lerp the rotation of the player's camera.
-
Adding a force calculated by Floor Influence to the player's character to maintain its velocity until the end of a slope. The Floor Influence is calculated by:
-
Get the unit vector going along with the slope​
-
Get a parameter specifying if the slope ends
-
Multiply the unit vector, the parameter, and an extra multiplier scaling the unit vector.
-
-
When the player's velocity is too large, scale it to its sprinting speed.
-
End sliding when timer is end or the slope became flat​
Climbing - Climbing involves a constantly checking if the player is face a climbale objects. This checking is handled by a line trace starting from the player's foot. If the player is face a climbable object, the line trace's hit result will allow the player to climb when the Jump button is pressed.
AI Behaviors
The level includes an AI system developed by UE Behavior Tree involving tree inheritances, tasks, decorators, blackboard, and services. All enemies use the same AI controller handling perception. All behavior tree tasks incorporate the same interface to increase modularity and reduce coupling.
AI Controller - I implemented an AI controller for all enemies in this project. This controller handling the following things:​
-
Initialization
-
Perception
-
Sight
-
Sound
-
Damage
-
-
Forget the player
-
Seeking an attacker
-
Inform allies of threats

The basic behavior of all enemies involves three FSM states: combat, investigation, and patrol or passive. Each of these states is a subbehavior tree. By setting up all sharing basic states in a base behavior tree BP, I can reduce coupling and modulate differing behaviors.

This is the behavior tree for melee enemies. A melee enemy will patrol passively without wielding a weapon (sword). Then, if it enters a combat state, it will wield a sword, run to where the attacker is, and strafe until getting a token (and the last attack's CD finishes) to perform an attack.

The base enemy class incorporates two interfaces that handle implementing AI behavior and damage calculation. Interfaces are always useful for reminding me to implement critical functions and reducing function redundancies.

The basic behavior of all enemies involves three FSM states: combat, investigation, and patrol or passive. Each of these states is a subbehavior tree. By setting up all sharing basic states in a base behavior tree BP, I can reduce coupling and modulate differing behaviors.
Behavior Tree - I designed and implemented behavior trees from the melee enemies and the ranged enemies in this level. This behavior tree involves usages of:
-
Subtrees
-
Services
-
Tasks
-
EQSs
-
Decorators
Damage and Save & Load System

Damage System - The damage system is similar to Doom's combat system. An AI has to own a token to start to perform an attack. Otherwise, it will be more defensive and strafe near its target. The damage system collaborates with the enemy base class via an interface.
Token-based Combat System - Aside from functions that handle taking damages and healing, the damage system uses tokeN to give an AI permission to perform an attack. An AI will perform strafing and wait for a new assigned token. After performing an attack, the token will be returned for requests from other enemies in combat.
Save & Load System - The level includes a best practice of Save & Load System, which allows the player to resume the progression after quitting the game, restart the level, and save progression by checkpoints. The Save involves both an async save and a normal async, although they make little difference under this project's scope.
Save System - The Save & Load System was constructed by:
-
Game Instance (Save & Load execution logic)
-
Save Game class (an object containing all Informative Structures)
-
Two structures storing Save & Load infomation (Including all enemies' information that should be saved locally)
-
Checkpoint actor
-
Save Game Interface
The game will be saved when the player touches a checkpoint volume or finishes a combat area. The game will load the last save file when it starts and when the player dies. The player can also actively load or restart the level.
Load System - The load system in this level is coupled with the player character. After the player's pawn is initialized, the last saved player's attributes override the current ones. This process includes spawning and attaching the corresponding weapon with ammunition status.
Design Process.

This project is a two-week assignment in which we have no time for a Full-page LDD. To visualize the level layout in my mind, I drew this sketch with 1 grid equal to 1500 uu, according to my experience with fast-paced shooters.

This is the level whitebox that I quickly built after finishing my sketch. The player will start from a cave and defeat the enemies in it. Then, after going through a dark and confining walkway, the player will step on a hill with great openness of sightlines.

This picture shows what the final delivery looks like. All places have a minimal level of decoration to ensure the conveyance of flows. Post-processing and lighting were also set up to visualize the level's mood further.

This project is a two-week assignment in which we have no time for a Full-page LDD. To visualize the level layout in my mind, I drew this sketch with 1 grid equal to 1500 uu, according to my experience with fast-paced shooters.
#1 Release.
Exhilaration of Escaping from Confining Environments.

Use a confining tunnel to further increase tensions after a combat
Raise tensions with confinement - After the player finishes tough combat at the end of the cave area, I raise their tension a little bit further by having them go through a dark tunnel. The player tensions will grow gradually in this dark, confining, and moist tunnel because of uncertainty.

Releasing players' tension and pressure by opening horizons
Turn Tension into Exhilaration - When they reach the end of the tunnel, a suddenly open horizon will rush into their eyes. Such a sudden and huge transition from confinement to openness, from dark to bright, and from moist to refreshing will dramatically transform all the tensions and tiredness cumulated before into relaxation and exhilaration.
#2 Fast-paced.
Get in, Kill, Loot, and Leave
Presenting Multiple Routes - This level was planned to be compatible with a team of 3 - 4 players. Therefore, several invading routes were planned. All players can quickly and smoothly get into combats, clear the enemies blocking their way, open all loot, and leave for the next place. In addition, to get the player engaged in different routes, I strategically placed loot crates as "Breadcrumb" along with each route.
Push Players Forward - To keep pushing the player forward, I implemented a couple of level design techniques to help them engage in the level flow:
-
Framing
-
Foreshadowing
-
Breadcrumbs
-
Pinching
-
Light contrasting
#3 Wowments
A Fantastic Ending of Riding on a Magical Sword.

Surprising and flashy - To surprise the player as a reward at the end, I created a level sequence in which the sword unlocked by the player suddenly scaled up and became a vehicle that took the player across the ocean.
Postmortem.
What Went Well?
-
Technical Success
-
Even though my time was limited, I completed all of a fast-paced shooter's gameplay and AI behavior trees.
-
-
Flow and Sightline Success​
-
The sudden transition from claustrophobic to openness worked well in releasing the player's tensions and tiredness.
-
The hill after the cave created a good place for specifying the next goals and observing enemies.
-
-
The ending is cool​
-
Industry fellows' feedback said the flashy and surprising ending is so cool and exciting.​
-
What Went
Wrong?
-
Assets choices
-
The color themes of most of the assets are similar. It resulted in the situation that some important level elements blend with the nearby environment.​
-
-
It is not bug-free
-
The climbing action​ involves a severe bug that the player can't end climbing
-
-
Player's height​
-
While designing, I didn't take the player's height into account. It resulted in the ramp at the end of the cave blocking the player's sightline before they got close to the cliff.
-
What I
Learned?
-
Feel clearer about my style of workflow
-
A simple sketch would be good enough for quickly blocking out a whole level​
-
-
AI and Behavior Trees​
-
I didn't touch these two things in UE before and this is the first time and the best practice of polishing my UE technical skills​
-
-
How to design a level for a team adventure game​
-
This is a project for a 3 - 4 players team. Initially, it created a lot of uncertainty in measuring scales and matrices. Hopefully, by calculating the player's speed and referring to similar games, I managed to make a good scope of level scale and matrix.
-
Gallery.








