Online Programming

Blitz3D Forums/Blitz3D Programming/Online Programming

True, but still both EverQuest and WoW used TCP/IP.

The thing about these games and most other MMORPGs is that they are not realtime or action games. They do not need to synchronise a fast moving projectile on all connected machines and have it hit the destination at the same time in the same place. They are almost turn based - you click Attack and when the server recognises your command, it enters you in combat mode... when you make a hit, it isn't being calculated on your machine first and then sent to the server, it is the server doing the calculations and then sent to your computer. Or every computer that is in your party etc... And there is a very noticeable delay between when you press 'Attack' and when battle mode commences. However, you can be sure that when you press Attack, you will definately enter Attack mode, because the server will never lose your 'attack' request. The magic of TCP. Sometimes it will just take longer than others...

The trick is correct interpolation of player positions :)

In MMORPGs, what you see on your screen is no where near a correct representation of what other people see on their screens. The real trick is to make the actions of all *appear* to be fluent and realtime on your machine. That is the hard task for the client...

would they consume extra bandwidth of TCP, and include extra delay for lost packets?

For games like that it can make sense. To reuse my previous example, you don't want to have to issue an 'Attack' command more than once before you will be noticed...

Perfectly impossible/highly improbable to do something like a FPS over the net with TCP though...