1. Iron Armada
  2. News
  3. Oxygen & Airlocks (You Voted!)

Oxygen & Airlocks (You Voted!)



Oxygen and airlocks


Last development blog you all voted on which of the three upcoming features we should implement first! Oxygen & airlocks won by a huge margin! Now today, we're here to talk about how we're going to implement it!

How will pressure will be implemented?


Many people forget what Iron Armada looked like two years ago! For those of you who forgot... here is a little reminder (this is actually relevant =P)



When we first started working on the Iron Armada engine framework... many things you take for granted now... weren't in the game at all (remember that Iron Armada isn't built on an engine like Unity! It is built from its entirely own custom codebase in Java... kindof like Minecraft)

Every little detail of the game (bullets, destruction, player death, animations, moving, building, walking, and more!) had to be built from scratch.

So... for example, when you used to break a ship in half (in older Iron Armada builds) it wouldn't break in half. This was because the computer literally didn't understand the concept of things "breaking apart" and we had to develop that concept from the ground up.



When you think about it... even the seemingly simple concept of "breaking" is a little more complex when teaching it to a computer. So to keep processor usage low, but still simulate convincing "breaks" for ships in Iron Armada... we devised the following mechanism:

Every time a ship tile is changed, or removed... the computer does a manual "flood fill" of the ship, originating from the point of the change. If the computer can still fill every tile of the ship during the flood fill, then it does nothing. However... if not, then the computer marks the isolated tiles and deletes them. Then at the exact same second, the computer re-spawns the isolated tiles as a completely new ship... in the exact same position they were when they were deleted.

This results in two separate physical objects... creating the effective illusion of a ship "break." That is currently how the destruction system still works today!

Why is this important?


Because that flood fill system (the one we developed years ago) is exactly the same mechanic we're going to use to simulate atmospheric pressure!

Every tile in Iron Armada currently has a parameter for "I have oxygen" or "I am a vacuum." For instance... this is why you recharge oxygen on a ship corridor tile, but lose oxygen while standing on an asteroid (try it yourself!) However this is also why (in the current version of Iron Armada) you can recharge oxygen on a floor tile... that is floating in the vacuum of space.

However now... In order to detect that oxygen is in a sealed environment... the "ship split" mechanic will be copied and re-purposed. Now, instead of finding "breaks" in a ship... the system will look for "holes" in a room.

Every time a ship tile is changed or removed, the same flood fill mechanic will originate from the offending tile. From here... the system will flood fill the ship, and decide if any "floor" tile (or otherwise non-pressurized tile) is touching a "vacuum" (or empty) tile. If it is... then that entire tileset is then set to vacuum.

Simple... clean... and hopefully also very network efficient ship pressurization! Which is what we've been hoping for all along =)

When is this patch coming out!?


Hopefully soon! We're still working on a few bugs and critical fixes in the mean time, but we'll be releasing a feature patch (with oxygen) hopefully shortly after!

If you all want to follow up with development, remember YOU CAN WATCH US DEVELOPING THE GAME IN REAL TIME ON GITLAB!

https://gitlab.bluedrake42.com/drakelinglabs/ironarmada

You can also follow our development blogs and posts on our Discord, and our forums! We really value your input, feedback, and most importantly bug reports! So if you want to help us get these great features in faster... please stick around there!

Outside of that... thank you everyone who has purchased the game, and supported development so far. We know we're still in an early state of development, but your support has already made a huge difference for us... and we are humbled by it.

We hope you all will visit us on our Discord, and stick around for our community events! We're excited to work on our next feature after oxygen... which will include a singleplayer update! This way... many of you nightowls can continue playing the game, after the rest of the community is fast asleep =)

Until then... I hope to see you on the space battlefield soon!

Links for our community portals:
https://forum.bluedrake42.com
https://discord.gg/ironarmada

Cheers!

~ Bluedrake42
Drakeling Labs