Mechanics Prototyping
A top-down sci-fi shooter built from scratch in Unreal Engine 5 Blueprints across eleven weekly sprints — AI Behaviour Trees, Chaos Destruction, a bespoke audio system, a currency shop, puzzles and four weapons.
- Module
- GDEV40018
- Engine
- Unreal Engine 5
- Type
- Solo · Level 4
- Year
- Dec 2024 – Mar 2025
- Scripting
- Blueprint (Visual)
- Weapons
- 4 (Pistol · MG · Shotgun · HP Rifle)
- Enemy types
- 3+
- Dev Thread
- 281 pages
What is Mechanics Prototyping?
Mechanics Prototyping (GDEV40018) was a solo module at Staffordshire University running across eleven weekly sprints. The deliverable was a top-down sci-fi shooter built from scratch in Unreal Engine 5 using Blueprint scripting, with no shared framework - every system was designed, built, and iterated on independently week by week.
It's the largest, most ambitious solo project on the portfolio by mechanic count that I worked on. The scope expanded significantly from what was originally planned - what started as a focused prototyping exercise grew into a game with a full UI suite, a bespoke audio manager, Chaos Destruction environments, a player progression system, a currency-driven shop, AI enemies with Behaviour Trees, four weapons, puzzles, collectibles, and a complete options menu including NVIDIA DLSS and Frame Generation support.
// Top-down level — aerial view of the prototype arena
The module was inspired by analysis of Diablo IV, X-Men Legends, and Bomberman Battlefest - specifically their approaches to varied enemies, dynamic difficulty, and destructible environments. Progress was documented weekly on the Digital Academy Forum as a development thread.
Week by Week
Each sprint added or iterated on a mechanic. Development was documented in a 281-page Digital Academy Forum thread covering analysis, builds, crashes, fixes, and reflection.
-
Week 0
Analysis
Research phase. Analysed Diablo IV, X-Men Legends, Bomberman Battlefest. Identified key design pillars: Varied Enemies, Dynamic Difficulty, Destruction. Set scope for the module. -
Week 1
Core Foundation
BGM/SFX player Blueprints, Pawn possession, fireball WIP skill, reactive lights, rotating mesh props, firing mechanic, destroyable targets. Cyberpunk 2077-inspired level design start. -
Weeks 2–4
Player Systems
Player Character Blueprint (BP_PlayerCharacter) built out — movement, damage/death, sound, passive mechanics, weapon switching. Health system, boost bar, tutorial overlay animated panel. -
Weeks 4–5
Enemies & AI
Enemy Behaviour Tree with Combat/Investigating/Passive states. EQS queries for positional awareness. Strafing logic. Patrol routes. Multiple enemy types: UFO, red spiked ship, crystal/enchanted enemy, heal enemy. Projectile diversity - pistol bullets, missile, laser beam, fireball, enchanted projectile (poison). -
Week 5–6
Destruction & Props
Chaos Destruction integrated. Crate BP spawns physics coin burst on damage. Destructible object BP with randomised destruction SFX. Nanite enabled for performance. Sliding door with 'Swooshy Mooshy' animation timeline. Archway procedural mesh generation. -
Week 6–7
Economy & Shop
Coin pickup system (spinning coin, random value, radius debug trace). Sushi Shop UI - three upgrade tiers (Health +25, Health Regen 5 HP/2s, Coin Radius). Upgrade cost balancing based on playtesting. Sushi Gogo van prop placed in shop area. -
Week 7-8
Progression & Puzzle
Player levelling system with XP and Event Dispatcher-driven UI updates. Pressure plate puzzle (9-plate grid, possession mechanic, wrong-combo penalty spawns enemies, correct-combo wall explosion). Kinder Egg Easter egg collectibles. -
Weeks 9-10
Polish & UI
Full options menu (Screen Settings, Graphics Settings, DLSS, Frame Generation). Occlusion outline post-process material (M_PP_OcclusionOutline). Player UI coin counter with fade animation and timer-based visibility. Ambulance spawner. Tutorial system completed. -
Week 11
Balancing & Submission
Difficulty balancing after playtest feedback - initial segment was too punishing. Adjusted enemy damage values, added player damage resistance. Shop upgrade cost rebalancing. Performance investigation (stat gpu, 30fps drop on startup - root cause not isolated).
Arsenal
Four weapons are available, each with distinct stats, range, and a unique feel. The pistol is the starting weapon; all others are obtained through exploration or the shop.
// In-game HUD — health and weapon display
Pistol
Starting WeaponFire Rate Normal (1.0s)
Range Long
Accuracy Very Accurate
Travel Time Normal
Machine Gun
Mid-GameFire Rate Very Fast (0.1s)
Range Very Long
Accuracy Fairly Inaccurate
Travel Time Almost-Instant · Trail particles
Shotgun
Mid-GameFire Rate Average
Range Medium
Accuracy Very Inaccurate
Travel Time Fast · Pellet spread · Lifespan 0.65–1.5s
HP Explosive Rifle
Late-GameFire Rate 4-Burst Semi-Auto
Range Very Far
Accuracy Very Accurate
Explosion Radius 350 · Self-damage possible
Level Structure
The game is structured across a linear main path with optional branch paths offering secrets, extra weapons, and loot. Seven main nodes drive the critical path; nine branch nodes offer optional content.
// Top-down wireframe level layout
-
Node 1
Tutorial area
player learns controls, core mechanics, and encounters first enemies. Kinder Egg #1 accessible. -
Node 2
Exterior patrol
open exploration zone, a few patrolling enemies, ambient world-building. -
Node 3
Puzzle approach
more enemies surrounding the building. Find clues on walls and floors (press E to memorise). Branch: control panel room, exterior for Kinder Egg #2, and a weapon pickup. -
Node 4
Pressure plate puzzle
possess the cube, activate the correct 4-plate combination on a 3×3 grid. Wrong combo temporarily evicts the player and spawns enemies. Correct combo explodes the wall into the city. -
Node 5
City entry
end goal blocked by explosive wall, console must be activated. Shop access available. Kinder Egg #3 hidden here. -
Node 6
Horde wave
endless enemies spawn until a timer expires. Side locations accessible with coins and weapon pickups. -
Node 7
Final push
reach the end goal while enemies are still active.
Systems Built
Bespoke Audio System
Inspired by Final Fantasy XIII's combat/exploration music transitions. The default UE5 sound management approach produces complex, unwieldy Blueprints. The custom system uses separate sound player instances per audio stream to avoid playback inconsistency. BGM transitions dynamically based on combat state. The system also explored MegaSounds as a more robust framework for advanced features.
Chaos Destruction
Destructible environments using UE5's Chaos physics. Nanite was enabled on specific materials to avoid a severe performance penalty (without Nanite, frame rate dropped significantly under destruction load). Destruction SFX randomised per hit. Crate Blueprint spawns a physics coin burst with a random count and prevents duplicate spawning via geometry collective component check.
Occlusion Outline (M_PP_OcclusionOutline)
A custom post-process material that detects when an enemy mesh is occluded behind geometry and renders a visible outline through the wall. The graph samples pixel depth, separates mesh from scene using an outline mask, creates highlights around the outline, and calculates occlusion - all wired into a final composite with a toggle for whether the outline renders when unoccluded.
// Enemy behaviour tree — Blueprint AI logic graph
Enemy AI
Three-state Behaviour Tree: Combat (chase and attack player, strafe logic, EQS-based positioning), Investigating (move to last known location, wait, then revert), Passive (patrol route or idle). Enemy types include: UFO (looping particle trail, magenta laser beam), red spiked ship, crystal/enchanted enemy (poison projectile, ambient aura), and heal enemy (missile fire, chase, healing arc spawn on death). Some enemies inherited Aggressive state, when reaching certain threshold, making them act aggressive and ruthless.
Player UI
Coin counter with animated fade in/out using event dispatcher bindings (Hide Coins / Unhide Coins). Timer-based hide handler prevents the hide event from firing while coins are being actively collected. Level bar and boost bar tracked live via custom events. All UI updates flow through Event Dispatchers to avoid Blueprint coupling.
Niagara VFX - Multiple particle systems authored for the project:
- NS_LaserBeam_PurpleLight
- Fireball Explosion
- UFO Trail Orbs
- Sparkle Burst
- Cyan Firework
- Portal Ring
- Pink Rose Particles
- Ground Fire Trail
- Magenta Ribbon Beam
// Laser beam — Niagara VFX particle trail
Challenges & Lessons
UE5 produced ambiguous bug checks with little actionable information. One particularly painful instance: the shop UI Blueprint had an infinite
loop caused by an event that shared nodes with several others performing similar functions. The fix was hardcoding a call limit — which later
became redundant when the underlying issue disappeared on its own. A gradual performance drop (approximately 30fps lost seconds into gameplay) was
investigated using stat gpu but the root cause was never isolated — Task Manager showed both CPU and GPU underutilised.
Difficulty balancing — Playtest feedback revealed the early game was too punishing. Players were dying too frequently. Enemy damage values were adjusted and a resistance mechanic was added to mitigate incoming damage. Shop upgrade costs were also too high relative to available currency — lowered after playtesting.
Audio system — Reusing the same sound player Blueprint instance caused playback inconsistencies. Each audio stream required its own instance. The bespoke approach worked for basic BGM/SFX but the more advanced combat-state-aware transitions required further experimentation.


















