I followed the course so far, focused on the “complete and correct multiplayer implementation”, that is the one who solves all the networking and cheating problems: server authoritative with client prediction, lag mitigation, and so on.
Of course the course (sorry for the pun) so far is very good: very well explained with the right dive-in coding and I’m getting a precious understanding of how a “real multiplayer” should work. But nonetheless it raised a doubt.
In the first section we implemented a very basic multiplayer movement on the moving platforms. It has many defects compared to what we’re implementing in this lecture. But then we already had a “perfect” multiplayer example: the player character! Truth is, the ACharacter class (with its component UCharacterMovementComponent) already implements a very good networking and replication mechanism: indeed in the MovingPlatform game, we didn’t notice any glitch or defect on the player actors (I tried it on a dedicated Linux server deployed in a remote VPS and movements were perfect).
In the official UE4 documentation, in the UCharacterMovementComponent page they state: “Networking is fully implemented, with server-client correction and prediction included.”
So my doubt is: what is the “right” final way to implement replication in UE4? Can we rely on the ACharacter (UCharacterMovementComponent) or we have to do things by ourselves, like we’re studing in this lecture?
Maybe we’re studying them in such details for sake of understanding and knowledge (which is fine and good, IMO) but if this is the case, are we missing something about the “real way” to do things in a real world application developed with UE4 (since proper use of UCharacterMovementComponent is far from trivial)?
I hope @sampattuzzi would be so kind to give an hint about this.
Thanks in advance for any reply.
Cheers,
Fabio