[MUD-Dev] Quake II has gone GPL

shren shren at io.com
Wed Mar 20 06:16:49 CET 2002


On 19 Mar 2002, T o F wrote:
> On Mon, 2002-03-18 at 00:07, shren wrote:
 
>> And then there's the information that you surely can't commuicate
>> to the client, such as the current position of in-game mobiles
>> that you want to make 'solid'.
 
> What do you mean by making "ingame mobiles" "solid" ?

Sorry, let me clarify.
  
If the map is static or static enough for the client to have access
to a full copy, then the client can generate the same pathfinding
result as the server.

Unless, you want non-static things to also block pathfinding.  The
best example here is other players.  The client can only guess at
exactly where another player is at any given moment, based on
current location and velocity.

  ######
  #    #
  #    #
  ## ###
   A

Imagine the block above as a room and A as a character wanting to
enter the room.  In absence of other players, both the client and
the server know where the player is and where the room is, so you
can do client-side pathfinding pretty well.

  ######
  #    #
  # B  #
  ## ###
   
  
 A


Now, imagine that both B and A are players, and the current state of
knowledge on the client is that B is going down leaving and A is
going to the upper right and entering.  B gets to the doorway a bit
before A (assuming that both B and A move at the same speed), and
thus A will be entering the doorway after B and thus, there's no
collision.

However, unbeknownst to A's client, what B actually does is run into
the doorway and stop, in a frantic attempt to keep A out of the
room.  A's client has no way to know that B did this, but B does,
and thus a sudden change in speed makes all of A's client's
projective pathfinding worthless.

What seems to happen in most games I've played extensively is that
either no collision detection is done, and A can run through B.

Or that both the server and the client do collision detection, the
server to determine exact position and the client for cosmetic
reasons.  The client tries to make best guess decisions about where
you can go, and show you going there, but if it ever makes an error
the server overrides and snaps you to the correct place.

In the case above, A would see on his screen himself entering the
building, the server would note that A can't get inside the
building, and the server tells the client to relocate A outside the
building.

I'm pretty sure you can see this effect by hopping on UO and having
someone cast paralyze on you.  You'll be running along, you'll get
paralyzed, and you'll snap back to the spot you were paralyzed at.

--
 x
 xxx
  x

_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list