What upcoming optimization are you personally most looking forward to, and why?
TL;DRRob Johnson is most looking forward to object container streaming, planned toward 3.3, which should cut load times and let the game scale across cores, though he says several optimizations are in progress together and a couple more releases remain.
For me, I think one of the biggest things this year for us is object container streaming. That's something we're working towards in 3.3. It kind of goes hand in hand, really, with some of the new entity component work that we've been doing, so the entity component update scheduler. Really, with object container streaming, you should get optimizations on load times, for example, because you'll be coming into the PU only needing to load in the immediate area around you to begin with. So from our point of view, as devs, we're very much looking forward to being able to get in the PU and fix some bugs in an absolute fraction of the time it takes us to load into the PU right now. So it's not just going to be a benefit for you guys playing the game. It's going to be something that is great for us every day, work-wise. But to do that, there's a lot of talented guys on the engine side working on the back end for that. But also, game code-wise, we're going to have to go through lots of old game objects and convert over that code to our new entity component system. We have to make the various classes thread safe, avoid crashes. Those new classes then should in theory be ready to go on the batch update, spread the load across multiple cores, allow the game to scale a lot better. So really it's kind of hard to pin down one specific optimization when we have several all being worked towards at the same time. We have things batch updating now. We have a lot of these classes that are now thread safe. We have a lot of stuff that's been converted over. There's just a couple more releases, probably, until we're quite there. So yeah, that stuff is something I'm very much looking forward to, because a lot of my job for the last three or four years has been getting rid of a load of old code and putting in this nice new shiny stuff. So we dream of the day where we just have this nice shiny code base that's our own, and we're not fixing crashes in something that got added years ago, and we can just enjoy the new code. That's where we want to get to.
It's kind of like being asked to pick a favorite child.