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

client/server once again




Thanks to Mark (thanks again (and again!)), we now have a working version of
CrossFire.  Time to talk about the client/server problem once again...  Here
is a summary of what has been said on this list, with some ideas of my own
thrown in:

* The server will be responsible for all interactions between players and
  between each player and the map, monsters, and so on.

* The client will only handle display-oriented stuff.

* The client sends all commands issued by the user directly to the server,
  with almost no preprocessing (i.e. "move north", "eat food", "apply ...").

* The server periodically sends the following information to every client:
  - the current player position
  - modifications to the map, other players positions, monster positions
  - each time a new area of the map is entered, the server sends a map chunk
   (say, 10x10 or 30x30) to the client, with all the objects in it
  - the modifications to the inventory or player status

* The client may handle the Line Of Sight algorithm.  If one wants to cheat
  (using a drone, for example), he could do this even if the server only
  sends the visible bits to the client.  This would only require a slightly
  more complex algorithm, but won't prevent nasty guys from doing it.  So,
  why not do the LOS on the client side?  This would free more processing
  power on the server.

* We can have several clients, using different display techniques.  We could
  even have a 3D-client (if you have ever played DOOM on a PC, you know what
  I'm talking about).  This may be silly, but why not?

I could start working on that as soon as 0.90.2 is stable.  Any comments?

-Raphael