
Project Overview
Engine: Unity 2022.3.43f1
​
Programming Language: C#
​Role: Game Developer and Game Designer
Duration: 2 weeks
​
Status: Complete​​
This is a Puzzle Platformer game I created using C# in the Unity Engine. I made this game for a game jam with the theme being "2-Dimensions" with that I decided to create a very fun brain picking 2D puzzle game where the player has to switch between different worlds in order to solve obstacles and progress to the goal!
​
Gameplay Video
Design and Development
Purpose
This project was created for the GameDev.tv Game Jam 2023 competition. The theme for the jam was "2-Dimensions". I wanted to create a game that would encourage the player to have to switch between 2 different characters with 1 goal in mind which is to reach the end. Depending on which player you are the level design would change encouraging players to figure out puzzles to complete the level.


Game Mechanics
I created player movement using unity's input system package. My approach to the movement was to have something basic, yet at least one game mechanic that can help with more difficult puzzles. I programmed a dash mechanic that allows the player to change its velocity for a short period of time. I did realize that the player would dash in one direction only, so I created a variable that checks to see if the player is facing right and if that's true then the dashSpeed would be set to a positive value sending the player right. If facing right is false then the player will dash to the left.
At first when developing it I created a void Dash() function. When I activated it my velocity would always constantly be the dash velocity. I then tried a different approach by creating a IEnumerator method that controls that Dashing ability. This fucntion would then be called in a new coroutine in the PlayerMovement script
-Level Design Layouts-

Design Layout A

Design Layout B
The Swap() method I developed had some challenges to it that I was able to over come mainly having it so that both players were not visible/active at the same time. This issue caused a lot of gameplay errors where both players will be in the same layout or a player would stop moving all together. Also there was no time in between changing layouts so constantly swapping would break the game. I then decide to redo it from scratch and my approach was to basically have it so that when you switch player 1 becomes deactivated along with the level layout associated with it (Level Layout A). When player 2 becomes active the position is set to the current position of player 1, and the level associate with player 2 becomes visible/active (Level Layout B).
2-Dimensions was the theme of the game jam. I had to find away to portray that theme into my gameplay and really have it up close in the characters face. The best way I could think of was design 2 different level layouts that the player would have to switch between.
​
- Level Layout A
- Level Layout B
​
When designing the level layouts I tried to give some form of help for the players in a way that helps to lead them to where they need to go next. Layout A I added a key and a box crate to help lead/encourage the player to progress in that area. When they obtain the key Level Layout B now has the Box crate that was block off unlocked encouraging the player to switch to that level layout by jumping and switching dimensions to obtain the next key.