Hi James,

"James Palmer" wrote:

> If it is overly burdensome on framerate due to latency, I see no reason why
> a server cannont support both architectures (single and split).
[...]
> -As I investigate this proposed architecture, I plan to avoid splitting the
> FG world.  I do plan to allow easy avoidance between fighters and
> non-fighters (at various levels), but I think the FG community as a whole
> benefits from a single set of servers.
[...]
> The new architecture we are proposing will not be useful if it does not meet
> or exceed the performance of the current architecture.  We are well aware of
> this.

Trying to get to "the point" (TM), I'd present the now following
conclusion. This is my favourite in discussions like this one: Cutting
a mixture of different topics into respective pieces  :-)

1.) In order to run every FDM on one single server (or a cluster of
    servers, if you like), you'd need to design and implement an
    network protocol which is smart enough to send all control input !! 
    to the server _plus_ the result of the FDM back to the client
    without user-noticeable delay. You're relying on a two-way
    communcation (loop) here which involves four transitions between
    simulator and network (which, BTW, adds to the latency).
2.) Simply doing the job of collision detection on a centralized server
    does not necessarily require to have a local FDM, you 'just' have
    to make sure the position, velocity and acceleration data of the
    aircraft is available just in time (TM  ;-)  - no matter how it
    gets there.
3.) In case you manage to design and implement a network protocol that
    meets the conditions of 1.) then it doesn't matter where the FDM is
    actually running - because per your own definition you have a
    network infrastructure whose latency is soo low that the pilot
    wouldn't notice.
4.) If the network loop is faster than your pilot's cognition it makes
    absolutely no difference if the collision detection, which is
    supposed to take place on the MP server, is done at the beginning
    or in the middle of the loop - per definition the pilot won't see
    the difference anyway. Additionally, the visual outcome of your
    enemies' action in a dogfight is always the same because this
    _always_ goes:

      enemies client -> MP-server -> your client
                     ^^ step 1    ^^ step 2

    If your're running a central FDM sever, then step 1 includes all
    the pilot's controls and step 2 contains FDM output. If everybody
    is running their local FDM, then step 1 contains FDM output as
    well, instead of pilot controls - which would not make significant
    difference to the latency.

Thus I don't see the point in running the FDM on the server. In
contrast:

1.) If the network latency is really sooo low that the pilot doesn't
    recognize, then you're done by implementing collision detection on
    the server and leaving the FDM on the client.
2.) If network latency is too large, then the collision detection will
    get delayed _plus_ the pilot will feel seriously annoyed because
    his own aurcraft is being rendered 'unflyable'. The outcome of this
    is that you're buying mediocre collision detection for the risk of
    annoying 'your' users.

Of course FlightGear would profit from every type of improvement, which
certainly includes the network protocol as well - even though I think
what we currently have in CVS is already pretty smart ! Yet I heavily
doubt that a centralized FDM server is the solution.

BTW: What are you going to do if the server has a short (or even a
bigger) outage, maybe just 10 seconds. This might affect one local
client connection, a peer connection between different carriers or
maybe the server itself. Such thing actually _does_ happen in real
network life and you have to take this into account.

If people are running their local FDM, then they will see other
aircraft freeze during this period, but they'll continue to fly along
their path. If you're running every FDM on a central server, then
_every_ pilot will see his aircraft freeze at the current location.
What a fun ....

Cheers,
        Martin.
-- 
 Unix _IS_ user friendly - it's just selective about who its friends are !
--------------------------------------------------------------------------

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to