TL;DR: The next Atom playtest is weeks to months away. It will run on Ember, a completely custom backend built for Atom.
I've spent the last few days ripping out Atom's foundations and rebuilding them stronger.
The short version: Atom doesn't run on Paper anymore. It runs on Ember, a backend we're building specifically for Atom, with no vanilla server code anywhere in it. Not a fork, not a patched-up Paper. Its own engine.
The old stack
Until now, Atom sat on a very large pile of other people's software. Paper at the bottom, a plugin on top of that for custom blocks, mixins to patch the things the plugin API couldn't reach, and our own code wedged into every nook you could think of.
It worked, mostly. But every one of those layers updates on its own schedule, and none of those schedules are ours. When a new Minecraft version drops, we wait for the server, then the forks, then every plugin we depend on. If any one of them stalls, we stall. And when something broke deep in the stack, "wait for upstream" was often the only fix available.
altStack Diagram
Custom content was the worst part. As far as a vanilla-based server is concerned, our blocks don't exist, an Atom workstation is a block wearing a costume. So every mechanic that touched a custom block had to be in on the trick. Every feature we built paid that tax.
So what's Ember?
In Ember there's no such thing as a "custom block", because there's nothing left for it to be custom relative to. Stone and an Atom workstation are defined the same way, stored the same way, looked up through the same code path. Things that used to mean ages fighting vanilla are now just how the engine works.
altDSL Snippet
The trade
Owning the engine means owning performance. Paper is vanilla underneath: one main thread doing almost everything, simulating the whole world together, and no way for us to change that from a plugin reasonably. In Ember we decide what gets simulated, when, and on which threads. If something's slow, we can profile it, rewrite it, or delete it. That was never on the table realistically before; the ceiling was always vanilla's.
The catch is that a foundation like this is slow to build, and it isn't finished. That's the reason the next playtest isn't around the corner. But once it's done, content becomes the easy part. New blocks, furniture and entities without hacks, and a server that runs how we need it to.
When?
I don't have a date yet. When Ember is stable enough for a public test, I'll announce one. Realistically: weeks at minimum, possibly months. I'll post progress updates along the way so it doesn't go quiet in the meantime.
Thanks for sticking around. The next time you play Atom, it'll be running on Ember.
