ID:2855334
 
The map editor had some nasty bugs sneak in in the last release, which is one reason I wanted to get a new release out at a good time this week. Unfortunately, mid-week I was basically dead on my feet from poor sleep and couldn't accomplish much of anything, and at that point I still had a lot of work to do to button up some changes I'd done earlier.

Over last weekend I was playing with SendMaps threading to deal with the issue I discovered in my prior tests, and uncovered a really interesting problem in SS13. On the client side, I was seeing massive stuttering while wandering around that went away after a while, and through profiling I identified the problem as icon loads. Specifically, the hashing done to test if frames are identical and therefore conserve icon memory was too slow. This was in part because the hashing was called too often and not cached at all, but also because some icon files had huge numbers of frames. At first I thought the worst offender had over 1200 frames, but in fact the worst was well over 5000. Stuttering indeed!

My fix for the icon problem, which wasn't so much a fix as an improvement, was to not only cache the hash calls but subject them to threading. This in turn led me to completely rethink my setup for threads, which I finally got working the way I want last night. I'm going to be applying that method to the SendMaps threading as well because I think it's much cleaner.

So for right now, my plan is to finish this up and get a new release out probably Monday or Tuesday, and I'm hoping that very soon I can get some threading tests out to some servers to try that out.

Thanks to everyone who's helped support BYOND through your Membership and donations. It means everything and it's what keeps me coming to work to bring you new features and fixes.

Cake temptation is mostly behind us now. Now comes the dreadful waiting for spring to arrive, and preparing for winter's last gasp to throw us a 6-foot snowstorm when we least expect it. Play on, mak gam, and I'll be back next week.