This project was an assigment for the 3D Game Programming class at San Diego State University. This was a solo project designed as a top down puzzle game.
Unity, C#, piskelapp.com
I love puzzle games and I decided that one of the first games I'd make would be a puzzle game. While this game was initially created in 2018, I revisited it in 2022 and made improvements to make it more playable.
The objective is to get the treasure chest to the ship by pushing objects out of the way and pushing the treasure to the ship.
The player controls the pirate, who will be pushing the objects. Horizontal crates can only be pushed left or right. Vertical crates can only be pushed up or down. Boulders are immovable. Push the treasure chest to the pirate ship.
If a player gets stuck, they have the option to restart the level at any time.
Push the crates.
Push the treasure.
Win when the treasure is on the ship.
With the help of Unity tutorials, I was able to create this game on Unity using C#. I created all of the sprites (the pirate lady, the crates, the boulders, the treasure chest, and the ship) using the Piskel web app.
There are currently five levels, and each level is a different puzzle I created by hand.
When I turned in the project, there were issues with the player movement and the physics of the crates. The crates were sliding like they were almost weightless. The player movement was also unnatural.
When I revisited the project in 2022, I was able to restrict player movement to non-diagonal movement, and fixed the speed. I was also able to adjust the physics components to make the crates feel like they had weight.
I added a button to toggle the music and sounds on or off. Saving the audio option in player preferences allowed the audio to either stay off or on when restarting the game.
These were small tweaks that greatly improve the gameplay.
On top adding levels that get more and more difficult, I would like to add a save and load functionality. I would investigate changing the movement to a grid based movement in order to track the number of moves needed to win.