Category Archives: Barotrauma

Barotrauma has been Greenlit!


We did it! Less than two weeks on Steam Greenlight and Barotrauma has been greenlit!

The amount of positive feedback (and votes of course) we’ve gotten during these weeks has been amazing, thank you so much for all the support! Here’s a look at the final stats:




Steam Greenlight and a brief status update

Last week, Valve brought us some big news regarding Steam Greenlight: they’re planning on getting rid of Greenlight “in the next few months” to make way for a new system called Steam Direct. Personally I think Direct seems like a reasonable move to fight the waves of shovelware that have been pouring through Greenlight for the past few years, but it will also most likely have a major impact on small indie devs like me. Developers will be required to pay a fixed fee for each game they submit through Steam Direct, and while the fee apparently hasn’t been set in stone yet, there have been discussions of a price from $100 to as high as $5000. If they end up going with a fee at the higher end of the spectrum, it will be a major setback to Barotrauma and my meager student budget. So, I thought it might be a good idea to try and get the game greenlit while it’s still possible!

Tl;dr: Barotrauma is now on Steam Greenlight!

In other news, despite the recent lack of updates we’ve made quite a bit of progress with Barotrauma. We’ve mostly been focusing on rewriting the networking code from pretty much scratch in order to get the multiplayer smoother and less vulnerable to hackers and fix to the desync issues the game’s been experiencing since the very first versions. The netcode is starting to be in a pretty good shape: less desync, less teleporting characters, proper authoritative servers and all in all everything is much more robust. We’ve still got a few features to reimplement, some issues to iron out and a lot of testing ahead of us, but we’re not that far away from being able to release at least a test version of some sort.

A beginner’s guide to injecting mind-controlling parasites into people

Step one:

Make sure you’ve been infected with the husk parasite. The most common way to get infected is an encounter with an active husk, but some well-equipped laboratories and research facilities may also house dormant husk eggs.


Step two:

Once infected, you may have trouble swallowing and your throat may feel sore. It is generally not a good idea to tell your fellow crew members about these symptoms, as it would most likely lead to a medical inspection and a dose of antiparasitic drugs. As the parasite grows, you may also find it hard or impossible to speak. If so, try to stay away from other people to prevent arousing suspicion.

Step three:

When the parasite reaches maturity, it extends its ovipositor out of your throat. The feeling may be somewhat unpleasant. At this stage it is highly recommended to wear a diving mask or other headgear to hide the ovipositor from the rest of the crew.

The parasite will slowly start taking over your entire nervous system, but this process can be delayed by working together with the parasite by spreading eggs into new hosts. Just find a suitable target and gently insert the ovipositor into one of their body cavities.

Multiple subs?

The idea of a submarine-vs-submarine game mode has been popping up quite frequently and now we’re one step closer to having one:


There were (and still are) tons of systems in the game that work under the assumption that there’s just one submarine, so even loading another sub into the level took a lot of rewriting. There’s still a long way to go until a fully functional submarine-vs-submarine mode, but adding some sort of small escape/attack vessels might not be that far away.

One idea I’ve been thinking of is adding a small “shuttle” that could periodically transport new or respawned players to the sub mid-round. It wouldn’t only reduce the time spent waiting for a round to end, but it could also create some interesting situations; handful of survivors trapped in a sunken sub waiting for the reinforcements to arrive, a swarm of sea creatures attacking the shuttle, a traitor taking control of the railgun while the shuttle is trying to dock…





Lighting improvements

Some small improvements to lighting in Barotrauma: added a bit of blur on the lightmap and changed the rendering order so that the walls aren’t full-bright anymore. I was really surprised to see how much better it looks with just those small changes:

barol1 barol2 barol3

The second picture also shows a small portion of another new addition: there are now procedurally generated alien ruins in the levels, with traps, new monsters and new alien items inside them. Artifact quests will definitely be more interesting now!

Barotrauma v0.3

The new version is up now! The changes to the way the game handles moving the submarine “under the hood” were definitely the the biggest and most time-consuming change in this update, and unfortunately it isn’t something that’s visible for the players (at least until underwater ruins and shipwrecks are added). There’s still quite a lot of other additions and a huge amount of bugfixes in the update, as seen in the changelog.

Here’s some gameplay footage that shows some of the new stuff:

Some new pics

Since the last update I’ve been mostly working on changing how the game handles moving the submarine which is why there hasn’t been much to show. In the current version the levels actually move around the submarine while the sub itself is stationary, which makes it really difficult to have multiple submarines in the same level, or any structures outside the sub for that matter. Even though a game mode with multiple subs isn’t on my to-do list at the moment (maybe at some point in the future though), some sort of explorable underwater structures (sunken subs, alien ruins…?) are a must, so I needed another way of moving the submarine.

How it works now is that neither the submarine or the level actually move: instead there’s an invisible submarine-shaped physics object moving around the level and the insides of the ship are just rendered wherever that object is.

Here are a couple of screenshots of some other additions:


Some UI improvements


Items and devices are grouped by category and the fabricators actually work now


Nicer looking levels and a new enemy


The crew members now have an AI and can take orders from the player

Test build with an attempt to fix the lag

It looks like the lag was caused by my careless use of a feature in the Lidgren network library which allows sending messages through UDP reliably (= so that they’re resent if the recipient doesn’t acknowledge receiving them). In some cases that lead to severe congestion problems, causing enormous lag not just in the chat but all the reliable messages that the game sends. Rewiring devices, picking up or dropping items and attaching/detaching items were all synced using reliable messages, and there were definitely problems with all of those even though the chat lag was the most obvious effect.

I think I’ve managed to fix the problem though: the reliable messages are now sent using a homebrew packet loss detection system which allows me to slow down or cancel the resending process entirely if it seems like the line is choking (once again thanks to Glenn Fiedler his excellent articles which have helped me quite a few times during the development of Barotrauma).

However, I haven’t yet been able to test and verify that the fix is 100% working, because I still haven’t managed to reproduce the issue when playing the game on my computer. I did host a few “real” online rounds with 4-5 players and everything was working great, but it’s still possible that the problem re-emerges when there are more players. So, I decided to upload the current build so that I can use you guys as free testers in case you want to try a version that probably works much better than v0.2.2 while I try to get rid of any bugs in the new netcode and verify that it’s actually working.
tl;dr: Chat lag and a bunch of other networking issues probably fixed, try at your own risk by downloading the latest build here:


EDIT: The fix is now implemented in the latest version, v0.2.3.1

There’s also a bunch of other small additions and fixes in the build (such as being able to ban players and hit people in the face with a wrench).