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

Re: cheating & LOS



>  But that is just part of the perniciousness of client
>  omniscience cheating.  It is completely and 100%
>  undetectable from the server side.  Unless you look over
>  the shoulder of every player all the time, you are never
>  going to find out whom to lock out.  And as that is so,
>  every cheating player gets a free advantage.  Honest
>  players have no way of knowing if they are the only ones
>  who labour under that disadvantage and so can rationally
>  only decide to become cheaters as well.  You'll end up
>  with a system without LOS.  As I've said before, if that
>  is what you want, lets debate it before we go to all the
>  trouble of implementing LOS algorithms which nobody will
>  use in the end anyway.

Okay, I've been converted to LOS on the server, but NOT because of the  
cheating issue.  LOS on the server allows for updates in ONE place, rather  
than bazillions of places.  Also, it allows for cool effects like  
torchlight and stuff like that.  *I* wouldn't want to write those  
algorithms.  Sure, we could take the sources from one client and port them  
to another, but it's much easier to do it in one place.

I don't buy the whole idea of LOS on the server reducing bandwidth.  You  
still have to say, "Here are all of the changes."  This can encompass  
squares all around you, not just in front of you.  Take a look at the  
Friendly Giant's Tower.  The first floor with all of the Kobolds would  
force updates in front of you as well as all around.  The updates could  
happen to about 3-4 lines behind you, including squares to your sides.

If I understand correctly, you'd have to transmit every VISIBLE square  
every time you moved?  Is this correct?  Please, DON'T FLAME ME; there  
have been so many suggestions and alternatives posted in the last few  
days, it would be impossible for anyone to keep them all straight.  I  
think we each know how we would want it, and have a vague idea of how it  
would be in everyone else's way.

Anyway :), it seems like you have a tradeoff: you could transmit some  
unknown number of squares everytime you move, indicating the map section  
to be displayed at a given coodinate, and hope that that number is usually  
small; or you could transmit a fixed number of maps sections to be  
displayed every time you move, along with a LOS mask.  This way, you're  
transmitting exactly 11 squares every time you move, and a coulple of  
bytes which would represent the visibility mask.

This seems like a good solution to me.  Of course, it doesn't get rid of  
clients that would simply ignore the visibility mask, but if you want to  
talk about tranmission and optimization, it seems to make a lot more sense  
to work with constants.  It would be easy to optimize the above method,  
since you know exactly how much map information you would receive every  
time you moved.

-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...