Inspiration

The changing seasons have always felt like nature's own puzzle — each one transforming the world in ways the others can't. We wanted to capture that feeling in a game where seasonal powers aren't just a theme, but the core mechanic. What if you could hold all four seasons in your hands and use them to reshape a broken world?

What it does

The Last Cycle is a retro pixel-art puzzle platformer played entirely in the browser. Players traverse five handcrafted levels using four seasonal powers — Grow (spring), Melt (summer), Wind (autumn), and Freeze (winter) — each with limited uses. Grow sprouts vines to build bridges, Melt dissolves ice walls, Wind launches you through the air, and Freeze turns water into solid platforms. Each level is themed around a different season and demands creative use of powers to reach the exit. The game features a procedural chiptune soundtrack, particle effects, crumbling platforms, moving platforms, and a narrative arc about restoring nature's balance. It's fully playable on desktop and mobile with draggable touch controls.

How we built it

The entire game is a single index.html file — no frameworks, no bundler, no dependencies. Everything — rendering, physics, audio, input, UI — is written in vanilla JavaScript drawing to a 320x176 pixel canvas. The retro pixel-art aesthetic is achieved with image-rendering: pixelated scaling. Sound effects and background music are synthesized in real-time using the Web Audio API (OscillatorNode + GainNode), so there are zero external assets. The character is drawn procedurally with colored rectangles, animated per-state (idle, run, jump, climb, glide, cast). Six time-of-day palettes and four seasonal palettes blend dynamically when powers are cast. Mobile support uses draggable HTML overlay pads with pointer events. The whole thing fits under 15 KB.

Challenges we ran into

Fitting an entire game — physics, five levels, a soundtrack, particle effects, and a narrative — into a single file with no external assets was a constant balancing act. Synthesizing music that sounds cohesive with just oscillator nodes required a lot of trial and error. Getting the seasonal power radius and tile interactions to feel satisfying while keeping the code compact was tricky — especially the vine-growing mechanic, which needed to animate tile-by-tile without blocking the player. Mobile touch controls were another challenge: making a virtual D-pad and action buttons that are both usable and draggable without interfering with gameplay input took careful pointer event handling.

Accomplishments that we're proud of

  • Zero external assets — every pixel, every note, every animation is generated in code
  • A complete five-level game with a narrative arc, intro, twist ending, and credits — in one HTML file
  • Real-time procedural chiptune music that shifts with the game state
  • Dynamic palette blending that visually transforms the world when you cast a seasonal power
  • Full mobile support with draggable touch controls that work alongside keyboard input
  • A character rendered entirely from rectangles that still feels expressive across eight animation states

What we learned

Constraints breed creativity. Working within a single file forced us to think carefully about every byte — every color palette, every level layout, every audio parameter. We learned how far the Web Audio API can go for game audio without loading a single sample. We also gained a deeper appreciation for how classic 8-bit games achieved so much with so little: careful palette choices, one-pixel highlights, and well-timed screen shakes can sell an entire world.

What's next for TheLastCycle

  • More levels — expanding the world with new seasonal combinations and multi-power puzzles
  • A level editor — letting players design and share their own seasonal challenges
  • Speedrun mode — a global timer and leaderboard for competitive play
  • Accessibility improvements — colorblind palettes, remappable controls, and screen reader support for menus
  • A sixth season — a hidden power that breaks the rules

Built With

Share this project:

Updates

Submission history