Devlog #2: Doing everything but items.

< Back April 2026

Hey again, spessfolk! It's been roughly half a month since we put out our first blog, and today I am quite thrilled to show off what we have done since! This time it's thankfully more on the game, although the engine got some love too.

Brand new UI!

We finally migrated over from jgui to our homegrown UI library, Lunar. It brings over many… many improvements over jgui, mainly the fact that it's declarative instead of being imperative, which greatly reduces code bloat. It's also reactive (just a little flex there), which makes state handling way less of a headache than it used to be.

On top of that, Lunar is way more performant than jgui, happily chewing through a ton of UI elements without breaking a sweat, where jgui would previously tank the FPS pretty hard.

In addition it's so much more customizable! Being designed after Godot's UI principles, styling is fully programmatic instead of relying on a massive static spritesheet. That means adding new styles is basically free, and we can get a lot more experimental without fighting the system.

Oh, and while I was at it. The game no longer looks like it crashes while loading. The loading stage was reworked so it doesn't completely freeze the game anymore, along with a cool loading screen, which should stop your OS from politely suggesting you kill the process while the game is just… doing its thing.

Pretty shadows-

The game still had no shadows, and it was bugging me for a while. I tried doing it myself a couple of times but horribly failed each time, mostly because I'm not a graphics programmer—however I know that viz is!

So after nagging her for a while, I managed to get her to take a look at LS13's rendering pipeline. In which she added the nice drop shadows and ambient occlusion that SS13 has. Pretty!

Evil ass image, but hey look pretty UI!
Evil ass image, but hey look pretty UI!

Characters!

Until now LS13 had absolutely no concept of characters, so everyone was running around as the same default lizard. ttmso spent quite some time developing the character system for the game, so now there's proper handling for character data.

No more running around as a default naked lizard! …But as a randomly generated thing each round! There's still no character editor or a way to pick who you want to play as and how they look, sound, and behave, but that's coming… soon-ish enough, hopefully!

More engine improvements.

Whenever something is simply too slow in LS13's Lua implementations, sometimes I bite the bullet and reimplement a module in C++ for RobustLÖVE.

Which was something I needed to do for the game's network serializer, because having a lot of entities on a client's screen would lag the server... simply because the serializer was choking the ever loving hell out of performance. The Lua implementation, even if optimized, just wasn't cutting it for large-scale replication.

So the old serializer had to go, and it was replaced with love.serializer, pretty much a drop-in replacement for building buffers from tables with provided schemas.

But hey! Almost a ~5x improvement in performance! Can't argue with that result, eh? Oh and you can now identify in the game that you're running RL instead of regular LÖVE.. nifty!

Not engine but core networking..

That whole rabbit hole also led to proper network structs being implemented. Initially just because I wanted tiny speech bubble typing indicators above characters… just like /tg/, which in turn required sprites to support dynamic overlays.

So yeah, sprites can now those have dynamic overlays! Started as a small UI detail, ended up being foundational tech for a whole lot of future features. Not complaining.

Major editor improvements!

googer put a lot of love into reworking LS13's editor to be really nice to use. It's now fully running on Lunar and got overhauled in a bunch of places, making it way more pleasant to work with overall.

Oh my, the editor is actually useable!
Oh my, the editor is actually useable!

“When you code it”

Lokachop was the author of the first actual upstream PR to the game, which adds Arachnids. Only being made literally because I didn't want to (and kind of because I don't like spiders..) and told him to do it himself, lol.

Wrapping up the post, I wanna again encourage helping us out with making LS13 a reality. I won't go into the spiel here, mostly cuz I already did it in the first post, but even making people aware of the project and sharing it helps out a ton.

On the side note we also have a Discord server now!! Ooo~ fancy.. Mostly made it as a way so we can be more transparent about LS13's development and also as a way for a more casual way to collaborate on the project. It'd be cool if you joined by the way!! *wink wink..

But nevertheless, I think that's it.. See you all.. Near end of April or beginning of May? Oh we'll see!

~ misname