Final Major Project · Unreal Engine 5 · PC

EruptionEscape

A volcano is erupting. Climb, collect the crystal, and escape before it catches you. Every system built solo, from Blueprint scripting to 3D asset creation.

Genre3D Platformer
EngineUnreal Engine 5
PlatformPC (Windows)
Dev Time~10 Weeks, Solo
ThemeTime & Urgency
Status✓ Published
Case Study

Project Overview

Eruption Escape is a time-pressure platformer set on an active volcano. The project was built around the theme of Time — every system, mechanic and design decision reinforces urgency and consequence. As the eruption countdown ticks down, the game gets progressively harder: screen shake intensifies, meteors blast from the crater, and the environment becomes more hostile with every second you take.

What the player does

  • Start at the base of the volcano with a countdown timer already ticking
  • Climb the mountain across static, moving and collapsing platforms
  • Reach the crater summit and collect the crystal objective
  • Race back down and escape to the helipad before the eruption hits zero
  • As the timer counts down: screen shakes, meteors launch, the environment shifts
  • Die and respawn at the last checkpoint — the timer keeps counting

Development goals

  • Build a fully playable, packaged, distributable PC game from scratch
  • Demonstrate time-pressure mechanics through gameplay systems, not narration
  • Create all environmental assets using Maya and Substance Painter
  • Implement all gameplay logic using Blueprints in Unreal Engine 5
  • Design an accessible difficulty system with a competitive leaderboard
  • Playtest with real users and iterate based on feedback
Target Ages7+
Easy5:00
Medium3:00
Hard60 Seconds
How It Was Built

Technical Breakdown

Every gameplay system was built from scratch using Blueprints in Unreal Engine 5. Below is what each core system does, how it works, and the logic behind it.

01

BP_ThirdPersonGameMode + WBP_GameHud — Eruption Timer System

The countdown timer is the heartbeat of the game. On Begin Play the Game Mode creates the HUD widget; on Tick, a Run Time float increments using Delta Seconds and is pushed to the HUD via UpdateRunTimer. A separate UpdateEruptionTimer event handles the eruption countdown — the HUD divides the raw float by 60 using Division (Whole and Remainder), truncates it, and formats it as {Min}:{Sec} via Format Text.

Easy 300s · Medium 180s · Hard 60s Set via Game Instance before level load Eruption at zero triggers rocks, shake, siren
02

BP_EruptedRock + BP_EruptedRockSpawner — Meteor System

When the eruption timer hits zero, meteors blast from the crater every 10 seconds in sync with screen shake and a warning siren. First attempt used a single Blueprint with Reset Relative Transform to relaunch rocks — physics simulation conflicted with the reset and rocks stopped relaunching correctly. The fix: split into two Blueprints. The Spawner handles timing and calls SpawnActor every 10 seconds; EruptedRock handles only its own physics — Random Unit Vector × 1200 for lateral force, Get Up Vector × 3000 for vertical launch, then Destroy Actor cleans it up.

Random Unit Vector = no two volleys alike Separating Spawner from Rock fixed all reset issues
03

BP_CollapsingPlatform + BP_Platform — Platform Systems

Collapsing platforms: stepping on the Trigger Box casts to BP_ThirdPersonCharacter, fires a 1-second Delay, then Spawn Emitter plays a crumble effect while Set Hidden in Game and Set Collision Enabled remove the platform. Moving platforms use the InterpToMovement component set to Ping Pong with two control points — fully component-driven, no extra Blueprint logic needed.

1s delay gives players time to react Moving platforms are Blueprint-free
04

WB_CheckpointMessage + BP_FallingRockHazard — Checkpoint & Respawn

Overlapping a checkpoint plays a "CHECKPOINT REACHED" notification: Event Construct triggers a fade animation, a 2-second Delay holds it, then Remove from Parent dismisses it cleanly. Rock hazard hits are handled by BP_FallingRockHazard — Component Begin Overlap casts to the character, then Set Actor Transform teleports the player to the Respawn Transform with Play Sound 2D firing simultaneously.

Visual + audio feedback on every checkpoint Respawn point is the last activated checkpoint, never level start
05

WBP_MainMenu + BP_GameInstance — Difficulty & UI System

Difficulty runs through the Game Instance, a persistent UE5 object that survives level transitions. Clicking Easy, Medium or Hard fires an On Clicked event that casts to BP_GameInstance and sets the Eruption Start Time (300 / 180 / 60 seconds), then calls Open Level. The Game Mode inside the level reads that value to initialise the countdown — all difficulty logic lives in one place, no duplication.

Same level loads for all difficulties Leaderboard stores name + time regardless of difficulty
Showing The Process

Weekly Development

Development ran over approximately 10 weeks — see the full journal below for the complete week-by-week research, reflections and playtesting notes.

Week 1

Research & Concept

Researched time mechanics in games — Braid, Majora's Mask, Crash Bandicoot. Created a volcanic moodboard and hand-drawn level layout. Reduced scope from multiple levels to one polished level, the most important early decision of the project.

Week 2

Level Design & Blockout

Built the first UE5 blockout using white box geometry on the sculpted volcano terrain to test player flow and jump distances. Identified steep or misjudged areas for revision.

Weeks 3–4

Maya Modelling & UVs

Modelled rock and platform assets in Autodesk Maya. UV-unwrapped each mesh so Substance Painter could apply materials without stretching, then exported as FBX into the UE5 project.

Week 5

Texturing in Substance Painter

Textured all rock assets with three material states — normal rock, volcanic rock, eruption/molten lava — using PBR layers: Stone Slate base, Concrete Asphalt for roughness, hand-painted lava glow detail.

Weeks 6–7

Blueprint Systems

Built the core gameplay Blueprints: eruption timer, collapsing/moving platforms, checkpoints, difficulty selection, Game Instance. Rebuilt the erupted rock system from scratch after the original approach caused unreliable physics.

Weeks 8–9

Playtesting & Polish

Ran sessions with tutors, classmates, friends and family. Added an optional How-To-Play tutorial, expanded killzone collision after players fell through, and added the "CHECKPOINT REACHED" notification after feedback.

Week 10

Final Polish, Audio & Packaging

Focused on audio throughout — footsteps, breathing, checkpoint and leaderboard sounds, ambient volcanic audio. Balanced difficulty from playtesting data. Packaged as a standalone Windows .exe and distributed via Google Drive.

Demonstrating Development Experience

Problems Solved

Real development means hitting problems and finding solutions. Here are the key challenges from Eruption Escape and how each was resolved.

✓ Resolved

Blueprint Logic — Erupted Rock Not Relaunching

Problem

Reset Relative Transform conflicted with physics simulation — rocks stopped relaunching correctly and behaviour was inconsistent every run.

Solution

Split into two Blueprints: Spawner handles timing and spawning; EruptedRock handles only its own physics. Removing the reset entirely fixed the system.

✓ Resolved

Collision — Players Falling Through Killzone

Problem

Players occasionally fell through the map near killzone edges — respawn wouldn't trigger, leaving them stuck below the level.

Solution

Expanded the killzone collision box significantly. All players now respawn correctly regardless of the angle or edge they fell from.

✓ Resolved

Scope — Original Plan Was Too Large

Problem

The initial FMP plan included multiple levels and modes — building all of it solo in 10 weeks risked something unfinished and unpolished.

Solution

Reduced scope to one polished, complete level early — the most important decision of the project, allowing full focus on quality and iteration.

✓ Resolved

Accessibility — Keyboard/Mouse Barrier

Problem

A playtester unfamiliar with PC games struggled with WASD + mouse camera controls, and couldn't progress past the opening section.

Solution

Created an optional How-To-Play tutorial level. The same playtester completed the main level afterward — completion rates improved across all difficulties.

✓ Resolved

Difficulty Tuning — Hard Mode Completion Too Low

Problem

Early Hard mode testing (60s) resulted in almost zero completions — pressure felt impossible rather than challenging.

Solution

Kept Hard at 60 seconds but optimised the level layout so a skilled player could complete it, creating a competitive leaderboard dynamic.

✓ Resolved

Player Feedback — No Checkpoint Confirmation

Problem

Checkpoints activated silently — playtesters were unsure if progress was saved, some assumed a full restart on death.

Solution

Added the WB_CheckpointMessage widget — a fading "CHECKPOINT REACHED" notification with audio, giving players confidence to push forward.

Tech Stack

Tools Used

🎮

Unreal Engine 5

Level building, lighting, gameplay systems, UI, audio, packaging and distribution.

🔵

Blueprints (UE5)

All gameplay logic — timers, hazards, UI, audio, checkpoints, difficulty and spawners.

🧊

Autodesk Maya

3D modelling and UV unwrapping of environmental assets — rocks, platforms, terrain.

🎨

Substance Painter

PBR texturing — volcanic rock and lava materials, normal/roughness maps into UE5.

The Complete Development Journal

Full Write-Up — All 112 Slides

This is the full FMP development journal in its original order: research, rationale, weekly reflections, blockouts, Blueprint logic, playtesting and evaluation. Click any slide to view it full-size.

Get It

Downloads

⬇ Download Game

Standalone Windows build, packaged via UE5.

Get EruptionEscape
📖 Development Journal

Browse all 112 slides — research, weekly logs, Blueprint logic and playtesting.

View Journal
📄 Full Write-Up

The complete 112-slide development journal, as a PowerPoint file.

Download .pptx

Looking For Opportunities

I'm actively looking for any entry-level role in the games industry — QA, environment art, level design or anything else.

Tactical Trials →