All the boring parts are done!

I’ve now got an UDP framework up and running that supports automatic compression, packet acking/resending, duplicate packet identification and skipping, and a method for ordering data that needs to be ordered (such as block changes) without having to wait for the latest data. If the game ever detects getting a block change in an area that happens before one that is already applied, it’ll apply the later changes again, in the correct order.

In my tests, I send 256 updates of various sizes to a 16*16 area with a 90% packet loss, and it works just fine, assembling the correct final image once all the packets have been resent enough times to actually get through.

This means that the most boring parts of the multiplayer development are now finished! I managed to squeeze it all into a single day of work, woo!

posted 13 years ago