Saving Time

Programmer

Worked on a team of five with other artists, writers, and programmers to create a simple story-based RPG. Developed in Unity. I primarily focused on implementing the quest and inventory system, the minigames, and integrating the art and dialogue made by the rest of the team into the game. Originally started as part of the Global Game Jam in 2022, but later polished and continued as coursework.

Sample Work - Can Minigame

To add to the moment-to-moment gameplay, we decided to implement some minigames for a couple of the quests. One of the minigames I implemented had the player organizing items at the grocery store to help out a character who had an item that they needed. For the minigame, we decided to have the player stack a bunch of cans in a pyramid formation.

To add some challenge to the minigame, I decided to implement the cans as 2D physics objects. However, this meant that the cans would start falling whenever the player picked them up, leading to a frustrating experience where the player had to fight against gravity. To fix this issue, I set the can’s Rigidbody to static when picked up with the mouse, and set it back to dynamic once the mouse was released. This made it so the cans would still track collisions when held, but that the can’s position would be solely controlled by the player and not by gravity while being dragged. I also set up the cans to rotate if the player held the right click button, as we found in testing that the cans would topple over and get stuck in angled orientations if there was no way to rotate them.

Next, I implemented a separate script to manage the minigame state and completion. Since we wanted to see if the cans were stacked in a pyramid shape, we checked to see if there were a certain number of cans at each height level, and added them to lists corresponding to what layer of the pyramid they were in. I then checked to see if the cans were in the optimal formation by counting the number of cans in each layer, and marked the minigame and quest as completed if the cans were in the right layers for at least one second after the mouse was released. The reason for this one-second delay was that we didn’t want players to pass if they had constructed an unstable structure of cans that was in the process of toppling over. By waiting some time before checking, we were able to rule out unstable can formations.