I have also been investigating the UDP issue. I mentioned earlier that UDP is fast but less reliable than TCP (and Raknet is a UDP library).
However, I have investigated further and it appears they have solved this issue. Here is a quote from the Raknet documentation:
[quote:1ctdgbnt]Unreliable
Unreliable packets are sent by straight UDP. They may arrive out of order, or not at all. This is best for data that is unimportant, or data that you send very frequently so even if some packets are missed newer packets will compensate.
Advantages - These packets don't need to be acknowledged by the network, saving the size of a UDP header in acknowlegement (about 50 bytes or so). The savings can really add up.
Disadvantages - No packet ordering, packets may never arrive, these packets are the first to get dropped if the send buffer is full.
Reliable
Reliable packets are UDP packets monitored by a reliablilty layer to ensure they arrive at the destination.
Advantages - You know the packet will get there. Eventually...
Disadvantages - Retransmissions and acknowlegements can add significant bandwidth requirements. Packets may arrive very late if the network is busy. No packet ordering.
There are also options for packet sequencing, so packets arrive in the right order.
All in all, I think this is a good fast solution, especially in terms of development time required.
My only issue is the licensing, but hey, things cost money <img src="{SMILIES_PATH}/icon_wink.gif" alt=";)" title="Wink" />