Inspiration

I wanted to take a classic, universally understood genre-the top-down 2D pixel maze-and strip away the player's greatest asset: their sight. I asked myself: What if the actual maze isn't the challenge, but your own spatial memory is? That single question birthed the concept of a "Memory Maze" where the darkness is your primary antagonist.

What it does

Memory Maze is an intense, bite-sized puzzle-action game. The gameplay loop is brutally simple but highly addictive:

  • The Flash: At the start of the level, the player gets exactly 1 second to view the entire maze layout.
  • The Dark: The walls disappear into pure blackness. The player must use their spatial memory to navigate their sprite to the exit using keyboard controls.
  • The Lifeline: If players get hopelessly lost, they can press the "Reveal Walls" button. This flashes the map back on for 5 seconds—but they only get 3 charges per level.
  • The Escape: Navigating successfully to the goal triggers a highly satisfying confetti explosion and unlocks the next challenge.

How we built it

  • The Physics: We cleverly repurposed Phaser's internal arcade.physics debug tools. Instead of drawing actual black tiles over the screen, we simply toggled the physics debug boundaries (drawDebug) on and off to simulate the map flashing in the dark, ensuring collision physics always remained perfectly intact.
  • The UI: Instead of relying entirely on Canvas-based UI, we built a modern HTML/CSS overlay. This allowed us to build highly responsive, cleanly styled menus and buttons that sit flawlessly on top of the WebGL game instance.
  • The Juice: We integrated the canvas-confetti library to provide instant, satisfying visual feedback during the menus and upon reaching the victory zone.

Challenges we ran into

  • Engine rendering: We discovered that if Phaser initializes with debug mode off, it never creates the internal graphics rendering tool. We had to dynamically force the engine to instantiate its debugGraphic class at runtime so our 5-second reveal button wouldn't crash the game.
  • Event Loop Clashing: We had to carefully manage browser timeouts (setTimeout) against the game engine's internal physics updates to ensure the 5-second map reveals triggered flawlessly without needing to reload the browser state.

Accomplishments that we're proud of

  • The "Juice": Getting the confetti burst to trigger perfectly upon the exact overlap of the player and the goal zone feels incredibly rewarding.

Built With

Share this project:

Updates