I'm looking to build real-time games built using a dedicated Java server and iphone clients as well as Java desktop clients. What available high-performance network transport libraries that could be used for real-time multiplayer game development, exist for Java and iphone (specifically reliable UDP)?
The general advice for most real-time action based games (Counter-Strike, Left4Dead, Quake III) is to use UDP/IP transport protocol sending messages as "unreliable" packets in favor of the "guaranteed" delivery of TCP (because of issues with resend and latency issues you can't easily control).
- Half-Life Source Engine Networking Overview
- Quake III Networking The other advice is to build a reliable UDP protocol that lets you "optionally" gurantee delivery of UDP packets (while still not being able to guarantee delivery order such as a TCP stream, as long as your game can handle out of order packets).
Project Darkstar is a Java MMO server with C++ bindings (a little to heavy for a light-weight real-time networking library for generic multiplayer games).
I've seen libraries written in C for reliable UDP: - Enet - reliable UDP library - Cocoa AsyncSocket