Dedicated Servers are now in a really good position. As we've been working on Deathmatch, we've been running it on a Dedicated Server to improve things there. We've made Dedicated Servers network their FPS and bandwidth stats to clients, so those clients can see the stats in their console. I've made connecting to servers more reliable in general and we've made it so you can change the map and have clients automatically reconnect to the server, and the server will update the game in this process as well.
We've added a user permissions system. Dedicated Server owners can modify permissions of individual Steam accounts in a file - and permissions of a user can be checked in code. We'll use this in future to limit certain actions such as kicking or banning to only users with those permissions.
Multithreaded Networking
I've moved all the networking code over to be multithreaded, improving general performance and preventing some issues with Steam networking performance and thread starvation.
De-sync Issues
I spent a lot of time debugging de-sync issues that some users were experiencing, and now a lot of lag / delay when processing packets has been solved. Users are no longer reporting these de-sync issues in their playtests and overall things appear to be a lot smoother and painless.
Sync Var Interpolation
We added a new flag for Sync Vars that will interpolate the value of that var for remote clients over a few ticks. One way this could be used is for the view angles of a player, so if they're moving their view angles super fast locally, it won't appear to jitter and will appear smoothly for other clients too.
General Bug Fixes
I added a way to test packet loss locally using a `net_fakepacketloss` command, and a way to change that in the editor alongside the Fake Lag setting. Using this has helped me resolve a bunch of rare problems, especially with Sync Vars that could happen if the user was experiencing unusual packet loss.
Over the past month and before the holidays, a considerable amount of other bugs have been resolved with networking and I'm continuously looking to improve the overal experience, as well as adding new and important features.
Over the coming months we will be looking at optimizing bandwidth usage.
Comments