This game was designed under the principles of Algorithmic Problem Solving. Maggie's Mirror is a 2D light-and-reflection based puzzle-platformer built C#. The 2D tile Map Editor used a combination of C# and XML, and was fairly advanced. It allowed its user to save, create multiple maps, select multiple tiles of a differing number of horizontal and vertical elements in both the tile selection and placement screens, choose from multiple tile types which each had different visuals and functionality in-game, replace and erase previously placed tiles, click and hold for placement of continuous tiles, scroll vertically and horizontally to create maps of huge sizes while the editor keeps count of the amount of tiles shifted, and import them directly into the code we made for our game to create a level, converting from XML back into our C# code.
We coded the physics, screen movement, character control and stats, and pretty much the entire game ourselves with help from MonoGame's asset pipelines. The game allowed the player to switch between the different characters on the spot, as each were meant to be characters trapped inside Maggie's Mirror and representing aspects of herself and the stages of her mourning. Each character had a unique gameplay element, from Maggie, who could use her mirror to reflect light in a gameplay menu similar to WindWaker's wind selection screen, to the astronaut who could hover using jetpack, to the knight who could defend against projectiles by blocking with his shield. The main puzzle element we completed was the usage of Maggie's light from her mirror to light up crystals that would change the layout of the level, and the manipulation of these changes would allow Maggie and co to get through to previously unaccessible areas of the level. We also had a checkpoint system, a dynamically scrolling screen, and a menu and options system which allowed the user to change screen resolution. We completed all of this in about a month.