ID:2366705
 
Okay, we have kind of a weird entry this week for development news, because there's been no release and no news of other fixes ongoing. What's going on?!

The short answer is, I'm on an optimization drive. This started because of the request for better client-side profiling, and that's still in the works, but it was when I got started on adding some of the profiling items that I decided to look a little deeper into what those times were telling me, and see if yet again there was any way I could trim a little fat from, or add a little muscle tone to, routines that were at the heart of the matter.

To mix it up and keep things interesting, I'm going to do a more in-depth analysis with a deeper look under the hood in a post on BYOND's Patreon, and you can encourage more posts like that by throwing in some support there if you haven't already. (Update: That post is up now, and I've made it available to Patrons only until next week.)

For a very compressed version, I'll explain it like this: The main improvements were in the view code, a routine that feeds data into the view code, and routines that gather all the objs and mobs along with turf and area info for a single tile. I've also made some modest gains in routines that convert atom info to a set of icons, except for areas where I made much more substantial gains.

How noticeable an impact will all this have? I don't know yet, and I'm still in the thick of it trying to trim down even more if I can, but so far I think good things are happening.

Huge thanks again to everyone who's become a BYOND Member or hit the donation box, and to our Patrons too. You guys make it all possible.

Grill season is upon us! Fire 'em up (if you can--I can't till Monday) and enjoy the nice weather while you can!
can you make it where the webclints run on a consoles internet browser?
Enjoying grill season, here! :D
Yut Put wrote:
Will this improve the FPS problems for dream seeker?

It ought to have an impact, yes.
will this improve isometric for crazah
In response to Super Saiyan X
Most of Crazah's issues seem to stem from overreliance on big icons, which don't function well in isometric at all. In fact they generally mix so badly with regular icons, I think it'd be well to simply cut all the big icons up into parts.
Should really offer some features from tiled map format if that's the case. Like having an object/turf automatically turn into a bunch of tiles when placing them down if the developer wants
In response to Lummox JR
Lummox JR wrote:
Most of Crazah's issues seem to stem from overreliance on big icons, which don't function well in isometric at all. In fact they generally mix so badly with regular icons, I think it'd be well to simply cut all the big icons up into parts.


isn't this the opposite of what you said in december 2017

http://www.byond.com/ forum/?post=2251912&page=3#comment23595579

The Snow Trees icon for example is broken up into tiles, when it would be much more logical to use a single tile. One of the forest tree icons you have has a base and a top, when they could very easily be a single icon. Anywhere you can switch to using a single icon instead of several will be a benefit, plus anywhere you can switch from an obj on a turf to an overlay on a turf will show an improvement too.

what can poor crazah do. do i need to donate more to the patreon than I already do.
I would donate 200$ for a more usable webplayer, just saying. Probably another 100$ a month for 3 months after too because it's worth at least 500$. I think other people would pay for that too if you crowdfunded it. (Biggest issue is giving us a way to bypass account login and autolog them in as Guest)
In response to Super Saiyan X
IIRC the main issue was the particular way it was broken up.
In response to Super Saiyan X
Okay, in particular there's one tree that has a separate top icon. That's definitely worth changing. There's another tree type that's broken down by tile, and that's a better choice. I think the one I'm talking about that's broken up by tile is the snow trees, so I was mistaken on that previous post when I said that wasn't good.

I'm looking at the project now because it's a good weathervane for optimization issues. In particular I found there are a lot of turfs appearing in the "extended" list for no apparent reason, and DS is dutifully trying to render them only to crop them out before the sorting begins. I'm trying to figure out why they're in the list--it may be that the underlays, which have a pixel_z offset, are marking the tile as extending too far out of bounds--and what can be done about them. That's more of a long-term fix but it's really what's taking up the lion's share of the rendering time.

Yesterday I implemented a change to the sort algorithm that should impact all modes across the board, where sorting time has been cut in half. I switched internally from qsort() to a functor-based dual-pivot quicksort (with a binary insertion sort for small pieces of the array). This is not the long-coveted topological sort but it will have a bearing on topological performance once I get there. In this particular project, in debug mode this sort improvement slashed about 1.6 ms off the sort time--which is a really big deal, considering the copy of the project that I have has an unrealistic 100 FPS setting.