20 Days at Sea – a Ludum Dare 31 postmortem

This was our 5th Ludum Dare and 4th successful one (after we gave up on the second day last time). The theme “Entire game on one screen” felt OK. It allowed me to explore a game idea I’ve been pondering for a few weeks now; but haven’t done anything about yet. A game about survival after being stranded at sea alone, heavily influenced by This War of Mine and Life of Pi (both of which I’ve experienced not so long ago).

Play the Ludum Dare entry!

This time around we didn’t do any preparations before the LD officially started.

• DAY 1

After some thought about what else we could make, and disliking everything, we settled quickly on the survival at sea idea. I threw together a quick mockup:

20 days at sea first mockup

Proposed game mechanics (aside from walking/diving) were: inventory, looting, crafting, fishing & harpoon bird/fish hunting, and a somewhat complex status system for the player (including: hunger, thirst, stamina, sickness and temperature).
The harpoon idea was quickly dropped in favor of a crossbow, which seemed easier to implement than fiddling with rope mechanics; also it would be used solely for birds. The first two days in the game (before the storm hits) were going to be all about hunting, to get the player accustomed to the controls and create a mellow but fun atmosphere.

20 days at sea full mockup

Development went really well this first day, we were both full of energy and very enthusiastic about it all. We had most of the game planned out and it seemed doable. This was also a time for us to try out the new Unity GUI system (which we are very pleased with, it’s so much faster to create cool things with than before), and the first thing we tried it on was the clock for the game. Piece of cake, finished the GUI part in some 30 minutes.

This was a huge leap from the insane amount of time we spent on hacking together a (rather simple) functional GUI for Bunny to the Moon.
The entire day/night system took around 2:30 hours.

The time progression system allowed us to tag layers which are shown at various times (day, stormy day, night and stormy night), and specify when days, nights and storms begin and how long they last.

Energy was through the roof and we worked calmly for 11 hours straight. We still had no gameplay implemented at the end of the day, but we had a functional time progression system; most of the scene set-up (with a mess of layers sorting in unity); and the ending – which totally breaks the game’s mood, but it made us laugh so hard we couldn’t not implement it.


• DAY 2

As the second day progressed, panic (and annoyance when things didn’t want to work) started to creep in. We spent cca 17 hours working on the game, with only short food/bathroom breaks in between. Very tiring to say the least.

We had only walking and swimming/diving implemented of the core gameplay during the second day; and have just started implementing the inventory system. A lot of time was spent on animations and path-finding, and we ran into a few troubles there. The animations themselves were fairly easy to create using a free Unity Sprites and Bones plugin (which is by the way, totally awesome for 2D skeletal animation).

20 days at sea, boat entry and exit points in unity 3D

The boat had 2 exit and 2 entry points for Margaret to use at heir leisure. After we taught her how to walk and swim, she had to learn to exit and enter the boat at the points closest to her target. Each point would trigger an animation that ended on the position of the opposite point. This seemed to work well untill we encountered difficulties with Margaret snapping around the screen and misaligning herself. Though we ironed it out somewhat, the system wasn’t the happiest solution… but it worked.

At first we planned on having several rafts after the storm and the entry/exit system needed to be reusable for each of these; but this didn’t allow us much variety in Margaret’s animation and we didn’t want to waste time on different animations for entering and exiting the sea. Eventually we settled on just one raft, visually constructed similarly to the initial boat.


GIT Version control saved the day at one point where I almost lost a few hours of work on the bones animations, because we miscommunicated and both edited the game.scene.

GUI was mostly completed and the idea was for Margaret (our main character) to have plenty dialogue options, both guiding the player on what to do next and pushing the story a bit forward.


Progress was good but it felt slow. We were realizing we bit off more than we could chew (again), and there was much more to be done yet.


• DAY 3

We spent the entire day (again some 16 hours) working on the looting and crafting systems. Little by little we simplified the player status system, removing temperature completely and removing the stamina bar. We couldn’t find the time to implement stamina or sickness as intended. Sickness was supposed to be highly regulated by temperature, and you were supposed to lower or heighten temperature by exposure to sun, shade or water. Eating human flesh or seaweeds was also supposed to procure a sickness chance; while hunger, thirst and lack of stamina were supposed to increase the chance of sickness worsening.

Stamina was supposed to be regulated by the amount of sleep, and also influenced in varying degrees by hunger, thirst and sickness.


We ended up implementing only thirst and hunger properly. The only way to get sick (and worsen the condition) ended up by eating human flesh, and the stamina system was just for show. It’s completely unnecessary to rest, unless you really want to remove that red “tired” indicator from the screen.

Eventually we heavily simplified the fishing action, turning it into a passive upgrade for the raft which gives some fish food every 4 days. Weirdly enough there’s not a single fish swimming in the sea in the entire game.

We also removed the crossbow completely. It was already midnight (just 3 more hours to jam deadline) and we were too tired and didn’t feel like we could create a valid system in such a short time. So we decided to play test the game a couple of times, fix what bugs we could find and submit it.

Another thing that had to go was balancing the progression of time with Margaret’s environment interactions. Each action was supposed to take up some time, but instead everything is happening instantly in the game. The time speed control buttons were supposed to serve the purpose of speeding up these boring parts, and that mechanic is only really evident while sleeping.

The end result is decent but it has bugs plaguing it. We decided not to work on it any more and just let it sit as is through the voting period.

The following few days were met with excessive sleep and well deserved laziness.


• Conclusion

Overall we’re pretty happy with what we created, though it’s far from a fun experience we had in mind. It will serve us enough as a quick and dirty prototype before we revisit the idea again and build a more serious game around it.

What went Right:
• We finished on time, and it was a really complex project for us.
• We learned how to use the new, awesome Unity GUI system.
• I found the art style quickly and managed to pull off something decent with it.
• Managed to craft some decent mood with the art and choice of music.
• The game is fairly interesting for a single playthrough, which is great as we were fearing a totally boring experience.
• The ending still cracks us up… a bit

What went Wrong:
• We had to cut out a lot of interesting mechanics (no crossbow, sob)
• The gameplay is quite grindy, and most of the things are completely unnecessary.
• The time speed control didn’t serve a purpose apart from sleeping.
• Sleeping didn’t serve a purpose.
• Most of the things that can be crafted serve no purpose.
• Half of Margaret’s dialogues never made it into the game.
• Sharks never made it into the game.
• Didn’t have time to dig around for sound effects and implement them.
• We slept and ate poorly and didn’t take good care of ourselves during the jam.
• Still haven’t learned to Keep It Simple.

Play the Ludum Dare entry!