[CF-Devel] cfclient issues

crossfire-devel-admin at archives.real-time.com crossfire-devel-admin at archives.real-time.com
Sun May 18 20:09:58 CDT 2003


Andreas Vogl wrote:
>
     
      On some machines (like SUNs at my university), I'm still bound to
     
     >
     
      use cfclient.
     
     >
     
      I've noticed that cfclient has a few problems:
     
     >
     
     
     >
     
      - Darkness doesn't work. The tiles are either fully visible or pitch black.
     
     >
     
        I suspect this might be due to the transparent darkness code not working
     
     >
     
        or something?
     
     >
     
     
     >
     
      - Fog of war doesn't work either. Probably related, but I'm not sure
     
     >
     
        how it is supposed to work. As it stands, I can't tell which squares are
     
     >
     
        really visible and which are fog of war. That's quite confusing.
     
     >
     
        The worst thing about it is that the fog of war tiles stay like "frozen"
     
     >
     
        after moving out of sight. That means there are sometimes images
     
     >
     
        of myself/spell animations/bolts etc which stay "frozen" on those tiles.
     
     
  I fixed those up - they both use stippling logic (given the opaque nature of 
Xpixmaps, we can't easily do clever things like adjust the color in the images 
themselves).  I don't know what that feature was removed, but I'm the one that 
probably did it :)

>
     
     
     >
     
      - When large parts of the map view change (like when applying an
     
     >
     
        exit, or casting dimesion door) there are display errors for a short
     
     >
     
        moment. Some tiles go black/white for a split second, then return
     
     >
     
        to normal. That's not terrible, but it didn't happen in older versions.
     
     
  I actually see it on the gtk client at times.

  I looked into it, but can't remember the details now.  I seem to recall the 
problem was really that the server was sending to map commands, and thus the 
client re-draws the map two times.  I don't remember the details on why the 
server sent two commands, but I recall there was a decent recent for it.  I 
think in the case of exits, it sends the idea to scroll the map to the client 
(since the player moved in some direction), but the exit then transports the 
player to another map, so everything has to get re-drawn at that point.

  This is indirectly caused by the fact that the client draws the map whenever 
it gets new map information from the server.  A smoother approach would be for 
the client to draw the map when what is has displayed is out of date with 
respect to information it has from the server, and when there is no pending data 
to be read from the socket from the server.  This has the advantage that the 
display is pretty much the must cpu intensive portion of the client - thus, if 
you were playing on a slow machine, the map update may skip a few frames, but at 
least not be lagged (I'd rather see current state of things than a complete 
record of things that may be out of date).

>
     
     
     >
     
     
     >
     
      Is cfclient kinda "out of support"? Well, I can understand if it is, but
     
     >
     
      it would be really great if the issues could be improved with some
     
     >
     
      minimal effort:
     
     >
     
      1. If it was possible to disable fog of war for example, that would do fine
     
     >
     
        for cfclient. Fog of war is nice but really not neccessary, so instead of
     
     >
     
        having a "broken" fog of war, I'd much rather disable it.
     
     >
     
      2. It would also be great if the old darkness code could be reused for
     
     >
     
         cfclient, where patterns of black and transparent pixels used to
     
     >
     
         "simulate" darkness. That was not perfect maybe, but good enough,
     
     >
     
         and a lot better than the current state (not working). ;-)
     
     
  Your wish have been met - I'll check in my changes sometime this evening.  I 
don't remember why I didn't fully implement the display logic in the client - 
perhaps I forgot or lack of time.  But it was ignoring things like darkness and 
fogofwar on the space.  Now it should properly honor the -fogofwar and 
-nofogofwar as well as -darkness and -nodarkness flags.

  the support for the x11 client is so-so.  The fact that it compiles and runs 
and use the same basic logic as the gtk client means that it is not that hard to 
support.  However, bug fixes for it are not high on my priority list, and highly 
unlikely that there will be much in the way of new features added to it.



_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list