Inspiration

I’ve always loved the “one more merge” dopamine of merge games and the tension of a classic tower-defense lane. For the Meta Horizon Creator Competition I wanted those feelings in one portrait phone loop: buy a fighter, fuse two of a kind into something stronger, and hold a Goblin Camp barricade against escalating undead waves — then rebirth and climb again. My design packet from the previous Meta Horizions creator competition set the fantasy; the competition’s offline / unminified / ≤35MB rules set the hard edges and constraints.

What it does

Merge Tower Defense is a single-player, portrait Three.js prototype. Gold buys units onto active pads; matching units merge up a ladder; kills fund the next buy and optional diamond side-towers. Checkpoints and bosses pace the climb; rebirth resets the run with lasting power. Everything loads from inside the zip — no CDN, no multiplayer.

How I built it

I directed design and playtested on an iPhone over LAN; Grok Bot (Cursor) was the day-to-day coding partner. We shipped an unminified root index.html, vendored Three.js + loaders under vendor/, and pulled in free/owned packs I already had licenses for (KayKit characters & skeletons, Kenney defenses/environment/UI, selected SFX). The loop grew session by session: v1 lane combat → merge + reserve → rebirth & gem shop → full unit ladder & Index → gem towers → economy polish → a lean ~25MB submit zip.

Challenges I ran into

  • Mobile weight & load: Dozens of GLBs made first Play hitchy. We parallelized early packs, deferred the rest, pruned unused assets for the zip, and later pooled spawn meshes for rapid Buy spam.
  • Safari reality: Double-tap zoom ate the HUD; autoplay blocked menu music (we removed music entirely so the build stays offline-clean). Touch handling on Buy needed care so rapid taps didn’t miss.
  • Scope vs. fantasy: A five-realm / 500-wave dream doesn’t fit a focused prototype. I cut social features and unique realm art, kept Goblin Camp + rebirth as the “push further” fantasy, and parked older-phone hitch work for after submit.
  • Balance: Early bosses and shop prices needed many playtest passes (and UGC benchmarks as a north star) so merges and rebirths felt rewarding without soft-locking the run.

What I learned

Offline-first packaging forces honest scope: every mesh and wav has to earn its bytes. Portrait + thumb HUD is a design constraint, not a skin. AI-assisted building is fast when I stay the director — clear non-negotiables, device playtests, and decisive cuts beat endless polish. And “merge tower defense” only sings when the merge readable (glow, finger hints, Index) and the death/rebirth loop respects the player’s progress (diamonds and towers that persist).

What’s next

Post-submit: deeper climb content, pause control, barricade polish, and another pass on older-device Buy performance — without breaking the offline zip rules that made this entry possible.

Built With

Share this project:

Updates

Submission history