Myrtle the Turtle

The Heron raided the burrow and scattered Myrtle's twelve eggs across all four floors of the Glimmerpond — the caverns below, the pond, the woods, and the windy heights where the thief keeps its nest. Sixteen flick-screen rooms, climbed by vine and shaft. ← → move, ↑ jump, ↑↓ climb vines — and Z / Space / X fights: a flying kick on the move, the SHELL SPIN in mid-air (five revolutions, everything in reach taken out — then it needs five seconds to recharge, watch the 🌀 gauge), and standing still, the ROAR, which hurts nobody and moves everybody. No button at all: land on a pest and you've stomped it — the Mario rules, rebound included. And on X she draws her bow: a nock, a loose, an arrow across the screen — her own button, because a bow deserves one. Her shell takes three hits; energy cells in the hard places mend it. Bring every egg to the nest on the summit.

What makes it Myrtle

  1. The fight is data — this is the first game built on the engine's moveset system rather than retrofitted to it. The kick, the spin, the stomp and the roar live in her profile as an attacks table: stances, envelopes, cooldowns, hit shapes, knockback — all JSON in profiles.js. main.js contains no combat code: one listener banks the kills, one HUD line reads the spin's cooldown. That's the entire fighting system, game-side.
  2. Five moves, five verbs — the kick removes (a committed lunge, Chan school), the spin takes out (everything in the radius, for as long as you're turning — the crowd-clearer, on a cooldown to match), the stomp punishes (landing on a pest is an attack; the moveset declares stance: 'stomp' and the engine judges every landing), the roar rearranges (a push and a daze, no damage at all), and the bow reaches (the move is engine archery — nock, loose, cooldown — on its own button via the moveset's keys routing; the arrow is the game's one spawned Projectile, and a struck pest is simply marked dead for the World to see off). Picking the right verb for the room is the game.
  3. A shell worth something — three energy points instead of one-touch death, mercy frames included, straight from the profile (energy: 3). Deep water and thorns cost a point and teach a lesson.
  4. A world of data — sixteen rooms in rooms.js built from chan's grid vocabulary grown two door types: vine shafts that line up column-for-column between floors. The whole world — eggs, herons, geysers, the barred nest — is the same JSON any Designer game exports. The harness that proves it completable (every rise ≤3 tiles, every shaft aligned, a live engine run from spawn to the opened nest) ran before you did.

Download & remix

Both files are live in the SOURCE panel — edit and RUN ▶. Take them home: main.js · rooms.js · engine bundle. Remix ideas: give the roar a kill: true and become a monster; take her stomp away and feel how much it was doing; a fifth move on a long cooldown (stance: 'climbing' — nobody expects a vine attack); a 90-second clock in RULES for the speedrun crowd; or steal Myrtle's whole attacks table for your own character in the Designer — it's the same JSON.