This is my entry for Gamedev.js Jam 2021.

When I hear the word mirror, I think on light that gets reflected by one.

Thus, I built a puzzle game where you need to funnel a light through a level to reach the target bar.

If you take the word mirror apart, you'll get the characters M, I, R and O, which inspired me for the levels. I reordered them to increase the difficulty.


To play, drag the range slider to the degree you want and click the button to emit a beam. You can share your result on Twitter.


Things that didn't make it into the game:

  • Reflection fixes - you can run in some bugs where light is not reflected properly right now
  • Distance logic - I would need to create an implementation of „inside” and „outside” to stop the light cross borders where it shouldn't. I'm thinking on topology here. Happy to learn about easier ways in the comments!
  • Success checks - the loop should stop once the light crosses the black bar
  • Failure checks - the loop should stop once the light matches an earlier point (but these would stop the generative art …)
  • Web Audio API to orient by sound (pitch and gain as polar coordinates around center)
  • Multiplayer (Red, Green, Blue and additive mixing). Actually, I had a fastify server already set up …
  • IPFS for level hosting - Share your level definitions with your friends

Sadly, the distance logic does not respect boundaries (what is inside and what's not), so the levels only serve for generative art. Source code on GitHub. If you have ideas, I encourage you to fill issues there!

Nevertheless I learned a lot about SVG by making it.

Development log

Leave a comment

Log in with itch.io to leave a comment.