But your operating system's TCP stack provides feedback mechanisms to determine that there has been packet loss – or, for that matter, other types of network slowdown. While UDP is indeed optimal for real-time protocols if it's very carefully used, you can preserve many of the properties of TCP (for example, not needing to implement your own congestion control) without blindly sending all of your players’ movements across the network.