At the moment I am considering a TCP over UDP type system, with the two flags, one that guarantees that packets arrive at their destination and another that will guarantee they arrive in order.
A rough idea would be including an id with each UDP packet, and after a set amount of time, based on network latency, send back to the server with a list of the ids that were received and the server can resend the packets that were not received, if the server does not receive the update packet then it resends all.
Possible implementation options
3rd party libraries
- Pure BSD socket implementation via the Python standard library.
- Pure BSD socket implementation via platform specific C libraries.
Former networking article
The old networking article was moved to Networking (deprecated). The author of the old article has left the project and it's unlikely that he returns and resumes working on the networking functionality.
First of all I do not think that support for a server should be part of the engine, that can be written separately, it doesn't really have a place within the engine because what is a server going to do with graphics, sound, etc... If anyone disagrees feel free to chime in.