![]() This type of work is hard to express in player-facing patch notes as it doesn't relate to specific features, but I think it's important to mention details when it is such a huge part of the development process. Performance and scaling has always been a top priority. What was previously pinned and constantly running below target tick rate, now sits comfortable with plenty of headroom. ![]() The impact is huge, as can be seen in these comparison stats, which shows CPU load on a server (at ~75% build capacity) with 4 concurrent players on each. I've made some sweeping changes to put almost all actors to "sleep", and wake them only on certain events, rather than each frame. The cause of this was the sheer volume of actors (things in the world) trying to tick (run code) every frame, when the vast majority (over 95%) very rarely needed to update, if ever. This would sometimes push the server tick rate down into single digits, and result in extremely delayed response times for clients, high pings (due to the server getting backup-up) and AI teleporting erratically with their movement. ![]() This was particularly noticeable for dedicated servers with 10's of thousands of buildables placed, and multiple concurrent players connected. ![]() I've always been aware that when the game world was very densely populated, the CPU would bottleneck performance. Big Performance/Lag Improvements at Scale:* This was the largest piece I worked on this sprint*.
0 Comments
Leave a Reply. |