On Sat, Mar 02, 2013 at 12:51:31AM -0500, Karthik Arumugham wrote:
> On Mar 1, 2013, at 5:17 PM, James Cameron <quozl at us.netrek.org> wrote:
> > On Fri, Mar 01, 2013 at 02:49:05PM +0100, Sven Neuhaus wrote:
> >> Hi Andrew et al,
> >> 
> >> this project is highly interesting. With the advent of WebRTC and
> >> RTCDatachannel browsers can now use UDP peer2peer communication, which
> >> will be a great boost for lag sensitive games such as netrek.
> >> 
> >> It would be even better if we had an alternative protocol for netrek
> >> (that the server also understands) so that no proxy is necessary for web
> >> clients.
> > 
> > Agreed.  While UDP was once needed to optimise networks with loss and
> > reordering problems, modern networks are much better.  So a new
> > protocol with better compatibility for the web client sandbox
> > environment would be helpful.  The payload need not change, but the
> > transport can.
> Modern networks may be significantly better, but there's still far
> too much loss and jitter on the average consumer connection to NOT
> use UDP for a latency-sensitive game like Netrek. Of course, TCP is
> and can still be an option if UDP is not available.

Sure, real Netrek players will continue to use UDP and the original
protocol.  I'm not talking about them.  Anything I do on this would be
for increasing involvement by new players, and they have no
playability metric in their head.  I don't want the perfect to be the
enemy of the good.

> Even across a single network, or even a single link, it's hard to
> get anyone to care unless packet loss is > 0.1% or so, if even
> that. Those small occasional losses build up, along with last-mile
> congestion on consumer connections. Netrek starts to suffer at
> perhaps 0.2 - 0.5% loss if you're using using TCP and depending on
> retransmits. (Obviously, that's latency-dependent as well, and
> depends on the structure of the loss.)
> The newer frameworks that Sven refers to again just use UDP? So,
> basically, UDP isn't going anywhere if Netrek is going to be
> playable for anyone with loss. Unless someone feels like
> implementing SCTP. :)

I didn't suggest removing UDP support.

I'll accept patches to add SCTP.

How about UDT?  Includes NAT traversal.

James Cameron