TCP vs UDP
Generally tcp is to slow to use on alot of games(e.g real time stratagy,FPS,and a few others) Now where tcp is used is like on starcraft transfering the map to another player. Also you can get away with it in turned based games and probally most rpg's (not sure on that thue). Anyways i belive in a mix of the two. Use tcp for msg's that you cant afford to be loss or maybe for setup data/maps ect. Use upd for the guts of the networking code. But like i said this depends on the game. Hope that helps.
We don't use UDP at all currently. We may start using it to handle game chatter (where order of arrival is nearly irrelevant) some day, but so far TCP has worked quite well for us.
Despite what you read, it's not a "cut-and-dried" question. It may have been at some point, but I have no idea when that was. We've been using TCP exclusively for 3 years without significant issues.
Whether you use TCP or UDP, it's up to you to optimize your use of the connection bandwidth. The protocol will impact your lag far less than you do.
------------------
DavidRM
Samu Games
http://www.samugames.com
Thanks for the replies, btw...great forum, great website.
Seriously, I'd consider utilising a mixture of the two, UDP for the majority of the traffic, and TCP for those has to get there in one piece type messages (players chat for a start, not so time critical but it shouldn't be garbled).
With proper design at the start, your game should be playable even with a large amount of packet loss and definately responsive...
Point to note, if you are using UDP make sure not to transmit individual messages larger than 500 (cant remember exact size) bytes otherwise they WILL get fragmented. Make small messages stand alone.