Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
No Subject
> Philip Brown <> writes:
> > [ largest amount of changes when lots of monsters ]
> >
> > If they are getting updated here and there, let's say 10 pieces
> > of information in one packet, with tcp packet overhead, that
> > generates a hell of a lot of overhead.
>
> THe easiest way to deal with this is to batch up each of the
> packets which you conceptually send to the client. Instead of
> sending a separate tcp packet for each update, you just keep
> putting data in a buffer, and when the server finishes processing
> a turn, it flushes all of the connections.
>
> Exactly. Except Carl said he is firmly against the idea of "turns".
> Go figure.
I'm so happy to see that my words are taken as gospel now even in
partibus infidelium. :-) What I think Eric means is not turns in any
game mechanical sense, but rather that a clever algorithm will not send
all data it is handled immediately but will wait a little to see if it
gets more data quickly so that it can make a larger packet.
Fortunately most of the smarts you need already are in all good TCP/IP
implementations.
> [ A few accurate points deleted ]
> So when calculating required bandwidth to sustain a fast game with
> TCP, you've also got to allow packet acknowledgement for TCP. This is
> what makes for bad net lag (as opposed to just "mild" net lag with
> udp ;-)
That I think is misleading. The really slow connections (which is
those we need to worry about -- any reasonable protocol will do well on
even medium speed connections) are all full duplex (like modem links or
57.6 kbps leased lines). Sending acknowledgments on the back channel
doesn't subtract any bandwidth on the forward channel.
Carl Edman