Game Dev Update: Kinematic Characters, Client State Prediction and Mirage Networking

Time for a development update on my First-Person Shooter game project, which has been a on and off development hobby project for years. This time, I’ve been working with the Mirage Networking stack, and the Client State Prediction module that is a work in progress.

As one can see from the video above, there are 2 capsules that represent two (connected) networked players. While there’s some delay with the rotation, both players are being simulated on network tick rate, not the local frame rate.

This means the character physics are running at 60 ticks per second, while Unity is rendering at 144 ticks per second.

This was an achievement for me personally because I wanted to use the movement system out of FPS Builder, but it was Rigidbody based. Unfortunately, Unity’s physics engine is not ideal for network synchronization as it’s not deterministic, so this is where Kinematic Character Controller came into play. I had paid for KCC in the past, but then it was absorbed by Unity Tech and re-released for free – a nice kit I must say.

There’s a lot of stuff that I need to still figure out. I’m likely to gut and replace a lot of the code over time, but with very basic movement out the way, I should probably consider looking into the gun-play now.