Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cheating & LOS
- To: crossfire (at) ifi.uio.no
- Subject: Re: cheating & LOS
- From: "Carl Edman" <>
- Date: Thu, 14 Apr 94 19:45:42 -0400
- Reply-To:
From: Jason Fosback <>
> > But the protocol I proposed does not require you send every single
> > visible square every time you move. It requires the server to
> > send every square once when it _becomes_ visible. After that the
> > server doesn't need to concern itself with that square at all
> > until it becomes invisible again. And by invisible I mean outside
> > the LOS -- just having items (like monsters or more common
> > objects) on the square does not make it invisible.
>
> Right, but squares outside your line of sight come and go
> continuously, every time you move.
That's for sure. So do the number of squares within the 11x11 square
centered around the player. It is that which you propose should
always be sent to the client requiring the update of 11 squares in
every single move ? It is doubtful that my proposed protocol will do
worse than that.
> Take this ASCII (!) example:
Yes, lets take your worst case scenario and calculate the cost. I
believe what you suggest is this with the player moving from A to B.
| |
| |
| |
| |
----+ +------------
A B
----+ +------------
| |
| |
| |
| |
Cost under your scheme: 9 step * 11 MAPs/step = 99 MAPS
Cost under my scheme: The entire cross-corridor is mapped in (once) for
a cost of 3x11 MAPs. For the remaining 6 steps only the 3 new squares
in the narrow corridor need to be mapped in for a cost of 6x3 MAPs.
Total cost: 51 MAPs.
So even in your worst case, the proposed protocol uses almost half the
number of MAPs which your proposed protocol requires !
> Alternatively, since this is a little redundant, you could make the
> move command a little more restrictive (since you're always in the
> middle of the screen:
>
> C: MOVE [N,NE,E,SE,S,SW,W,NW]
The move command needs to have more arguments, because it is used not
only to move yourself but also all items i.e. dropping/pick up is done
by the MOVE command. The reason the proposed MOVE allows you to give
an arbitrary location is that this allows clients to request long moves
without being limited by a round-trip delay for every step. I would
expect the server to internally convert a MOVE to a distant location to
a straight-line approximation by single steps.
In particular a client would express a run command (currently trigged
by the control key in crossfire) by sending a command like this:
MOVE <player-tag> <current-x-coordinate> <some-huge-number>
This command would make the player character run as far south as
possible as quickly as possible.
Carl Edman