Happy New Year! We were off for the holiday so we've skipped our normal light Community Update blog and jumped straight to our technical Dev Blog with a couple heavy topics explaining why we are using a Server Authoritative networking model and True First Person characters.
Server Authoritative vs. Client Trusted Networking
This is a hefty topic when it comes to online multiplayer games that i'll be touching on our approach to and deserves a deeper dive if anyone wants to educate themselves more thoroughly.
The bottom line is that each approach has pros and cons but one is clearly the better choice from a user experience perspective if you can pull it off. A Client Trusted Networking model is exactly what it sounds like; the player's local client information is trusted to be accurate by the server and passed along without additional verification. The pros of this approach explain why it is the most used; it is easier and faster. No server verification means less travel time for the data and less reliance and server performance for overall game functionality. The cons however are massive. Without extensive data encryption, obfuscation, or some other deterent, players can manipulate their client data however they like. The common manipulations you likely have witnessed involve character movement (speed hacks/teleportation), character health (god mode), weapon accuracy manipulations (aimbot), damage distribution (server nuking), and item spawning/duplication, among many others. These types of hacks/exploits become a constant headache without the server verifying the integrity of the information.
A Server Authoritative model basically renders all of the invasive cheats above impossible because the server verifies the information before distributing or returning it. The main downside is that this model requires consistently high server performance in order for the game to function. A Client Trusted model can often hide behind poor server performance due to not needing the server to verify things like character/vehicle movement, bullet travel, or player stats, but then you have traded convenience for security. A Server Authoritative model maintains this security as long as your physical servers and netcode allow for adequate server performance, something every team should strive for anyway.
True vs. Non-True First Person
This is very similar to the pros and cons above where we have an option that is faster and easier and an option that is more accurate but more difficult. A True First Person character is able to see his/her complete body/character model when in a first person view. A Non-True/Fake/Normal First Person character usually consists of a pair of disembodied arms with a camera near the head position. Sometimes a pair of legs and a torso segment are added so the player can see elements of their character when looking downwards. So why the two different approaches? The Non-True First Person "character" is only visible to the player, other characters do not see this version. It is much easier to handle from an animation standpoint and it saves on render costs of the full character. Animations can be created using only hand/arm capture and the rest of the body/shoulders do not need to be accounted for. When you see extremely detailed/intricate weapon handling and reload animations, this is normally on a Non-True First Person character. These high quality animations are then only visible to the player character since a separate, fully modeled character must exist for everyone else to view with what is normally a much more basic animation substituted in for multiplayer viewing.
With a True First Person character, everything must be animated on a fully rendered model. This means that animations are more difficult and thus more costly. So why do it this way? Multiplayer accuracy. Everything that you see when controlling a True First Person character is what other players will see. When controlling a Non-True First Person character, your hands and arms are only local to you and this can lead to discrepencies in hit registration since everyone else sees a completely different character model that does not accurately represent what you the player see in your first person view. Non-True First Person is also typically designed to create optimum first person aesthetics with regards to camera, arm, and weapon placement, which may result in odd proportions that do not necessarily line up with the 3rd Person character model, another potential accuracy issue. There are workarounds and hybrid approaches as well but from the beginning we wanted to stick to a True First Person model for the sake of maximum accuracy and realism.
Thats all for now, I hope this was informative to those that may have heard these terms used before but were unsure what they referred to. Please check back at the end of the month for more updates!