An Ode to Fastmos

Fastmos is Dead

Some Background Info

Let me start by explaining what exactly fastmos is, since a lot of people are incorrect about it. What players call "fastmos" is actually monstermos, implemented in an external DLL called extools. "Fastmos" was coined at some point by someone because in monstermos gasses move, well, fast... As evidenced by the explosive decompression we all know and love. It's also faster in that the DLL is more performant than BYOND, so it runs faster. This leads to some confusion because fastmos is faster both design-wise and performance-wise, so for the rest of this forum post I'm going just refer to it by its actual name, monstermos.

Why We're Removing It

As I mentioned before, monstermos is part of an external DLL called extools. The devs behind extools reverse-engineered a significant amount of BYOND, to the extent that (among many other useful features) you could have procs defined in DM running code in C++ instead, with none of the overhead of BYOND's extremely inefficient DLL call()() proc (yes, that's the actual syntax). This made it possible to offload CPU-intensive code from BYOND and run it in the C++ DLL instead. In comes monstermos, an atmos implementation written in C++ as part of extools to leverage this increased performance.

However, there's a few problems with this:
  • Every new BYOND version had a good chance of breaking extools entirely.
  • Atmos is already complicated to begin with, now it was entirely in C++ making it even more complicated.
  • Neither the extools devs nor Monster (the creator of monstermos) wanted to maintain their respective parts of it after a while.
  • Nobody else with the know-how wanted to maintain it either.
  • Let's just say that monstermos isn't particularly well-written, and it was very unstable.

Extools is Dead, Long Live Auxtools

To solve these and other fundamental problems with extools, a complete rewrite was done under the name auxtools, in Rust this time because Rust is the new programming fad. To start with, auxtools requires as little BYOND reverse-engineering as possible. This means new updates are less likely to break it entirely and when it does break, less effort is required to fix it. There's some other improvements too but you're probably already tired of reading the (oversimplified) technical talk.

Anyways, with auxtools eventually came a new atmos implementation call auxmos, created by Putnam. Auxmos has a lot of pros and cons compared to monstermos:
  • It's significantly more performant. I haven't been able to make it actually lag at all no matter how much I stress the server. At its worst it's still faster than monstermos at idle.
  • It's more stable and shouldn't cause any server crashes.
  • It's not designed after monstermos, it's designed after LINDA, which is TG's atmos. Which means there is no explosive decompression or near-instantaneous gas movements, sadly.
  • It's much easier to tweak because some of it is accessible via DM, rather than being entirely in Rust. You can also add new gasses without touching any Rust code.

That being said, the majority of us prefer monstermos and if the auxtools implementation is ever finished we'll be going back to it.

Also, since atmos is now significantly less deadly we're going back to the old full-tile firelocks that require a crowbar to open. On the plus side, malf AIs can crush you to death with them.

tl;dr

We're switching the DLLs that we use for atmos, because the monstermos (aka fastmos) one is unmaintained and unstable and the new one is more performant, even if it's based on TG's atmos and therefore lame. We'll go back to monstermos/fastmos if the opportunity presents itself, since we prefer it.
16 Likes

What are we gonna do with all that excess computing power now? :weary:

1 Like

Process lighting, machines, mobs, and the garbage collector.

2 Likes

Rest in pastrami explosive decompression :salute:

image


ok ike1984

12 Likes

There’s technical reasons that may make this decision for us

Auxtools monstermos/fastmos was never finished. So the choice was made for us.

then finish it lol??//???/??? smh…

1 Like

Lots of odes going on for Beestation nowadays. When can we get a good paean or maybe a limerick?

More importantly, how different are the mechanics? Especially in when it comes to fusion, toxins and firefighting.

Well the only way to find out is to try it out i guess, i really hope some bored guy remake/update monstermos

Fastmos is dead. Fastmos remains dead, and we have killed him

How shall we comfort ourselves, the murderers of all murderers?

Explosive decompression will be missed, but less spesslag is wonderous.

I definately think this is a good thing.

While I don’t know too much about the technical side, hopefully someone can create an atmos similar to monstermos in auxtools instead.

Bringing attention to this.

4 Likes

Easier said than simply done. Go put some money down and you might motivate monster to finish or work on it more.

3 Likes

Crushed to see it go, I enjoyed the unforgiving space wind except when it would bug out and and create a tornado. Thanks for the post.

1 Like

Going to miss getting launched into space thanks to the explosive decompression but i’m glad the performance will be better and that in the future there’s still a chance to go back to monstermos if it mets the requirements

rip raven crusader space wind death 2020, that was my favorite memory

3 Likes

on one hand monstermos was fun…

on the other hand.
SLOW ASS BALLS AACS ARE DEAD LETS FUCKING GOOOO

also this should allow 50K science bombs to be actually possible in a round?

Goodbye Fastmos, you will be missed dearly by everyone (except franc apparently)

Gonna miss that sweet space wind

On the other hand firelocks are literally a free hardstun with a ton of brute damage added on to it, crush antag targets with firelocks today before it gets patched

1 Like

FUCK YEAH DIDNT REALIZE AACS ARE DEAD LETS FUCKING GOOOOO!

Body clear

1 Like

AACs are staying around.