

Magna
Sed nisl arcu euismod sit amet nisi lorem etiam dolor veroeros et feugiat.
A roguelite Diver exploration game - Pixel Game Jam 2024
Project Type:
Game
Platform:
PC/WebGL
Team Size:
Solo
Role:
Solo Developer
Engine/Software:
Unity
Project URL:
Scuba Looter is an endless exploration game, where the player controls a scuba diver going deeper and deeper on the sea floor to collect precious pearls. Equipped with their trusty bubble-gun, they must manage their oxygen reserves, carefully navigate between corals enemies, and pick up as many pearls as they can to improve their gear once they make it back to the surface.
Following the simple theme "Aqua" for the Pixel Game Jam 2024, I wanted to challenge myself a little more for this event with procedural generation. Choosing to interpret the theme with an Underwater aspect, I settled on this scuba diving concept with an organic-looking procedural dungeon the player would be dropped in. Each hit taken reduces the player's oxygen reserve and therefore reduces the time they have left before being dragged back to the surface.
Player: can walk around, sprint, and shoot a bubble-gun in the direction of the mouse;
Oxygen: serving as both the player's health, it depletes over time, limiting the possible length of a run;
Stamina: shared between running and shooting, the player must manage thier stamina correctly to not become stuck in a hard position;
Collectables: either pearls or oxygen bubbles. Pearls will be kept on death, and bubbles replenish a little oxygen;
Enemies and obstacles: randomly generated in each room, they can drop collectables and might damage or slow the player;
Procedural Dungeon: each level is entirely generated procedurally, from the room layout to the placement of walls and decoration;
Permanent Upgrades: after each run, the player brings back the pealrs they collected and can purchase upgrades to boost their stats for the next run
Captures from the game
Hitpoints: 3
Movements: Walks sideways until it hits a wall, and then walks the opposite way
Attack: Shoots bubbles forward and back at set time intervals
Hitpoints: 3
Movements: Roams around a certain point and stops when the player is in range
Attack: When the player is in range, turns towards them and shoots
Hitpoints: 4
Movements: None
Attack: Invulnerable when the player is too far, shoots in all cardinal direction when they are close enough
At the core of Scuba Looter's gameplay, the dungeon is entirely generated and populated procedurally. Having never developed any procedural generation into any game before, this was a very big undertaking for me that taught me a lot.
The dungeons get generated in a simple sequence:
Partition the available area into rooms fitting minimum and maximum sizes;
Connect them with corridors to make a main path and branches;
Edit the edges to feel organic rather than straight;
Generated organic rooms
Populate the rooms with enemies, decors, and obstacles;
Color the tiles according to the depth and add the exit hole.
Rooms after getting populated
This process allows for a unique look to every new generation and very little repetition, which is good for replayability. However, the current state of this generator allowed for some rare cases of enemies being stuck or out of reach, and did not allow for pre-made special rooms to be implemented, for example for bosses, merchants, or chest rooms. Furthermore, the connexion between rooms was simple, and unreliable. It was improved upon in newer versions of the generator, available in the full article on Procedural Dungeons.
To fit the rules of a roguelite, as well as to give purpose to the player's repeated expeditions, the game is equipped with a persistant upgrades shop. Through it, the player may put to use the pearl they collect down in the depths to upgrade their stats.
UI of the Upgrades Shop
Each upgrade has a cost, increasing with every purchase of this instance of upgrade, and purchasing it will be saved for the next time the game is launched.
Here are the current available upgrades and their effect :
Firing Delay: Reduces the minimum delay between each bullet;
Max Stamina: Increases the maximum amount of stamina available;
Start Oxygen: The player will have a larger amount of oxygen when beginning;
Bullet Damage: Each bullet does more damage to enemies on hit;
Attack Stamina Cost: Each bullet costs less stamina to fire;
Stamina Replenish Rate: Stamina restores faster overtime;
Pearl per Depth: The amount of bonus pearl once clearing a level increases;
Movement Speed: The player moves faster;
A key element of this project has been the addition of polish effects to increase the player's immersion, and make the game in its entirety feel more alive. These additions, while mainly visual, make sure that the game feels much more polished and completed.
Menu tilting effect (sped up)
The first effect the player encounters is in the main menu, as shown above. As the player is a diver going back and forth in their expeditions, it makes sense that their base of operations would be their workshop aboard a ship. Hence, the menu slowly rocks from left to right to mimic the rocking of a boat, and the ui elements, copying the elements of a workshop with tools, maps, and papers, tilt accordingly as if still subjected to gravity. The effect is sold by keeping the elements upright while the decor around them rotates, which similarily works as well to make the water in the glasses shift as well.
Bubble effects in game
As the main game happens underwater, I decided to ise bubbles as the main particles to attract the eye of the player. Acting as both highlights and immersion, the bubbles appear as trails for projectiles, in bursts when the charater "breathes", or when an object gets destroyed or opened (such as conches, corals, or the end of the level).
Color of the Dungeon environment at different depths
Finally, the deeper the player goes the darker the environment gets. Reflecting the way less and less light reaches the bottom of the sea floor when its deep, this gives both visual cues to the player's depth as well as visual variety. Furthermore, with early tests showing that deep levels became hard to navigate with the added pressure of low oxygen. By darkening the color of the walls and ground, the other elements like enemies and obstacles (which do not change color) become more clearly visible and easier to spot.