Overview
Originally created as a week-long project for the Brackey's Game Jam 2023.2. For this jam there was a theme of "Diving Deeper", which led us to create this game. The game features Sally, the salamander, diving deeper and deeper into the unknown depths of the ocean. The gameplay is a standard bullet hell shooter, but instead of going up the player is progressing downwards. The game was developed as a team of 3, where I worked on the design, programming, and animations for the game, and was released on Itch.io at the end of the jam.
Eventually, we decided to continue working on the game to fully flesh out features we had wanted to include during the game jam but ran out of time to do so. We are still in the process of working on this project, but aim to release to steam once the game is fully polished.
Time Spent: 100+ Hours
Skills
Game Design, Programming, Animation, Unity, Aseprite, Project Management
Specs
Engine
Unity
Platform
PC, Steam Deck

Design
Upgrades are a key element of this game. The design has been fleshed out more since the initial release to include new upgrades and abilities. These upgrade appear at the end of each level and have 3 different tiers of power. However, the tradeoff is that enemies are scaled based off of what tier of upgrade the player currently has. This presented an interesting balancing dilemma of making the player feel stronger while balancing the enemies properly so the game does not feel too easy. This is also not explicitly stated by the player, but instead hinted at with the shopkeeper's dialog.
Programming Design
Object Pooling
This game features a lot of objects being created and destroyed by both the players and enemies. In order to combat this performance hit, I employed Object Pooling with the various bullet archetypes to limit the amount of Instantiate and Destroy calls made. This vastly improved the performance on lower end devices and allowed for more intricate designs for enemy attack patterns.
Inheritance
I Used Object-Oriented Design through programming structure in order optimize the architecture of the game. Bullets and enemies have a lot of different types in the games design, and using this design structure of inheritance allows for streamlined creation of new bullets and enemies with different properties.
Singleton
Another optimization of the programming architecture of the game. I used the singleton pattern for many persistent game objects that are needed in multiple scenes in the game. This includes the Game Manager, certain menus, and various other managers needed for the game.