What's the progress on multi-core engine balancing for the client? Are we still working on that?asked by Nightwriter
TL;DRMulti-core scaling is ongoing for client and server, through slow engine refactors like the new item system, serialization, a new physics system and modern graphics API groundwork, with no timeline given.
Oh, yeah. And it's the same stuff I'm talking about for the server in terms of better performance, better scalability. The server and the client have a lot of similarities, other than the client's doing the rendering and doing more input-output, because it's having to stream in rendering assets and sound assets. But yes, part of our focus is scalability, so how we can utilize more cores as we go. I think I've mentioned before, in the server case, it really can make a difference, because the actual physical servers we run on have 16 physical cores, or 32 logical cores or threads, if you want to think about it. We run eight game server instances on that. So each one gets two physical cores, or four logical cores, the way you think of it. And each one of those right now has a 24-player cap. So if you just took eight times 24, if you could just have one server instance use all 16 cores, even with us still needing loads of optimization, you're close to 200 players just on one server there. We do run close to 200 players on one physical server right now. But the way the engine's built, we can't scale it that way. We can't just add the cores and all of a sudden it scales better. So we have to refactor a bunch of stuff. It's partly, again, some of the stuff that I'm discussing that we're doing in the background. The new item system, which is really a new entity system. Some of the serialization stuff that we're doing. And we're redoing [things] on the physics side. [We're] optimizing the current physics, but we're actually building a whole new, more scalable physics system, which isn't going to debut [soon]. It won't be for Squadron 42, but Squadron 42 doesn't really need it, because it's really more a single-player game. But we are building one for Star Citizen for the scalability reasons. Because really, physics is the thing that the server does the most. What it does the most is physics and network stuff. And so if we can make that more scalable... the current CryPhysics tops out at, say, three or four threads, and beyond that you're not really getting much benefit. But if we can get that scaling all the way out and more parallelism, then we can just put everything all on one physical instance, which would be much better, because then you don't have these different virtual instances all contending for, say, the same disk access and all the rest of stuff. So it will be good. So we're doing that, and the work for that is the same kind of approach and work for the client. And we're doing stuff on the rendering side for more scalability. So we're starting to put the pieces in place for the move to the next-gen APIs like Vulkan and DX12, as well as cleaning up the whole DX11. The problem with a lot of DX11 implementations, including the CryEngine one, is they really were DX9 implementations that then had DX11 put on top. And DX11 actually operates fairly differently than DX9. But because they had to deal with DX9, they couldn't utilize all the... So there's a lot of organization in terms of how you do things that you can do for DX11 that is also what you want to do for Vulkan or DX12. So we're not doing DX9 [anymore]. So we're basically getting rid of the old stuff, refactoring a whole bunch of stuff down on the engine level to allow better parallelism and stuff. So it's an ongoing task. A lot of that's been done in Frankfurt by the guys that essentially wrote the engine many years ago anyway. And this is all stuff that they wanted to do for a while. So we are working on it. It's just an ongoing slow process, but I think down the road you'll have a very fast and beautiful game. You take a look at what Star Citizen looks like now, what it looked like in 2015, what it looked like in 2014, what it looked like in 2013. There's big differences, and you'll continue to see that.