Shortly after the Fourth of July, 2023, I joined a new game development team taking form in InOrbit Systems. An opportunity based all around getting experience and people coming together to see a concept take form from the ground up- and an opportunity I am grateful for.

You play as a cat making your way from level to level in this demo, evading the evil scientists for long enough to make it to the next area. I was a part of the programming team where we'd have weekly meetings over Discord to give updates on our assigned tasks and progress. When others started to go back to school, I got the chance to help see the game through to this release and help with the finishing touches since I had graduated from college the May before.

Some of the tasks I took on consisted of the dodge mechanic, pushable boxes, the ability to reset the character should those boxes be stuck in a position that would soft lock the character, and the game instance to help keep track of lives and collectibles between levels. Not only did I have to work with the character and level blueprints, but there were some edits to animations and widget blueprints for me to handle as well to ensure things were working as intended.

For instance, we wanted to make sure that the player wouldn't just be able to reset to their last checkpoint whenever it was purely convenient for them. There weren't many places in the demo for a soft lock to be possible- just when it came to a pushable crate- and just in corners where it couldn't be pushed out from once set there.

So, I created an actor that consistent of a collision box that would detect when a pushable crate began and ended its overlap with the collision box. If after a few seconds the crate was still inside (checking a Boolean value), then the prompt to reset would appear above the player. If at any point, whether during or after those seconds pass, the crate manages to be removed from the collision box (updating the aforementioned Boolean value), the prompt will either go away or not appear at all. And the player will not be able to reset at that point.

As for the lives and the collectibles from level to level, they were last-minute additions to the demo. I volunteered to do it even though it wasn't deemed necessary because I had looked into how to do it for a school project during my final semester. Put simply, you end up making your own game instance, placing it into the settings of your game, and initializing the variables you'll keep track of in the game instance.

What I did in this particular game is set the variables to their default value in the game instance, meaning 9 for lives and 0 for collectibles. At the start of each level, I would get the game instance, cast it to the one I had made, so that I could get the values of the variables stored, and set the variables in the PLAYER'S blueprint to those values. As the level is progressed through, any decrease in lives or increase in collectibles would be done in the player blueprint. Once the player reaches the end of a level, I would update the values within the game instance to be the values of the ones in the player blueprint. Then, when the next level began, the process would start again.

Below is a part of the demo to help with visualizing what was put to words!