An introduction to networking for game programmers:
Hi, I'm Glenn Fiedler and welcome to the first article in my article series Networking for Game Programmers
In this article we start with the most basic aspect of network programming, sending and receiving data over the network. This is just the beginning – the simplest and most basic part of what network programmers do, but still it is quite intricate and non-obvious as to what the best course of action is. Take care because if you get this part wrong it will have terrible effects on your multiplayer game!
You have most likely heard of sockets, and are probably aware that there are two main types: TCP and UDP. When writing a network game, we first need to choose what type of socket to use. Do we use TCP sockets, UDP sockets or a mixture of both?
The choice you make depends entirely on what sort of game you want to network. So from this point on, and for the rest of this article series, I'm going to assume you want to network an action game. You know games like Halo, Battlefield 1942, Quake, Unreal, CounterStrke, Team Fortress and so on.
(Score: 0) by Anonymous Coward on Tuesday January 03 2017, @10:12AM
Short version:
UDP for "send this now, if it doesn't reach the receiver, it will be too late anyway". Packets may arrive out of order, or not at all.
TCP for "send this, and make sure it reaches the receiver, even if you have to block sending for several seconds while retransmitting". Data arrives in the order it was sent.