top of page

Mirror Block

Global Game Jam 2022 Submission

Position: Lead Programmer and Designer

Developed by: Team NT Studios

Contributions: Scripted gameplay mechanics using C# and Unity. Designed systems and mechanics, as well as puzzle designs.

About

Mirror Block is a game jam game that we submitted for the Global Game Jam 2022 for the theme Duality. We won Best Design at the University of Advancing Technology jam site. The theme Duality inspired me to come up with a movement system where you control two mirrored objects, and the difficulty comes from trying to use your surroundings to navigate around yourself. Things like little holes or corners in the walls can be used to position each block perfectly to fit into the goal space at the same time.

Game jams are short 48 hour projects meant to encourage creativity and passion for game development. Since it's such a short period to finish a project, my goal was to come up with one simplistic yet very strong main mechanic, and then use as much time as possible expanding on the mechanic and polishing it without over scoping the project.

Once the main movement system worked well and win conditions worked well with no issues, I got right to puzzle design coming up with new ways to make the player think about the mechanics, making the most of them. Any additional content I added needed to reinforce the main theme and mechanic in order to keep the game in scope and consistent.

Check out our GitHub and itch.io page!

  • GitHub
  • itchio-textless-white
GGJ00_Logo_Light.png
CharacterMoverTopDown.png

Movement and Theming

During a game jam, it's bets to do simple yet impactful mechanics to make sure you can make the most out of the short time limit. The theme was Duality, so we came up with the idea for a movement system where you control two characters simultaneously that move mirrored from each other.

To
create this, I made a simple top down character mover script that had separate vertical and horizontal movement speeds. I made a simple player controller that uses Unity's input system to get the horizontal and vertical input axes and apply it to the character movement.

Lastly, I made two separate GameObjects to be the player pawns. I set one's speed to be negative in the horizontal axis, to create movement mirrored across the vertical axis. Since horizontal and vertical speed are separate, it allowed for us to use the same components to create movement mirrored across the horizontal axis, or diagonally mirrored as well.

During a game jam, being able to set up quick and dynamic systems is beneficial, because it allows for more time to polish the game and add more content around existing systems and mechanics.

Level3.png

Level Design and Teleporting

After setting up the base mechanics, my next focus was to create a series of levels that make the most of those mechanics. The first two levels are in one block wide hallways that force the player to learn how to get one pawn stuck to move the other pawn independently in order to get them to pass each other. These were meant to teach the player the controls, before introducing them to a larger more open level where they have to think about the mechanics and how to position each block to solve the puzzle.

Only after I made a handful of levels that made sure the player completely understood the movement system did I begin to add more mechanics to the game. The next thing I added were teleporting spaces that added just enough diversity to the puzzles to keep the game interesting. The script itself was very simple to keep scope low and development quick. I made one level that introduced it and had a relatively straight forward solution to teach the player about the new mechanic. I also made one level that utilized solutions from previous levels in addition to having to rely on the new mechanic, forcing the player to learn how both mechanics interacted together.

bottom of page