What overhead impact will FOIP have on clients when implemented? Performance?
TL;DRFace capture has a performance cost, currently around a couple of milliseconds per frame at 60 hertz, so the team is working on load balancing and it will be an optional setting.
Yeah, sure. That's the biggest thing we're looking at right now. So there's a lot of work going on between Chris Bolte, I've talked about him a little bit before, as well as Carsten, some of the core engine guys in Frankfurt, as well as the Faceware engineers. One of the things is they haven't implemented it into a game that would be going multiplayer in this exact way. So one of the biggest problems with it was the amount of threads that Faceware actually kicks up. It's a lot of threads that we can't actually manage directly.
They're hardware threads. They're not managed by our job system.
Our job system, exactly. So one of the biggest things that we're doing is giving them an interface to our job system so that we can control those threads instead of them just spinning up exactly as they want. Now, we showed it in the demo with about 12 players, so we were actually pretty happy with the overall performance. What we didn't like was the scaling of said performance. It's not about the consistent level of performance, because if we were always running at 60 hertz and everything was going well, then no problem. What we really needed to do was load balance, and that's really what the job manager is about. How much stuff is happening in the world at that one time? And what should we be dropping off the job system to get that performance back? So I can imagine that people would not be very happy with saying, oh, well, I'm running at 20 FPS, I can't shoot this guy, but my face looks good. That's not going to fly, of course. So that's one of the biggest things that we're doing. So there is overhead to it. It's not a massive amount, and it really, really depends right now on the frame rate that you're capturing at. So we really want a 60 hertz capture, but that costs us one and a half, two milliseconds right now, which is not a huge amount. But if you're looking at a 60 hertz game, you're talking about having 16 milliseconds for the whole thing. So if we've already taken one-eighth of that, right? That's a lot of frame time.
A lot of gameplay programmers are very sad.
That's it, exactly. Saying, oh, two milliseconds is nothing. But for a feature like that, we still know that this feature is going to cost performance, and that's why it's always going to be an optional thing for the players. I can't imagine that a hardcore player is going to care what his face looks like. He's not really going to be worrying about it. So those are going to be options that are, of course, presented to the player, should you want to enable that stuff, just like high-end graphics effects. Again, a hardcore player really doesn't care that he's got shadows in the fog versus having 60 hertz. So it's not massive, but there is a performance draw to it. And nothing comes free. I mean, that's kind of the thing.
You mentioned the load balancer. What an important feature that's never seen, because by design, you're not supposed to see it.
Well, and to be honest, just to explain it, even me at my level, I have a hard time grasping exactly what's going on with it at all times. Even talking to Christopher Bolte, some days he'll just go off on a tangent and I'm like, I have no idea. So it's really quite complex what goes on there. And yeah, it is interesting if you can ever get them... But I mean, everybody's eyes will be crossed at the end of it for sure, because it's been a big thing of his for a long time.