A downloadable game for Windows


NOTE: Run one of the .bat files if you have a high resolution screen or slow CPU, else it will be too slow!  ALSO: Don't give up! :)

"Reflecting on Change" is my first game, and was made in about 3 days as part of the Extra Credits Game Jam #3.  It is a game of mirrors and reflection.  It can be finished in about 90 seconds, but I expect most people will take 4-10 minutes.  It only runs on Windows, unless it works under some emulators.  The mouse is locked to the window, so to exit, press the Esc key or Alt+F4.

If it doesn't run for you on Windows, please let me know!  It might or might not need some Visual C++ runtime to be installed, but I don't know.

There's much to be improved about it, especially the slow performance, even on mid-range CPUs, and the poor graphical quality, but it is what it is, and I hope you enjoy it!  There's a photosensitive epilepsy warning, because the flashing of the slow redrawing on slower computers can get quite bad.

To mitigate the slow performance, please run one of the .bat files to run it windowed at a lower resolution if the default full screen is too laggy.  I should have had it render in lower resolution and scale it up, instead of rendering at full resolution.

I have many ideas for a full game that could be made based on ideas from this game, but that will have to wait.

Thanks for playing, and have fun! :)

Neil Dickson

P.S. If you play randomly, there's about a 1/4 chance of finding the Extra Credits "Walpole" Easter egg.

P.P.S. I made this in C++ mostly from scratch using the Simple DirectMedia Layer (SDL) library in Visual Studio 2017.  (I wrote code to make a window and get UI events in advance, to make sure that'd work.)  The images were made in... PowerPoint and Paint... yes, I'm ashamed.  I designed the play space on a nice Panobook notebook with a cheap mechanical pencil.

Install instructions

Just download the .zip file, extract it into a folder for the game, and run either the .exe, or one of the .bat files if the default fullscreen resolution is too laggy.


ReflectingOnChange_2019_03_16.zip 4 MB

Development log


Log in with itch.io to leave a comment.

This concept was so cool, and the execution was neat too. Was this really your first game? That's amazing!!! I loved the messages and the way they guided you, and (spoilers?) I'm always a fan of going a little meta and having to break the "rules" and "boundaries" of a game to succeed, heh. Awesome job.

Thanks!  I'm glad you liked it!  :D  It's not my first *attempt* to make a game, but it is the first time I've actually made one.  Everything I'd tried before either had too large of a scope or turned out that the core mechanics weren't fun or interesting enough to bother finishing.  It had been several years since I last tried to make a game, and it's been a dream of mine since I was a little kid, so I figured I'd give it another shot, and I happened to find something okay this time. :)  The forcibly limited scope of the jam and the neat theme helped, too.

Whoa, cool effects! I liked how you created a mirror maze in two dimensions. This is one of those games that I, as a programmer, think: "well, it isn't obvious how to achieve this result.... I want to learn this!!" So, if you got the time, could you make a tutorial or something explaining your magic? hahaha :D

Oh, and I thought it was cool that you used SDL, as I also used it years ago in college!


I'm glad you liked it!  I'd love to make a tutorial about it. :)  The math isn't too complicated.  I honestly didn't know what it would look like before I tried, and it turned out to be much more interesting than I thought.  The main idea is that it's showing what the character would perceive to be in a particular location, by sending a ray in that direction travelling for that distance, but bouncing off mirrors along the way.  On the flip side, because it's sending a ray for every single pixel and every bounce, it's super slow; I have an idea how to avoid that, but there are edge cases I have to sort out first... especially if I were to make a 3D version of it. ;)  SDL makes it super easy to construct an image in an unusual way like this and just show that in a window, though if I make something more graphically complicated, I should probably learn how to do it properly with OpenGL or Vulkan, instead of overheating everyone's CPUs, haha.

This is a really well done jam game. It reminds me of Antichamber a little bit, with the theme of confusion and non-elucidity. It could turn out to be a great game if developed further! :o But one small problem I had, though was that the player didn't move immediately when I pressed a movement key, it always waited a little bit (like less than a second) to start moving, also the framerate's a bit low, but those are small things in a game jam game! Good job!

Thanks!  I should really play Antechamber; I've heard people reference it a bunch, but I never got around to playing it.  I uploaded a new version a few hours ago that should avoid the big delay between the first key press response and the second.  It's still a pretty low framerate, though; I still have to work out the edge cases for a better algorithm to speed up the rendering.  It might be a while before I get around to that change, though I might start work on an expanded game if it works well. :)

Woooooooow... I just checked out a video of someone playing Antechamber and it's amazing how similar it is in such specific ways!  Of course, Antechamber is a 3D game that's much better put together than my game, and it doesn't have mirrors, haha.  It still blows my mind, though, with the decisions bit, and having the similar sorts of signs around everywhere.  Thanks for pointing it out! :)

The reflections are gorgeous, the little bit of messing around with the player was well done.

You really should have it move as long as the player is holding down the key. I didn't really care for the mouse use, I think you'd've been better off either having turn keys or just put the player in the center of the screen and not turn at all.

Would be nice to have more "mirror maze" puzzle like elements. I think you could take this somewhere interesting.

Thanks!  I think I can hopefully soon fix the biggest issue with the keys fairly easily.  I completely agree that the mouse view direction control is bizarre for a 2D game, haha. :)  I mostly did it out of curiosity, to see what it would be like to have FPS controls in a 2D game, which is also why I put the player off-center, to more closely reflect (pun intended) what a player would see.  It turned out to be less awkward than I thought, but still super weird.  If I made a 3D version, though... ;)

Awesome game, i really loved the mirror effect! As previously said a narrator kinda like in Stanley parable would've been a real nice touch but that would've been way out of scope for a game jam game :D If you plan on ever continuing work on the project some optimization would work wonders too.  Other than that i dont have much to say, you've made a really great game, especially for being your first time :O

You should be really proud, good luck with your future dev-ing :D


Wow, thanks so much! :)  In fairness, I've tried to make a game several times before, but this is the first time I actually did, haha.  I usually can't keep the scope in check or discover partway through that the only unique thing about a game idea wasn't fun enough to finish, but it's been years since I'd tried, and this one happened to work out.  I'll see if I can make a few improvements to it soon, since there are a few things I can probably fix easily, like rendering at lower-res and scaling up.  It might be interesting to expand on the idea, too, though that'd be a lot of work.

Really cool game. Around some of the corners the kaleidoscope effect was really stunning. It's always fun to see raytracing in the wild. I liked the message and, while narration would add to it, that definitely would have been out of scope for the game jam. The changing (I think) geometry of the levels enhanced the uncertainty given by the reflections, which made me just embrace going where it wanted me to go. The movement could have been more responsive—it felt like you were using the OS auto-repeat to get inputs instead of checking if the key was down on a frame.

I managed  to find Walpole on my third attempt. That was a fun little bonus to put in.

Thanks!  That's a very good observation about the OS auto-repeat for keys.  If someone has long auto-repeat delays on, it could make the game super slow, and even with fast auto-repeat delays, the first delay is always much longer than subsequent ones, so it'd cause jumpiness.  It's probably easy to fix, so I'll try to remember to fix it once the games are unlocked after the jam.

Oh dude I really liked the concept/idea of this game! How is this your first game? ;) Like someone else's comment said, I'm also getting stanley parable vibes, and I'm loving it. It sucks that I got stuck in a dead-end loop, but that's part of life sometimes, hehe. What would have been an extremely awesome addition to the game would be narration! Maybe something for the future. The game also (like you said) lagged quite a bit, even though I've got a pretty powerful PC. No biggy, for a jam game though. Another piece of feedback: I would try to make the walking a bit smoother. At the moment you have to hold forward for a bit before it really starts moving, I've noticed. Anyway, good job, I liked it!

Thanks!  You might want to double-check those dead ends again... ;)  For smoother screen updates, you can try running one of the .bat files to play windowed at 1280x720 or 800x450.  It's very CPU-heavy, and I didn't have a lot of time to optimize it, so the lower resolution can help a lot.  Narration would be really cool; if I'd had more time, that would've been a neat addition. :)

Ah, damn. I knew there was more to those dead ends... But I walked from side to side, and it seemed that every side had mirrors on it... (with the emphasis on seemed) Yeah, a lower resolution would have definitely helped!

I got very Dizzy but I liked your game, thanks!