A small personal project created to understand how a first-person shooter game would integrate a server authoritative networking architecture. The style of movement I pursued in this project is inspired by Tribes skiing and bunny hopping, air strafing, and air acceleration present in games such as Quake, Half-Life, CS:GO, and Titanfall. To achieve smooth multiplayer locomotion, Unreal Engine's Character Movement Component needs to be extended and modified to support the custom movement. The code present in this repository is my implementation that stores compressed input commands in uint8 flags and overrides the PhysCustom function so that movement is replicated correctly. This ensures client-side prediction works and players' movement is interpolated and not jittery, meaning, the client feels snappy and responsive. Without this and with just a few ms of latency, the player would constantly snap back to the server's location making the game unplayable. Overall, the project is a WIP as many bugs are present but replication has reached a desirable smoothness when emulating network latency. Future features include lag compensation and projectile prediction.
Average Network Emulation
Bad Network Emulation