Tag Archives: barotrauma

Barotrauma Source Code

Today I have some important news for the players and modders of Barotrauma. The full source code of the game is now publicly available on GitHub!

This doesn’t mean that Barotrauma is becoming an open source game in the “free and open-source software” sense. The intention is to give modders more freedom to modify and expand the game – the current xml configuration files are simply too limited for anything but the simplest of modifications. It doesn’t mean that we’re giving up working on the game either; now with the netcode update (mostly) out of the way, I’m as eager as ever to start working on new content again!

I know this is a risky move and something not many games have done, but I’m confident that it will open up whole new possibilities for the future of Barotrauma. In my opinion one of the things that made SCP – Containment Breach as successful as it is, was the openness of the development and how easy it was for the community to contribute, and I believe that going in a similar direction could be beneficial to Barotrauma as well. As with SCP-CB, people are of course welcome to contribute to the main game in addition to making mods. And I’d like to stress that I’m not expecting for the community to start doing our work for us for free. If someone ends up making substantial contributions to the development, I’m completely open to discussing some type of compensation.

So, if you’re a modder looking for more freedom than the configuration files offer or just want to take a look under the hood and see what makes Barotrauma tick, head to the following link:

Barotrauma @ Github.com

Really looking forward to seeing where this goes and what kind of stuff you’ll come up with. :)


Netcode update

As many of you may know, me and juanjp600 have been working on rewriting Barotrauma’s networking code for some time now (oh god, I just checked and it’s been 9 months, why does time have to go so fast). The old networking logic was so full of issues (trivial to hack, constant desync issues, excessive packet rate) that we had to basically redesign everything from scratch, but based on the testing sessions I’ve been hosting recently, it really seems to have paid off. Now we’ve finally got proper authoritative servers and syncing logic that actually works(!).

The rewritten netcode is by far the most important change in the latest update, but it also includes some other new stuff, including reworked UI graphics, a sonar overhaul and bunch of bugfixes. See the full changelog here.

A few words about the sonar overhaul: now there’s the option to select between passive and active modes. The passive sonar doesn’t send out pings, but instead listens to sources of sound around the sub and the sounds reflected from nearby structures. This makes it possible to get a rough idea of the surroundings without alerting monsters (or enemy subs) with the ping. The sonar displays were also given a little facelift:


On another note, I haven’t forgotten the plans regarding opening the source code to modders – more about that later this week. 😉

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.

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

Barotrauma chat lag and other issues

Apparently the problem with the chat getting unbearably laggy after a few rounds is still there, even though I thought I managed to fix it. After the optimizations done to the networking code I haven’t been able to reproduce it when debugging the game on my machine (even with 10 clients and very high simulated lag and package loss), but it’s definitely still there even though the game may run smoothly for a few more rounds than before…

It seems that it isn’t just a problem with the chat but all the messages that are sent using a reliable delivery method (such as picking up items and damage done to the walls), the chat lag is just the most noticeable effect. I’ll be doing my best to fix it as soon as possible, but in the mean time I guess the best way to work around the bug is to restart the server whenever the lag appears.

The problem with the autoupdater should be fixed now btw, turns out it was a problem in the update servers end and not the launcher itself. Although, I did add proper exception handling to the place where the crashes happened so if there are any similar issues in the future, the launcher will show an error message instead of just crashing.

Subsu… Barotrauma v0.2

Unsurprisingly my “one or two week” guesstimation of the release date wasn’t accurate, but here it is now! Also, thanks for all the name suggestions even though I ended up going with Barotrauma.

Here’s the changelog for the new update:

- major optimization and much better lag compensation
- tons of bugfixes that should fix most of the syncing issues
- admins can play on their own server without launching another instance of the game
- setting the job preferences actually does something now
- reconnecting to a server if the connection is temporarily lost works much better now
- proper error messages if UPnP port forwarding fails

- security guard gear: ballistic vest, helmet & stun baton
- wifi components that can be used for transmitting signals between devices
- wall labels with a configurable text
- a bunch of new sprites and sounds
- wearing a diving suit slows the characters down
- supercapacitors
- attempting to fire the railgun when there are no shells loaded doesn't consume power anymore

- improved version of Aegir
- a new submarine, "Vellamo"
- nuclear reactors overheat much more slowly and there are warning signals for overheating and a remote shutdown button in both of the default subs
- ambient sounds change according to the speed of the sub
- fixed parts of the submarine getting stuck in the level on collision
- the autopilot is a much better driver now (although it may still crash at very tight spots)

- aiming underwater is much easier
- improved humanoid animations
- stunned/dead characters can be dragged
- all characters can now use plasma cutters and welders regardless of their skills, but insufficient skill level will make them flicker and work much less efficiently
- same for the harpoon gun, anyone can shoot but lower levels will make the gun less accurate
- rewiring devices may cause electric shocks if the electrical engineering level is too low

- some random "prop fish" swimming in the background
- a new hostile creature

- a tutorial going through all the basic tasks and game mechanics (more in-depth tutorials will be added in future versions, including one for making custom subs)
- an auto-updater in the launcher
- the game generates a detailed report if it crashes
- physics optimization (i.e. using simplified physics & animation for off-screen characters and disabling them entirely if they're far enough)
- lighting optimization (caching the lights/shadows if a light source hasn't moved instead of recalculating them every frame)
- two new background music tracks
- better looking explosions
- better looking water particle effects
- minor UI improvements
- better UI scaling on different resolutions
- health/oxygen bar improvements and status icons for bleeding and water pressure	
- gap-hull connections are visible in the sub editor
- pumps don't have to be manually connected to a hull in the editor anymore, they automatically empty/fill the hull they're inside


Subsurface is progressing nicely and I’ll be releasing a new version in a week or two. However, it probably won’t be called Subsurface anymore. Back in the first posts about the game I mentioned that Subsurface was working title, but it kind of stuck and I started liking it. Now I’ve noticed that the name is a bit problematic: apparently there’s an indie game studio called Subsurface Games and a dive log program called Subsurface, which makes the game somewhat hard to find by googling.

So, I guess a new name would be in order. So far I’ve come up with one potential name, which I think sounds very appropriate for the game:


Barotrauma is physical damage to body tissues caused by a difference in pressure between a gas space inside, or in contact with the body, and the surrounding fluid.

Barotrauma typically occurs when the organism is exposed to a significant change in ambient pressure, such as when a scuba diver, a free-diver or an airplane passenger ascends or descends, or during uncontrolled decompression of a pressure vessel


If any of you want to share your thoughts about the name or have any other name suggestions, I’d love to hear them!

Also, here are some of the things that will be in the next update:

– Major optimization and a ton of bugfixes/improvements in the networking code. And by major I mean MAJOR: most of the time I’ve spent on the game after the last update has gone in testing everything I can think of and making the multiplayer mode smooth and stable. The game now also generates a detailed report whenever it crashes, which will make it much easier to fix the bugs that I’ve missed.

– Several things to prevent people from sinking the sub within minutes of the round starting. There are security officers armed with stun batons now, who may attempt to immobilize and capture saboteurs. Blowing up the reactor is also much harder: it takes almost a minute for it to overheat, and when temperature starts to get critical, a warning light switches on in the command room and a button can be pressed to shut the reactor down remotely.

– A basic tutorial which walks players through the most common tasks on board the sub. In the future there will also be additional tutorials that take a more in-depth look at the various game mechanics (and why not one that explains how to use the submarine editor).

– Server admins can now play themselves without starting another instance of the game.

– A bunch of new items, graphics, sounds and a second submarine in addition to Aegir Mark I.

– An auto-updater, so you won’t need to re-download the entire game whenever there’s an update.

– Linux port of the game is almost finished and will most likely be released alongside the next update. After that, I’ll start looking in to the Mac port.

dgfjdsfgb launcher