[crossfire] Server map redo: movement types

Mark Wedel mwedel at sonic.net
Wed Aug 31 01:45:26 CDT 2005


Anton Oussik wrote:
>
     
     
     >
     
     
     >
     
      On 8/30/05, *Brendan Lally* <
      
      brenlally at gmail.com
      
      
     >
     
      <mailto:
      
      brenlally at gmail.com
      
      >> wrote:
     
     >
     
     
     >
     
          Additionally MOVE_HORSE, being much faster than walking, but less
     
     >
     
     
     >
     
          and MOVE_WAGON, which would be able to carry vast amounts of items, 
     
     >
     
     
     >
     
     
     >
     
      And your face should change to a mounted figure or horse driven 
     
     >
     
      carriage. Maybe also include MOVE_SHIP when you get a ship, which can 
     
     >
     
      travel very fast, but can only dock in ports. Then you have to navigate 
     
     >
     
      between ports, or perhaps have director-driven shipping routes, so you 
     
     >
     
      get on he route and your ship sails itself using directors to your 
     
     >
     
      destination.
     
     
  Note that you are heading down a different conversation or something that the 
proposed code will enable, but is not something that will be done in the 
proposal at hand.

  The basic design is to change how it is done, and that is what I'm looking for 
comments on right now - less so everything it will enable.


>
     
      Speaking of image transformations, when something moves from a square A 
     
     >
     
      to a square B it currently stays in A all the way until it jumps to B. 
     
     >
     
      Could the new protocol provide a way for the transition to take n 
     
     >
     
      seconds (or ticks or frames), so arrows would really fly, and monsters 
     
     >
     
      would walk at you instead of jumping, the land would scroll by as player 
     
     >
     
      walks on it, and spells would propogate more smoothly? I don't know if 
     
     >
     
      this is even vaguely possible given that currently CF is completely 
     
     >
     
      tile-based.
     
     
  It isn't really possible.

  The main reason is that the server only sends map updates to the client at 
about 1 every 8 seconds, and that is how often the client draws it.

  So even if the server did track this incremental movement and send it to the 
client, that alone won't be enough.  Things that move fast will still hop a 
square (or maybe half a square depending how fast) at a time, etc.

  Also, any such calculations coudl only be done as a best guess where that 
object is going.  Objects always move a full space when they move - what changes 
is how often they move.  Changing that logic is very complicated and is likely 
to cause a much higher load on the server.

  But what that means is that the monster may be moving towards you, but maybe 
changes direction.  So you'd get odd cases like the monster is half a space 
towards you, but then jumps a full space in some other direction or something.

  So the short answer is this really can't be done without a major rewrite. 
With some hints, the client could perhaps guess at this (for all objects taht 
are moving, client could be informed what direction they were last moving and 
how fast) and do its own calculations, but the result is sure to be flawed for 
reasons above.



    
    


More information about the crossfire mailing list