← Back to Home
Oh, Bugger! title artwork

Technical & System Designer

16 weeks 21 people First Person Shooter University
Unreal Engine Unreal Engine
View on Steam

Oh, Bugger! is a first-person shooter where players are swarmed by enemy groups and must keep pushing forward to survive. Think classic boomer shooter meets horde game: the pace of DOOM with the crowd pressure of Space Marine 2.

Every system is designed to reward aggression and punish hesitation. Resources, AI behavior, and player abilities all funnel the player toward one answer: keep moving.

Personal Showcase

My Contribution

As Technical & System Designer I owned enemy AI from design through implementation, built all core player systems, and drove optimization across 16 weeks with a 21-person team. My work covered prototyping, documentation, cross-discipline alignment, and QA.

Crowd AI System Attack Token System Player Abilities Checkpoint System Destructibles Documentation Optimization QA Testing

Design Pillars

Push Forward

All systems reward and motivate the player to keep attacking and moving forward.

Order to Chaos

Powerful abilities let players neutralize chaotic, crowded encounters in seconds.

01

Group Management

A crowd system that splits enemies into squads with a designated leader, cutting pathfinding cost by 90% while making encounters feel coordinated and threatening.

How It Works

The first spawned enemy becomes a leader with collisions disabled. A Group Actor tracks the leader and up to 10 followers. Leaders navigate to the player via NavMesh; followers simply chase their leader, eliminating redundant pathfinding calls across the whole group.

Pathfinding is staggered across leaders to prevent CPU spikes. On leader death, the next valid follower in the array is promoted automatically. On any death, the Group Actor decrements its count and destroys itself when the group is gone.

90% fewer NavMesh calls
2 → 1.2ms per frame improvement
40–60 enemies at stable 60fps
Group system proof of concept

Alternatives Considered

Smaller attack groups and collision tweaks were both tested first. Smaller groups improved coordination but hurt the "Order to Chaos" pillar. Disabling collisions entirely worked but stripped player visibility. The final approach combined the best of both: disabled collisions on leaders only, maintaining performance and keeping enemies readable.

Group size changed — solution 2 Rejected Smaller Attack Groups

Better internal coordination and enemies got stuck less often. But enemy mass still created the same pathfinding cost and the tighter grouping undercut the "Order to Chaos" pillar by making encounters feel trivial to neutralize.

Collision settings — solution 3 Rejected Disable All Collisions

Fastest to implement, the strongest performance gain, and enemies never got stuck. But players lost all ability to visually track individual enemies in a packed group. Readability collapsed.

Behavior tree flocking attempt Rejected Behavior Tree Flocking

Enemies scan their surroundings to spatially orient relative to each other, creating organic swarming. Works beautifully at low counts. At 40+ enemies constantly scanning, the CPU overhead tanks the whole system.

Final Result

Final group system
02

Attack Management

A token-based permission system that caps simultaneous attackers, creating fair, readable combat without i-frames or complex coordination logic.

How It Works

Enemies call RequestAttackToken() via an interface before attacking. If tokens are available, the count decrements and the enemy proceeds. If not, it waits. Tokens return automatically on attack completion or enemy death, closing edge cases where enemies die mid-swing.

Three designer-controlled variables handle everything: MaxTokens (how many simultaneous attacks), AttackCost (tokens per attack type), and AttackCooldown (breathing room between attacks). Balancing the combat feel takes seconds, not days.

Attack manager flowchart

Token request flow

Enemies pile attacks without token control

Without token system: enemies freely pile attacks

No manager: chaotic overlap

Token system: controlled rhythm

3 max simultaneous attackers
0 i-frames required
Synced enemy–player communication

Why Not only I-Frames?

I-frames are the standard solution: a brief window of invulnerability after each hit prevents back-to-back damage. But i-frames alone did not solve player feeling related issues, like players panicking or too much visual clutter. The token system is an addition that did provide these aspects, but also provided the immunity that was required for perfect game feel.

03

Player Ability: Stomp

A high-impact AoE ability that lets players erase crowd pressure in seconds, creating a power-fantasy moment at the intersection of physics, environment, and feedback.

How It Works

On input, the player becomes briefly invulnerable while a vector lerp lifts them upward. A physics-driven launch node slams them down. On impact, a multi-sphere trace scales the AoE radius with fall distance (clamped), triggering Chaos Field System destruction on any eligible objects within range.

Damage communicates through an interface. Feedback layers stack: shockwave VFX shows the AoE boundary, a heavy bass impact SFX lands the weight, screen shake amplifies the moment. The ability feels powerful because every channel confirms it at the same instant.

Stomp prototype

Early prototype

Polished in-game (sound on!)

Iteration: Slam Now Clears Enemy Goo

One enemy type fires goo projectiles that land and linger on the floor, dealing damage over time to any player standing in them. This worked well as an anti-camping mechanic, creating spatial pressure that kept encounters dynamic. However, repeated playtests revealed the same friction point: in tight, crowded spaces the combination of swarming enemies and spreading goo left players feeling trapped with no viable move to make.

The slam was iterated to also clear all goo on impact within the AoE radius. The same area that breaks physics objects now wipes the goo field at the same instant. Players gained a meaningful answer to the worst-case scenario, and the ability shifted from a raw damage tool to a battlefield reset. Comfort in high-pressure moments went up without touching the goo damage values at all.

Slam clearing enemy goo on impact

04

Destructible Objects

A Chaos-driven blueprint tool that lets level designers place physics-destructible props with fully exposed break and explosion controls, no code required.

How It Works

Geometry collections are created in editor. A Field System trigger spawns on player collision or damage events, applying InternalStrain and ExternalStrain forces with customizable explosion magnitude via ForceMagnitude.

The blueprint exposes an explosion magnitude float, a shatter type enum, a strain curve, and an SFX selector directly in the Details panel. Level designers get a documented how-to, meaning new destructibles go live without a programmer in the loop.

Early chaos destruction prototype

Early prototype

Final chaos destruction

05

Credits Screen Game WIP

A physics-driven credits experience that replaces passive scrolling with interactive name plates, turning the team presentation into its own moment of play.

Players interact with the team's name plates through physics-based collisions, creating passive exposure and genuine engagement with credits instead of an immediate skip. Currently in prototype stage with a distinct art style diverging from the main game.