XBox Live: client/server, or something else

Discussion in 'Archived Threads 2001-2004' started by Michael St. Clair, Nov 5, 2002.

  1. Michael St. Clair

    Joined:
    May 3, 1999
    Messages:
    6,001
    Likes Received:
    0
    There has been much 'debate' at other forums about whether typical XBL games will be client/server (MS hosted), or client/server (user hosted), or P2P (in the context of 2 nodes).

    There has been much flaming about this, and tentative anger expressed if MS is not hosting typical games. Why the anger? If XBLive does what is advertised (have they advertised 'free' FPS games with 32 players?), who cares how it is implemented?

    There is another way. It's not easy..

    True distributed application.

    If MS hosts (serves the game) typical games, their giant server farms just aren't big enough.

    If a user hosts typical games (c/s), their upload bandwidth isn't big enough. If you host an 8-player game this way, you aren't just uploading one players data to 7 players, you are uploading 8 players data to all 8 players. If player one hosts, he uploads to player 2 what players 1 through 8 did at the last synchronized 'heartbeat', and to player 3 the same data, and so on. In other words, you would upload 64 times the amount of what would capture a single players actions. Perhaps not feasible on most consumer broadband connections (some of which throttle uploads to less than 64k).

    Enter the truly distributed game app.

    Each 'heartbeat', you upload your actions (your coordinates, your velocity vector, and your actions - like launching a missile) to all 8 players. Every heartbeat, theirs does the same. Predictive logic ties it all together on all clients, and each client estimates the game state for each instant in time based on the previous incoming data, plus the time passed in lag, all processed through predictive logic. Once I fire that missile, that data is not sent any more; each client tracks that missile independently based on the origin and the vector. A hit is registered by the client of the person when their gamespace processes the hit; then that hit is broadcast to all 7 of the other players. Predictive logic smooths out player movements just like QuakeWorld did, but with the latency factor constantly re-evaluated.

    There is no server.

    Yet everyone is a server.

    It's tricky to do for more than a 2 node game, can probably only be done reasonably well over broadband, and it's not illogical at all that typical FPS games haven't done it so far.

    And if done right, in theory, lag is less worse than having ANYBODY (user or MS) host, because typical data does NOT require a round trip.

    Also, everybody's client has roughly the same load.

    Some may call it P2P (and some may say XBL can't be P2P because it allows more than 2 clients), but it's really a truly distributed app.
     
  2. BrianB

    BrianB Producer

    Joined:
    Apr 29, 2000
    Messages:
    5,205
    Likes Received:
    1
     
  3. Michael St. Clair

    Joined:
    May 3, 1999
    Messages:
    6,001
    Likes Received:
    0
     
  4. BrianB

    BrianB Producer

    Joined:
    Apr 29, 2000
    Messages:
    5,205
    Likes Received:
    1
     
  5. Michael St. Clair

    Joined:
    May 3, 1999
    Messages:
    6,001
    Likes Received:
    0
     

Share This Page