ID:2401936
 
Astute developers and players alike will have noticed there was once again no release this week, even though I'm back from vacation. You're probably wondering: What's up with that?

The short answer is, this refactor I've been working on touched so much under the hood that I didn't feel it was right to go ahead with a public release. Rather, I want to get some power users (read: SS13 servers) to test it first to see if there are any cracks in the foundation. And it's a good thing I did, because some minor cracks were already discovered that I had to shore up.

During development this week, I worked on a new hash table class because we've kind of needed one for a while, and I'll talk about that more on this week's Patreon post. So far I've worked it into two aspects of the engine: 1) The Tmovie class used by clients for handling text mode is now shared among appearances, so the client no longer has to run a bunch of strings through a "printer" repeatedly to create these text movies, but instead it keeps track of which of them are in use. 2) Color matrices on the client side--this still needs to be done on the server--are run through a hash that allows them to be kept as "canonical" matrices, meaning if two of them are equal they'll share the same memory. This matrix change is kind of a big deal and will impact future optimizations to the map rendering code.

In other news I've made some improvements to the memory report feature in Dream Daemon. It will now pretty-print its values so instead of a raw number of bytes you'll get something like "124 KB", and object counts have commas added for clarity. The actual memory counting has been improved too, since a number of problems were discovered in the existing counts. In particular, lists were a big change because associated values weren't being counted at all. Some other negligible but worth-counting memory amounts associated with each object type were also added to the count.

We're getting close to 512.1449, I promise! I just want to make sure all is well first. The news so far has been inconclusive so I'm hoping that further tests will either prove things are working fine or reveal where any problems lie so they can be fixed.

Thanks to all our Members, donors, and Patrons who've supported BYOND this month! Although all the work going on right now is way behind the scenes, all of it increases the potential for amazing things down the road. Thanks for helping us get there!
++++++
Oh sweet optimizations! Greatly appreciate all the hard work! And with any luck all of this will start paying off with new upcoming projects soon.