ID:2176592
 
Once again we've come to the rare Wednesday development update. Thanksgiving is here! Those of you who have a four-day weekend, make the most of it. Last weekend we got a big helping of snow for our first fall of the year, so the Christmas season is well and truly upon us. Break out your sled and find a good place to use it.

Today I released build 511.1364, bringing us closer to the 511 stable release. I'd probably have considered making it the stable build, except 1) I made some new changes that I'd like to see through a test run first, and 2) the last time I released a new stable build before Thanksgiving, Avast crapped the bed and then I had to deal with the fallout all weekend. So screw that; we're doing this thing later.

The new changes include a number of webclient fixes, plus some tweaks to enhance performance in Dream Seeker and avoid stack overflows in the server. The performance stuff really took up most of my time this week, because I was trying to figure out how to get decent time measurements--in the end I had to settle for decent percentage measurements--and then how to do anything about them.

One of the major places I was able to improve performance in Dream Seeker, in the hardware rendering engine specifically, was that I found out the process of going from icon ID number to sprite was kind of atrocious. The code was converting an icon ID to an info structure pointer, then looking up that pointer in a hashtable to find the loaded sprite (if any), instead of using a simple flat array to go straight from ID to sprite. Yeek. Changing that chopped about 11% off the rendering time in a particular game I was testing. Some other work with not bothering to change transform matrices all the time shaved off another few points. The overall improvement in rendering isn't dramatic, but it's significant.

Likewise on the backend, I found some code that was re-reading the HUD dimensions every time that big icons were rendered to the HUD. It was doing this after getting the list of icons. Honestly I have no idea why I ever did that, but I've axed that code. Which is one of those changes I'm not 100% sure about, but it makes sense. That shaved an even bigger chunk of time off of the backend pre-rendering code.

The web-side frontend stuff for the webclient is still on my plate, and I have to look into an issue with link() messing with login credentials after that. But that should be quite soon.

Now, it's time to revel in fun BYOND games while avoiding relatives! I have a good mind to play some Draggin' Ballz myself for nostalgia's sake. (If you've never played it, it's a hilarious parody of the community itself. It won first place in a 4K competition, the same one where Scream of the Stickster took third.) I'm still leaning towards setting up a 16K if I can find people willing to judge the thing, but we'll see how that goes.

Thanks again to everyone who's become a Member or donated this month so far. Your contributions really mean a lot. And for those who haven't yet, why not throw a few bucks BYOND's way while you're doing your Black Friday and Cyber Monday shopping? You can always donate a gift Membership to your favorite SS13 dev, or make a newbie's day.

My annual Macy's parade live blog starts tomorrow at 9 AM EST. If you haven't baked any pumpkin bread yet, or a pre-Thanksgiving pie, you'd better get started now.
Way to go on another solid update Lummox, I noticed a significant boost in performance after updating.
In response to Flame Guardian
Awesome! I'm glad it's already showing results.
Lummox JR wrote:
One of the major places I was able to improve performance in Dream Seeker, in the hardware rendering engine specifically ... Changing that chopped about 11% off the rendering time ... shaved off another few points ... but it's significant ... I found some code ... That shaved an even bigger chunk of time off of the backend pre-rendering code.



Just wanted to add that I got a noticeable performance boost in Feed, also. Great work and thanks, Lummy!
Ah yes, good old Draggin' Ballz. I have not played that game in forever. Last time I played it was several years ago.

I haven't tested out the latest update yet, but I'm definitely going to have a look some time.
chopped about 11% off the rendering time...shaved an even bigger chunk of time off of the backend pre-rendering code.

o_o

Noooo, no. That's not quite right, this face is better.


Very impressive work. I was quite shocked.
You've somehow made running a DMB from within DreamSeeker use less memory, as well.

Right now, I have two constantly iterating DreamSeeker versions up, doing matrix transformations on an icon as a test. One is the current beta, one is the current public.

The current beta is at 2,928KB. The current public is at 11,644KB.

Same project. The beta is accessing a log file that's nearly 100KB now. The public is accessing one that's less than 20KB.
Improved Performance is always good. I'm very happy about this. Btw am I the only one who didn't receive a beta update notification? Its says mine is up to date but its clearly not.
In response to Medicator
Well that's unexpected, but I'll take it.
Well, Lets just thank everyone! Lets make BYOND Great Again :D
And for those who haven't yet, why not throw a few bucks BYOND's way while you're doing your Black Friday and Cyber Monday shopping? You can always donate a gift Membership to your favorite SS13 dev, or make a newbie's day.

I chuckled
Will have to fire up my raycaster and see what performance improvements have done.

In response to Ter13
Let us know of any preformance improvement, please.
In response to Lavenblade
I mean, the GIF itself looks very smooth to me.
My Update Beta Button Finally Showed Up. Ive been working on Overcome it was having noncpu related lag issues. I'll let ya know if it was improved as well.


Also, I notice that players don't have to download beta to play a game that uses beta features which I find interesting. Will players who don't have the beta installed beable to benefit from the performance improvements aswell?
In response to GreatPirateEra
GreatPirateEra wrote:
I mean, the GIF itself looks very smooth to me.
I'm more interested in numbers. :P
Also, I notice that players don't have to download beta to play a game that uses beta features which I find interesting.

Depends, for instance if you mess with client.fps or client.tick_lag it will force 511 clients, (but if you check the client's byond version and use client.vars["fps"] you can work around that.)

Will players who don't have the beta installed beable to benefit from the performance improvements aswell?

Nope, but most of them won't require the server be running the new version. (some changes do require both be updated, it really depends, i know early in 511 there was a change that made clients shutter less, but only if both were updated)
Yeah.. this works out nicely. Most players don't have to download the beta. I am using client.fps and TILE_BOUND and ANIMATION_PARRELL which is cool.

Btw the performance improvement is instantly noticeable, I haven't ran that many test but its looking very nice so far. This might be one of the best improvements 511 offers.