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

Re: CF: client/server



> 
>  As a quick note, there are docs in the client distribution that gives a
> reasonably detailed description of the various lower level options.  Also,
> all the docs that Eric sent in his last message have been previously put
> in with the client.
> 

Yes and quite helpful.

>  Generally speaking, this is how it works:
> 
>  The client sends high level commands to the server for player actions.
> Meaning, that if the player clicks on the map, or presses a key, it
> translates that into a 'move north (or appropriate direction)', and does
> not send something
> like 'key XX was pressed or button yy pressed.'.  This also means the
> keybindings are handled on the client side now.
> 
> For items, the client interperts buttonpresses the same way.  If you click
> on something in the inventory, it will send an examine, drop, or apply
> command with
> the item id.
>
>  On the server side, line of site and animations is calculated on the
>  server. 
> The server than packs up the changes from the last frame, and sends them to
> the client. 

Hmmm, I think the root of my confusion is the Protocol file in the client. 
What's outlined there is NOT what happens today.

> In practice, animations should be handled by the client at
> some point in time.

Might want to throw in something to detect whether the client has a 'full' set
of pixmaps instead of sending them over the link (although, in practice, it
works better than I thought it would).

What I have attempted to do is to create some documentation of the conversation
between the client and server to aid the effort to create an X-less client.

 eutl.gz:	describes the message protocol
 protocol.gz:	describes the client/server conversation
 maplayer.gz:	describes the map layer packing format

eutl.gz

maplayer.gz

protocol.gz