The brand in the play
What I did
Brick enemies and studs to collect: the LEGO® idea flipped from building to breaking.
How it went
partlyThe break-apart polish was cut for time.
A brick-breaker roguelite for Fortnite where the balls fire on their own: you move and aim, and the skill is reading the angles.
Designed and shipped solo in three weeks for Epic Games' UEFN Student Bootcamp 2026.
01Overview
Build a LEGO® island for Epic Games' UEFN Student Bootcamp 2026. Judged on three things, below: what I did for each, and how it went.
The constraints
What I did
Brick enemies and studs to collect: the LEGO® idea flipped from building to breaking.
How it went
partlyThe break-apart polish was cut for time.
What I did
Straight into play: from the hub, the first kill comes at 12 seconds and the first upgrade at 24.
How it went
held68% of launch-day sessions went past two minutes (43 sessions).
What I did
Saves between runs from day one. The boss (17 Aug) and a second class bought with studs (19 Aug) came after launch.
How it went
missed4.65% of launch-day players came back the next day (two). 70% of sessions ended within five minutes: about one run.
02The game
You control two things: where you stand and where you aim. The balls fire on their own and the waves walk toward you, so the skill moves from reacting to reading: you don't die to a missed input, you die to an angle you judged wrong. Inspired by modern brick-breaker roguelites.
That only works if the aim line never lies. Preview and live ball run the same simulation, so the line you see is the shot you get.
Each enemy threatens something different, so a wave gets harder in more than one way.
Kill it before it crosses the line: one that gets through damages you.
In the clip a Lancer gets through and damages the player.
Tankier than the rest: more HP, and a shield that blocks every shot to the face. It eats shots meant for others and forces you off the straight line.
In the clip shots to the face bounce back; a bank shot off the wall kills it from the side.
Fires a telegraphed fireball at where you were: the reason movement matters.
In the clip the fireballs aim where you were; step aside and they fly past.
He walks down the corridor while your fire holds, and only then does his bar appear. Two phases.
Phase 1. He either brings the hammer down, telegraphing which lanes it will flatten (one always safe, never the same twice), or fires a fan of 13 bolts with gaps to read.
Phase 2. He powers up both attacks, chaining them in threes, and spawns five orbiting spheres that eat your balls and hurt you if you get close.
Finish one run and a statue appears in the hub. The second class is a trade-off: you give up free movement for a rail and a paddle, and fire more slowly. In return, the balls that come back can bounce off your paddle and go in again at ×1.5 damage.
A level-up offers three cards, each a random stat boost (damage, speed, health or studs): a stand-in for the build of balls in the postmortem.
Shoot loopa ball every 0.4 s↻ next ball
Wave loop20–40 rows↻ next level-up
Run loop4–5 minutes↻ again, faster
| System | Values | Why |
|---|---|---|
| Fire and ball | one shot every 0.4 s · 1,600 units/s · up to 16 balls in flight · 20 bounces · aim cone ±70° | The fire never stops; 16 balls, not 50, so phones hold 60 fps. |
| Lancer | HP 20 · crash 25 · XP 10 | Cheap to kill, expensive to ignore. |
| Tank | HP 50 · crash 10 · XP 25 · frontal immunity · max 4 per row, never in adjacent columns | HP went 80 → 50 after measuring ~43% frontal contacts. |
| Mage | HP 20 · crash 10 · XP 15 · a fireball every 3 s at 400 units/s, flying 900 units past its target | Aims where you were, so a dodge reads as a dodge. |
| Waves | 20 / 30 / 40 rows · a row every 1.65 s · 11 s pause · Tanks/Mages 0/0 → 15/5 → 20/15% | The row interval is derived (grid step ÷ speed), never hand-tuned. |
| Loops (each restart, harder) | enemy speed 105 / 110 / 115% · HP ×1.3 per loop · crash damage ×1.5 · partial heal of 25–50 between waves | HP grows slowly; speed and crash damage carry the difficulty. A full heal erased every mistake. |
| Boss (Thunder Lord) | HP 2,000 · phase 1: a hammer on 2 of 3 lanes (1.2 s warning) or a fan of 13 bolts over 180° · phase 2 at 50%: both attacks chained in threes, 5 orbiting spheres that eat balls and hurt up close · 0.8 s of invulnerability after a dodgeable hit | One safe lane, never the same twice. The invulnerability never covers a crash. |
| Paddle Brick | 200 studs · paddle 16 studs wide · fire rate ×0.75 · returning balls ×1.5 damage | Priced to be reachable in one run during judging. |
| Economy | ~210 studs per base run · fixed XP per kill · score = damage dealt, credited on the kill | A kill pays at once, not on average. |
03How it's built
There is no physics to lean on: Scene Graph, the system that holds the island's objects, has no rigid bodies. So every shot is worked out by hand, in five steps, and each step belongs to one module.
AimControllerWhere the shot starts and where it points, inside a ±70° cone.
TrajectoryPreviewIt asks step 4 for the path and draws it as dots.
BallControllerUp to 16 in flight, each one leg at a time: from where it is to the first thing it meets.
BounceMathWhy The line in step 2 and the ball in step 3 ask this same function, so they cannot disagree: the path the line draws is the path the ball takes.
BallControllerAt each contact the damage lands first, then the ball relaunches from there, up to 20 bounces. Every leg looks again at where the enemies are: they walk about 20 times slower than the ball.
Tap the arena to aim and shoot, or drag sideways and lift your finger.Move the mouse to aim and click to shoot, or press Fire. The left and right arrow keys aim too.
The dotted line and the ball call the same function: it steps through the grid cell by cell and reflects on the axis it crossed. Side walls bounce; the far end and your end let the ball go.
Bricks hit: 0
Three more pieces keep the arena the same for everyone who reads it.
Runs everything else: the hub, the waves, progression and saves, the HUD, the boss and the classes.
Why The arena's edges come from five markers placed in the editor, not from numbers in the code: they moved several times during development and the code never changed.
Why Saves carry a version number, so the second class could arrive five days after launch without breaking anyone's progress.
One fixed-speed move per enemy, from spawn to the crash line.
Why The gap between rows is worked out from the grid step, so rows stay together at any speed.
Keeps you inside the arena; the rail for Paddle Brick.
Why It uses the same arena edges, so when the markers moved, the player's walls moved too.
What it costs Profiled in the editor on 18 Aug: a per-frame task should run 300 times in a 10-second window, the server's 30 ticks a second. In the densest wave the three heaviest ran about 241 times: roughly 20% of their frames skipped, in bursts. The cost grows with the number of enemies, not with the boss; I left it.
04Playtests
Three rounds on private builds before launch (11–14 Aug), with two external testers on Discord playing with no context from me. Round 1 was called “Testing the first minute”: the bootcamp's LEGO® island brief judged the first minutes of play.
The first minuteshipped build
6 changes shipped (4 before launch, 2 in the second update), 1 left open on purpose.
Open a row for the full card.
Where Tanks may spawn
12 Aug buildTanks could spawn side by side
Worst case: a full row of shields. Every angle meets one.
ShippedNever in adjacent columns, max 4 per row
Every Tank keeps a free column beside it: an angled shot reaches its side.
05Launch & data
Published on Fortnite during Epic Games' UEFN Student Bootcamp 2026 and submitted for judging. A bootcamp island with no paid promotion: its reach came from Discover, which showed it for four days. The page describes v3, the last update (19 Aug 2026); the data runs to 13 Oct and uses the Creator Portal's own names.
Four days on Discoverchart: the first three weeks
| Day | Impressions | Plays | Release |
|---|---|---|---|
| 14 Aug | 62,119 | 43 | Launch |
| 15 Aug | 2,280 | 5 | |
| 16 Aug | 850 | 4 | |
| 17 Aug | 1,168 | 2 | Update 1 · the boss |
| 18 Aug | 270 | 2 | |
| 19 Aug | 67 | 0 | Update 2 · the class |
| 20 Aug | 31 | 0 | |
| 21 Aug | 60 | 2 | |
| 22 Aug | 100 | 0 | |
| 23 Aug | 162 | 0 | |
| 24 Aug | 157 | 4 | |
| 25 Aug | 120 | 1 | |
| 26 Aug | 73 | 0 | |
| 27 Aug | 28 | 0 | |
| 28 Aug | 32 | 0 | |
| 29 Aug | 62 | 0 | |
| 30 Aug | 63 | 0 | |
| 31 Aug | 47 | 0 | |
| 1 Sep | 54 | 0 | |
| 2 Sep | 31 | 1 | |
| 3 Sep | 17 | 0 |
Launch day, 14 Aug43 sessions
All three are rare and logged; none is fixed in the live version.
06Postmortem
Measured against the three things the bootcamp's LEGO® island brief judged:
Building flipped into breaking; the pieces flying off on every hit were cut for time.
2 in 3 launch-day sessions went past two minutes; the first kill comes at 12 seconds.
About one run per session: 70% ended within five minutes. My reading: nothing outside the run asked for another; at launch there was no boss and nothing to buy.
Two weeks of build: the goal was a working loop as fast as possible, so I cut for risk.
This is not sponsored, endorsed, or administered by Epic Games, Inc. LEGO® is a trademark of the LEGO Group of companies, which does not sponsor, authorize or endorse this site. Fortnite and LEGO® assets appear under their respective licences.