And remember that a robust implementation can get big speedups by
handling

Mostyn Gale wrote:
> Andy Ross wrote:
> > "The best way to do this is actually dynamic: the server gets to
> > send the X "most important" objects to each client per update.
> > Importance can be defined in screen space -- think of it as the
> > number of "pixels" of error that the receiving client would have
> > if the update were not sent.
>
> Also a consideration is the detail of the updates.  A plane
> 10km away can be have an accuracy of 1m but you would like a
> plane in formation to fly have about 1cm accuracy.

That's why the accuracy is specified in "screen space", not
distance.  Basically, divide by the distance from the observer
and that is your priority.

> Sending velocity and acceleration data can also smooth make
> flight smother, but only for nearby aircraft.

They're useful for everything, actually.  Consider a jetliner in
a steady turn.  A single packet is enough for many seconds of
extrapolation if it includes acceleration, but will rapidly
become incorrect

> But how will the server calculate this?  There will be 2^N-N
> relationships for the computer to work out which levels of
> reports to send to each client.  For 20 players that is over a
> million calculations that the computer must perform every
> cycle.

I'm not sure where you get the exponential there.  There are
N^2/2 distance calculations required to get all the inter-object
distances.  A naive implementation (this can actually be
optimized pretty well) would then need to do another N priority
calculations for each client, for a total of O(N^3), or around
8000 computations per "cycle".  Really, it's going to be done per
packet received (which are O(N), of course), so it's really more
like 400 per packet for 20 clients.  Not so bad at all --
computers are really fast these days.

Andy

_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d

Reply via email to