title: Real-time game networking libraries for games in Java and Objective-C
body: <p>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)?</p>
  
  <p>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).</p>
  
  <ul>
  <li><a href="http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking" rel="noreferrer">Half-Life Source Engine Networking Overview</a></li>
  <li><a href="http://trac.bookofhook.com/bookofhook/trac.cgi/wiki/Quake3Networking" rel="noreferrer">Quake III Networking</a>
  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).</li>
  </ul>
  
  <p><a href="http://projectdarkstar.com/" rel="noreferrer">Project Darkstar</a> is a Java MMO server with C++ bindings (a little to heavy for a light-weight real-time networking library for generic multiplayer games).</p>
  
  <p>I've seen libraries written in C for reliable UDP:
   - <a href="http://enet.bespin.org/" rel="noreferrer">Enet</a> - reliable UDP library
   - <a href="http://code.google.com/p/cocoaasyncsocket/" rel="noreferrer">Cocoa AsyncSocket</a></p>