Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

TCP vs. X Window




Is crossfire going to use the TCP protocol one of these days ?  Here are a
few advantages and disadvantages of this approach :

- Lower bandwidth.  If the necessary information is stuffed in a few packets,
  the game will use the network more efficiently than the X Window protocol.

- If we still use the `client-server' technique, much of the work could be
  done by the clients.  Naturally, the graphical interface and the I/O would
  be managed by the client.  But the inventory and the vital stats could also
  be left on the client side.  If fact, the maps and the interactions between
  the players could be the only things handled by the server.

- It's not easy to decide wich kind of information should be put in the
  packets, and how.  This will certainly require a great amount of rewriting.

- If the maps are readable by any `client', these is no need for a `server' :
  it's possible to create a truly distributed game.  I tried this technique
  with a friend, for a game that was to be called `xhover' (a multiplayer,
  3-D graphical hovercraft battle simulator - no kidding !).  Our project is
  at rest for the moment, due to some problems in 3-D graphics speed, but
  the communication part is fully working.  There are some robust `login' and
  `logout' procedures that allow any new client to connect during the game.
  Each client keeps the others informed of its player's motions and there's a
  good level of synchronism.  And there is no need for a `server' : the game
  lasts as long as there is at least one process running.  If we have done it
  for our arcade game, this could be done for crossfire ;-).

- If we use a robust protocol, the game could survive a X-server or host
  crash.  This is *very* useful if there are 30+ players in a game : if, for
  some reason, one workstation goes down, most of the players would be
  unaffected.  But the `graceful degradation' is not the easier part of the
  protocol...

                                               Raphael Quinet
                                       <quinet@montefiore.ulg.ac.be>