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

random thoughts




These are some random thoughts we had after having played crossfire for an
evening, examining the source code a little, and reading some of the archived
mail.

1) Pixmaps.

A big win.  The amount of speed lost in overhead here from using the font is
negligible.  We've written programs which do highly interactive graphics in
the grid-like way crossfire does, and pixmaps were just fine.  Of course,
rendering speed would be even less of a concern if crossfire used a client and
a server (see below), since then the one crossfire process wouldn't have all
the rendering load.  In other words, it is concievable that the protocol the
game server sends to the clients would be shorter than the protocol the game
clients would send to the X server, and the I/O load would therefore be better
distributed across the various machines playing.

Storing all of the pixmaps on disk in separate files really isn't an issue
either.  You either "suffer" with a lot of files (big deal) or go ahead and
store them all in one file anyway and write a hacked version of the pixmap
reader to go and get them all at game startup -- much like using a font, only
less reuse of Xlib code.  This is not a very difficult problem.

2) Client-server model.

I strongly suggest that you make this move as early after v1.0 as possible. 
There are plenty of GREAT X games which really want to have a player side and
a server side, but have never gotten that far.  These include XTank, XConq,
and XBattle -- three of the most (if not THE most) popular multi-player X
games.  XTank is in version 5, XConq version 7, and XBattle version 2 (last I
checked).  In all of these cases, we suffer away with one process serving the
entire game, where really each player should be running their own display
program that talks to a central game server.  It would be a shame, IMHO, if
this happened again here.

3) Saved map state.

One feature we'd like to see is the possibility of certain maps not losing
their state after the game ends.  That is, if we ream out the bakery, and the
game is started in the right mode, then it will store the fact that the bakery
is clear for the next game.  Maybe players could be "tied" to a certain game. 
If they leave a certain game, then all the artifacts or special items they
have leave them.

This would make team play possible ...

Anyway these are all just ramblings, and I hope they don't sound too negative
or discouraging.  Crossfire remains a very good game.

--joe