LATEST CHATTY HEADER
Subscribe to Shacknews Mercury starting at $1/month!
Chrome Shack Community Guidelines Chatty Search
Scroll down to join the conversation.
New to Shacknews? Signup for a Free Account
Already have an account? Login Now
Subscribe to Shacknews Mercury starting at $1/month!
Chrome Shack Community Guidelines Chatty Search
Scroll down to join the conversation.
Thread Truncated. Click to see all 114 replies.
TCP is terrible for games. It has unnecessary overhead and if a packet is lost the whole stream freezes and everyone has to reset. This is fine when you're on a reliable connection (like during an internal beta test), but when you're playing over the internet, you cannot guarantee each and every packet will make it in a timely manner. And if even one packet is dropped, the stream halts, and you have to wait for it to be resent again, even if it'd be faster just to drop it and send the next.
TCP was probably only used just to prototype the bnet2 packet structure and test things out. With UDP you have to have predictive algorithms to compensate for the lost packets, whereas you don't have to worry about it with TCP, it'll just get resent.
All RTSes work on the concept of a "synced state", as in every player maintains their own version of the game and all that gets sent is changes each player makes. With TCP if a state packet gets dropped, the game has to halt and wait for that packet to be resent, whereas with UDP you can just interpolate or just add it to the next state change in the next packet rather than waiting to resend and then playing catchup.
The post has been reported. Thank you!
You must be logged in to post.
You must be logged in to post.