Inspiration
When thinking about ideas for our project, we wanted to create a game without an explicit countdown timer. We considered many different implicit timers like a day and night cycle or ice melting, but the idea we settled on was a sinking ship. We thought about what kind of game we could make that involved a sinking ship, and we came up with the idea of making a chaotic action game inspired by Overcooked 2. We wanted the player to always be running around the ship, fixing and completing tasks. We also took inspiration from Return of the Obra Dinn for visuals, and Five Nights at Freddy's 2, Five Nights at Freddy's 3, and Among Us for the design of our tasks.
What it does
Our game takes place on a sinking ship in the middle of an ocean storm. You're the lone survivor of the crew and must try to steer the ship safely to a nearby island to save its cargo. Unfortunately for the player, the water levels of the ship are constantly rising, and the storm is tearing your sails apart, slowing your ship down and allowing more time for water to seep in.
The most important mechanic of our game is the constantly rising water level of the ship. Once the water level reaches a certain point, you instantly lose the game. To prevent the water level from rising, you're given a water bucket that allows the player to scoop out a small amount of water from the ship. We designed it to be a low risk, low commitment but low reward action the player could do to combat the rising water.

The player has to also respond to the holes that appear on the bottom of the ship. They occasionally appear in a random place on the floor, and each hole increases the rate at which the water level rises by a significant amount. If left unchecked, the water level will quickly flood your ship. It's up to the player to travel to these holes and fix them, however, you cannot use your bucket while fixing holes. We think this leads to some strategy and decision-making since if you want to make the most out of your bucket you can use it in between fixing holes.

The second thing the player has to respond to is the deteriorating masts of the ship. The storm is constantly tearing through the ship's sails and without them, your ship will slow to a halt. To fix them, you have to climb a tall ladder to access the repair points. The topmost sail is the most valuable and provides your ship with the most speed, but also takes the longest to reach and repair. While you're climbing the mast it also means you're neglecting the lower deck and the holes that may or may not be appearing. But if you don't go up and fix the sails, your ship will stop moving and you won't make any progress towards safety. We implemented this mechanic to create more chaos and something else for the player to respond to other than the appearance of random holes. We also made the topmost sail to be more valuable to introduce some decision-making and risk/reward to our game. You may not have time for all the sails, but maybe you can still fix the lowest sail and tend to the holes in the deck, or maybe you risk going for that top sail to guarantee that your ship stays healthy for a longer period of time.
"Emergency tasks" were another mechanic we implemented. These tasks would have different effects during your gameplay and add some more random variance to it. We initially had a whole bunch of different ideas for emergency tasks, like a random chance for monsters to board your ship and try to kill you, or your ship hitting a sandbar, slowing your ship's speed and increasing the probability for holes to form on your ship. The only one we had time to implement was the steering wheel to catch fire and completely stop your ship. This forces you to step away from other important objectives and adds some extra challenge to the game. This feature was on our low-priority list to implement but we still thought it was important to add replayability.
The last mechanic we were able to implement was the cargo scoring system. The ship starts with ten crates full of precious cargo. In case of an emergency, you can drop a crate into the ocean to lose some weight and lower the water level of the ship. However, reaching the island with all ten crates gives you the maximum possible score, so you're incentivized to keep as many as you can. We implemented this mechanic to add some skill expression and more decision-making to our game. We wanted people to be able to come up with strategies to reach safety while keeping as many crates as possible.

How we built it

Our game's foundation is centered on mechanics that balance urgency and strategy. Players have to manage tasks like fixing holes and masts, throwing out water with buckets, and even ditching cargo to keep the ship afloat. Time management is critical; as the water rose, the pressure mounted, implicitly signaling the passage of time.
We prioritized gameplay over aesthetics during development. Our initial focus was ensuring the game functioned smoothly, with mechanics that engaged players. We believed in refining gameplay first, knowing we could enhance visuals later.
Our plan revolved around a sinking ship scenario with two decks. Lower deck tasks involved water management, while upper deck tasks focused on ship speed. As we iterated, we introduced an implicit timer—the rising water level—creating tension without a traditional countdown.
The ultimate goal was to reach the island before the ship sank entirely. Along the way, players could earn points by delivering cargo. We added elements like a post-victory cutscene, emergency tasks (like a flaming steering wheel), and weather to increase difficulty and immersion.

Constructing the ship involved a mix of original parts, Roblox components, and the Archimedes plugin. We utilized Roblox's UI system to design the game's interface, providing players with crucial information and controls. Archimedes' rotation rendering features created the curvature of the ship using pure parts, keeping that Roblox feel to our game.
To simulate a sinking ship, we implemented a rising water cube. Rain and clouds added a sense of realism and movement to the environment, enhancing the player's immersion in the high-stakes scenario. We wrote the scripts that controlled the game logic in Lua.
Challenges we ran into
With our team of five, we had to integrate our scripts and it took some planning and debugging to get each part working together. We used team create collaboration and live editing in our scripts.
We ran into some trouble creating and viewing animations in the Roblox Editor. We weren't able to view animations not made by the same person on our separate devices but luckily we figured out a solution and fixed it pretty quickly.
We also ran into an issue where an animation on our bucket was not appearing for any of us. We ended up needing to re-upload the project from a file and copy and paste everything. We're not sure why this ended up fixing our issue but it worked.
Accomplishments that we're proud of
We're proud of our team's ability to work together despite not being all available at the same time. A few of our team members had to leave to do other things, but the remaining team members continued to work and stay productive. We also were able to implement all the features we came up with during our planning process. While we were not able to flesh them out as much as we would have liked, the fact that we were even able to fit it all into our project in the first place is something we're very proud of.
This was a few of our team members' first experience coding within Roblox and our first time doing a game jam so we're very proud of what we were able to accomplish in this small amount of time.
What we learned
This was our team's first game jam together and the first time using Roblox for a few of us. We learned a lot about using Roblox and scripting in Lua and we also were able to learn more about and use our project planning/time management skills. We used concepts like MVPs (minimum viable products), object-oriented programming, and priority queues/the critical path to complete our project on time.
What's Next for Sunken Cost
This is our first project that we've worked on together, but we're all very satisfied with the amount and level of work that we did. A few of us plan on pursuing game development as a career in the future so we may collaborate on future projects as well. We're also all very passionate about our game idea and believe it could be even better with some more features and tweaking. Depending on our schedules, we might continue to work on this project this summer to finish up the features we didn't have time to add!
Built With
- lua
- roblox


Log in or sign up for Devpost to join the conversation.