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>