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

Re: A quick draft of a preliminary proposal for a possible version of the crossfire protocol



All this talk of transmitting pixmaps and maps and items and ... is all  
well and good, but I'd also like to consider the possibility of having a  
"smart" client.  A client that has its own pixmaps (or tiffs, or picts, or  
.bmp's) could just receive placement of an item, and the client could  
display it.  This raises at least two issues, one good, one bad.

The client could display a native image, with whatever  resolution and  
color depth they wanted.  This allows for some REALLY nice client  
implementations that take full advantage of the native client environment.

The disadvantage is in getting updated pixmaps.  If a pixmap changes or a  
new one is added, it has to be transmitted and translated into some sort  
of displayable format on the client.  This isn't too difficult, but it  
would just look funky on the client side (e.g., a jaggy, scaled black and  
white pixmap on a 24-bit color machine).  Of course, the client could  
implement a "default" pixmap that could be displayed for different  
archtypes.

I would advocate that the protocol should definitely be a  
transmit-on-request protocol; the server should assume that the client  
"knows" about everthing, unless the client says otherwise.  This allows  
for a virtually unlimited client that could maximize the native  
environment (YES!) and use only the barest resources of the server.

LOS, as well as other compute-intensive operations, could be computed on  
the client, unless the client says "no, I can't compute this".  This would  
allow the server to be just a glorified event-processor that maintains a  
matrix of items and movements.  Then, all that's transmitted to the client  
is the barest of information in order to represent the state of the  
current map.

The worries about cheating, I think, are unfounded.  It would be easy to  
cheat, no matter how you implement the client/server architecture.  Carl  
has already mentioned the possibility of "robot" clients that cruise  
around picking things up.  Your average user wouldn't be able to do this  
type of thing, and probably wouldn't care to.  Only a handful of hackers  
(like all of you) would be able to.  However, anyone that actually writes  
code for Crossfire should be smart enough to cheat, regardless of what  
restrictions we put in :)  So, we shouldn't limit the possibilities of  
things like LOS computation.

-jason
____________________________________________________________
 Jason Fosback, Systems Engineer   | No sir, I didn't like it
  --- Paradigm Systems Corp ---    |                 -R&S
Internet:  jason_fosback@psca.com  | Star Trek:
NeXT mail: jason_fosback@psca.com  |  The NeXT Generation...