TECHNICAL BRIEF

PROJECT INTRODUCTION

In BroomBroom, players pilot an agile witch mounted on a broomstick thrust into perilous, unbounded airspace tracked by accelerating homing fireballs. Survival requires tight, continuous turning circles and split-second spatial judgment to weave between intersecting missile trajectories. By exploiting homing pursuit dynamics, players bait interceptors into head-on mid-air clashes while harvesting fleeting stars and potion power-ups under escalating barrage pressure.

ENGAGEMENT MODEL4 Weeks
GAME ENGINEUnity 6 (URP 17.0.4)
GENRE2D Arcade Flight & Evasion
ART STYLEStylized 2D Fantasy (Handcrafted Day & Night Parallax)
TARGET PLATFORMSAndroid, iOS, WebGL
ENGINEERING ROADBLOCKS

TECHNICAL CHALLENGES

Built as a signature showcase of CubeStaX's high-speed 2D arcade kinematics and low-overhead WebGL rendering, BroomBroom highlights responsive multi-touch controls, atomic physics collision handshakes, and resilient client-side architecture.

CHALLENGE LOG #1
Broom Broom! Challenge 1
Click to Expand
CHALLENGE LOG #2
Broom Broom! Challenge 2
Click to Expand
1

High-Speed Physics Tunneling on Micro-Collectibles

At accelerated flight velocities (speed boosts or tight turning loops), discrete circle colliders bypassed small potion and star triggers between physics sub-steps, causing frustrating missed pickups despite visual overlap. We engineered a dual-phase detection pipeline in PowerUpCollectible.cs combining OnTriggerEnter2D/OnTriggerStay2D physics with analytical Euclidean proximity checks (Vector2.Distance <= collectionRadius) and dynamic sprite collider normalization to 0.85 world units.

2

Jitter & Target-Swapping in Off-Screen Threat Radar

Projecting off-screen fireballs and collectibles onto screen-edge badges caused jarring visual jitter and rotational snapping near viewport borders, compounded by sub-pixel float drift. We implemented MissileIndicatorManager.cs running in LateUpdate with [DefaultExecutionOrder(100)] after CameraFollow.cs, utilizing edge-hysteresis clamping and critically damped exponential smoothing (smoothTrackingSpeed = 22f).

3

Race Conditions in Mutual Missile Destruction

When two homing fireballs collided head-on, simultaneous OnTriggerEnter2D callbacks fired in the exact same physics tick, producing double-scoring race conditions or null-reference exceptions on destroyed particle hierarchies. We architected an atomic scoring handshake in MissileController.cs with a bidirectional boolean latch before dispatching to ScoreManager.cs, unparenting TrailRenderer components into autonomous lingering scene objects.

4

WebGL Compression Serving & Missing Audio Fallbacks

Serving Brotli-compressed WebGL builds (.br) on standard static servers caused MIME type rejections and decompression errors, while missing audio clips in development risked silent gameplay. We deployed custom server headers (.htaccess, web.config, and proxy mappings) for Brotli/WASM, and developed a procedural waveform synthesis engine inside AudioManager.cs that mathematically generates synthetic audio buffers at runtime.

CUBESTAX ARCHITECTURE

ENGINEERED SOLUTIONS

1

Architecture

Uncoupled Single-Scene Finite State Architecture: Coordinated by GameManager.cs using an explicit state machine (Ready, Playing, Paused, GameOver, Reviving), auto-resolution dependency hooks, and decoupled C# action delegates for PlayFab, Google Mobile Ads, and IAP transactions with zero scene-reload overhead.

2

Optimization

Zero-Allocation Runtime Collection & Particle Decoupling: Memory thrashing is eliminated by pre-allocating reusable collections, caching transform lookups, and pooling UI indicator badges. The Universal Render Pipeline operates with a single unified sprite-lit batching pass, stripped mipmaps, and detached particle rendering maintaining single-digit draw calls.

3

Gameplay

Precision 2D Flight Kinematics & Evasion Loop: Engineered high-agility turning curves baiting homing missiles into mutual collisions, balanced with temporary shield absorbs, nitro star speedups, and Day/Night parallax shifts.

4

Art Pipeline

Lightweight URP 2D Sprite-Lit Shaders: Handcrafted Day and Night themes with multi-layered parallax backgrounds, floating castles, and luminous particle sparklers tuned for ultra-low battery consumption.

VERIFIED SOLUTION #1
Broom Broom! Solution 1
Click to Expand
VERIFIED SOLUTION #2
Broom Broom! Solution 2
Click to Expand
EXECUTION TIMELINE

DEVELOPMENT PIPELINE

Structured milestone sprints from core game loop validation to production-ready multi-platform release.

Phase 1: Flight Kinematics & Dual-Phase Collision

Engineered smooth 2D aircraft turning physics, virtual joystick / touch steerer abstractions, and Euclidean proximity triggers.

Phase 2: Homing Threat AI & Atomic Missile Clashes

Built accelerating fireball pursuit logic and atomic mutual destruction handshakes preventing double-score race conditions.

Phase 3: Threat Radar & Day/Night Parallax

Developed jitter-free LateUpdate screen-edge indicator tracking with hysteresis, paired with dual-theme parallax sky layers.

Phase 4: WebGL Brotli Optimization & Live-Ops

Configured WebGL server compression headers, synthesized procedural runtime audio fallbacks, and integrated PlayFab & AdMob.

MEASURABLE METRICS

RESULTS & DELIVERY IMPACT

Mobile & WebGL Framerate

Locked 60 FPS across low-end Android hardware and WebGL browser instances with zero thermal throttling.

GC Allocations

Completely eliminated per-frame memory allocations during evasion loops via collection pre-allocation and pooling.

Collision Accuracy

Zero missed pickups during speed-boost maneuvers using dual-phase Euclidean proximity verification.

Restart Overhead

Achieved instantaneous reset cycles via single-scene finite state management.

KNOWLEDGE BASE

FREQUENTLY ASKED QUESTIONS

01How does BroomBroom maintain 0 B/frame GC allocation during intense missile swarms?
02How are off-screen missiles tracked around the screen edges without popping?
03What control schemes are supported?
Request a Quote Is your game AI ready?