Flurry Fury (Tower Defense) — Project Story
Inspiration
Most modern mobile tower defense games have fallen into the trap of becoming passive spreadsheets: you drop a stationary turret onto a grid, sit back with your arms crossed, and watch numbers fly off health bars. We missed the visceral arcade joy of classic defense titles like Plants vs. Zombies and the tactile physics of Angry Birds.
We asked ourselves: What if you were not an invisible sky camera placing turrets, but the frontline commander standing directly on the battlements of the Crystal Castle, physically aiming and slinging fiery snowballs and explosive powder barrels into a marching blizzard horde?
With winter mischievousness in the air, Flurry Fury was born: a fast-paced, tactile 3D first-person castle defense game that blends classic ballistics, strategic wave-by-wave economic budgeting, and an army of expressive rogue snowmen invading the kingdom.
What it does
Flurry Fury puts players in first-person defense of the royal Crystal Castle against escalating waves of rogue snowmen marching along snowy mountain passes.
Core Highlights:
- First-Person Slingshot Ballistics: Using direct touch (on mobile) or mouse drag (on PC), players pull back and aim their slingshot with dynamic trajectory prediction lines, calculating distance, arc drop, and flight velocity to strike moving targets.
- Pre-Wave Armory Shop & Strategic Budgeting: Before every round, players manage an armament budget. With $100 base cash plus bounties earned per destroyed snowman and a $25 survival bonus, players strategically stockpile from a 6-tier weapon arsenal:
- Snowball (Level 1) — $1: Rapid basic single-target ammunition.
- Fireball (Level 2) — $5: High-temperature splash projectile that melts clusters.
- Ice Bowling Ball (Level 3) — $15: Heavy rolling sphere with piercing physics that bowls over lines of marching snowmen.
- Cluster Bomb (Level 4) — $35: High-arc explosive splitting into secondary sub-munitions upon detonation.
- Frost Nova (Level 5) — $60: Deep-freeze wave that halts enemy movement and inflicts chill damage.
- Snow Powder Barrel (Level 6) — $100: High-yield demolition barrel wiping out concentrated snowman swarms.
- Persistent Ammo Rollover: Unlike traditional arcade shooters that wipe your stock between waves, all unused ammunition in Flurry Fury carries forward, rewarding accuracy and tactical conservation.
- Mobile-Engineered Smart UI:
- Zero-ammo weapons automatically hide from the combat tray.
- Button cards dynamically auto-scale to screen width so players never need to scroll mid-combat.
- Dedicated card tap zones ensure swapping weapons never causes accidental misfires.
- Intelligent fallback defaults to basic snowballs when a weapon empties, preventing accidental waste of expensive late-game ammunition.
- Visual
"Empty !!"warning banners alert players the instant a reserve runs dry.
- Expressive Visuals & Procedural Audio: Features 6 unique enemy snowman variants with natural walk-cycle tilting, a dramatic 6-stage melting death animation, textured 3D projectiles, and a 100% synthetic sound engine with zero external audio assets.
How we built it
1. Rendering Engine & Visual Pipeline
Flurry Fury was constructed from scratch in clean, unminified JavaScript and HTML5 utilizing Three.js (vendor/three.min.js) running in a responsive 9:16 portrait viewport. The environment features dynamic directional sunlight casting soft shadows across snow paths, animated billboarding sprite systems, and ambient snowfall particle shaders.
2. Slingshot Physics & Ballistics Simulation
Projectile trajectories are governed by classical Newtonian projectile mechanics: $$x(t) = x_0 + v_x t, \quad y(t) = y_0 + v_y t - \frac{1}{2} g t^2, \quad z(t) = z_0 + v_z t$$
The launch velocity vector $\vec{v}$ is dynamically calculated from touch/mouse drag displacement: $$\vec{v} = k \cdot (\vec{p}{\text{anchor}} - \vec{p}{\text{drag}})$$ where $k$ is an elastic impulse scalar clamped to maximum draw tension, giving each projectile class distinct mass, drag, and impact radii.
3. Economic Progression & Balancing
The reward loop balances risk versus reward, giving players agency over whether to buy volume (cheap snowballs) or save for devastating tactical strikes and bounties scale with snowman tier.
4. 100% Procedural Web Audio Synthesizer
To satisfy strict offline evaluation rules with zero network calls, all audio was created procedurally via the browser's native Web Audio API:
- Slingshot Tension & Fire: Frequency modulated sine wave sweeps ($f: 120\text{ Hz} \to 440\text{ Hz}$).
- Snowman Hits & Explosions: Exponential white-noise bursts passed through low-pass resonant biquad filters.
- Victory & Coin Chimes: Harmonically pitched triad sine chords ($523.25\text{ Hz}, 659.25\text{ Hz}, 783.99\text{ Hz}$).
5. Collaborative AI Pair Programming
The game was developed through 9 iterative sessions with Antigravity / Gemini, analyzing competition constraints, creating early prototypes, pivoting to first-person perspective, tuning the economy, and auditing offline submission compliance.
Challenges we ran into
Touch Event Conflicts (Swap vs. Slingshot): Early mobile playtests revealed that tapping weapon selection cards often registered as a slingshot touch event, causing players to accidentally fire expensive ordinance. We resolved this by isolating the UI pointer capture layers, stopping event propagation on touchstart, and adding a floating
"Swapped!"badge.The Ammo Persistence State Bug: During initial testing, unused ammo vanished whenever the player transitioned to the Armory shop. Because the shop was re-initializing weapon objects on wave completion, carryover stock was getting overwritten. We restructured the state architecture around a persistent inventory dictionary that cleanly aggregates remaining rounds with new purchases.
Mobile Screen Real Estate & Thumb Clutter: With 6 different weapon tiers, displaying buttons on narrow mobile screens forced users to horizontally scroll mid-fight. We engineered an adaptive flexbox container that calculates active weapon count, dynamically scales button padding and icon dimensions, and hides empty weapons to guarantee a no-scroll thumb interface.
Strict 35 MB & Zero-Network Constraint: Integrating 6 high-res enemy sprites, a 6-stage melting death animation, 3D projectile skins, and complete sound design without exceeding the 35 MB competition ceiling or calling external CDNs was a tight puzzle. By using procedural Web Audio synthesis and optimized sprite packing, the entire submission was condensed to just 14.90 MB.
Accomplishments that we're proud of
- The Slingshot "Game Feel": Achieving immediate, tactile satisfaction when releasing a shot—watching an Ice Bowling Ball crash through a line of snowmen with heavy physical momentum feels great.
- 100% Offline, Zero-Dependency Architecture: The game requires zero internet, zero CDNs, zero Google Fonts, and zero external audio files. It runs completely standalone inside Airplane Mode or offline grading sandboxes.
- Pristine, Unminified Codebase: At 1,722 lines,
index.htmlis fully human-readable, formatted, documented, and structured without code obfuscation. - Visual Personality: Breathing life into enemies with procedural walk tilting, stride bobbing, and a sequential 6-frame melting animation that turns defeated snowmen into fading puddles.
What we learned
- Tactile Agency Beats Automation: Our early prototypes experimented with traditional top-down tower defense. Shifting to a first-person standpoint with direct physical aiming completely transformed player engagement from passive observation to active tension.
- Mobile Ergonomics Require Adaptive UI: Designing for mobile viewports means accommodating one-handed thumb interaction. Static UI trays fail when inventory grows; dynamically auto-sizing controls and filtering out 0-ammo states is essential for fluid mobile play.
- The Elegance of Procedural Sound: Relying on the Web Audio API synthesizer not only saved precious megabytes of storage, but allowed sound parameters (pitch, decay, filter cutoff) to scale dynamically with projectile velocity and explosion scale.
What's next for Flurry Fury (Tower Defense)
- New Boss & Enemy Archetypes: Introducing the Snow Yeti Brute (throwing snow boulders back at the battlements) and Blizzard Bats (gliding aerial attackers requiring high-arc anti-air shots).
- Elemental Synergies & Combos: Combining weapons for tactical multiplier effects—e.g., dousing snowmen with Frost Nova and detonating them with a Fireball to trigger massive thermal shock damage.
- Endless Horde Survival Mode: An infinite wave mode with global high scores and personal best defense records.



Log in or sign up for Devpost to join the conversation.