Hi, I’m opening this question to ask about contributing to the Iris parallelization efforts.
I’ve made a few posts in the past about parallelizing the client tick phase of the NetDriver when using Iris.
It’s my understanding that Epic does have a developer working on this, but that it takes a backseat depending on other feature work and bug fixes.
I’m happy to say that I recently implemented this in our version of the engine, and for nearly 2 months now we have been running our servers with it enabled without any issues.
If anyone at Epic is interested, we’d love to contribute our implementation and findings. Just let us know what channels would be best.
We playtest with roughly 50 players 2 times each week and have automatic scale tests running daily (each with 50 clients). So we’re fairly confident that the implementation is sound.
We’ve also recently had tests with 100 players in a server from various countries without issue.
When it comes to the performance, there’s some variance in our scale tests as they test different parts of our game, but the phase now runs 2x-3x faster on those tests, with our Weapons test dropping from 9.3ms average to 3.46ms.
We also see a massive improvement when the clients are joining the test server, dropping from ~35ms to ~13ms.
For non-synthetic performance, a playtest with 50 players used to average just around ~23ms. Now, we consistently run around ~8ms for the same number of players.
I tried to make the changes in a way that would minimize friction when upgrading engine versions, so it’s likely that extra performance could be squeezed out with expertise on Epic’s end; by making architectural changes or going lockless in some places.