[crossfire] Lighting changes.

Mitch Obrian mikeeusaaa at yahoo.com
Tue Mar 29 10:17:47 CST 2005


One thing about light not going through walls. What if
the lightsource is under the wall? (I use this to
illuminate certain points in the underground area of
the Dark Elf lord's castle in MLAB). 
/me also uses darkness and likes the
change-to-brightness at load.... so he dosn't have to
change the files :P

Lighting looks great now, hope it goes into CVS soon.
Perhapse being able to set the light color next
(default is white... unless you set color (hexcode)?

--- Mark Wedel <
     
     mwedel at sonic.net
     
     > wrote:
>
     
     
     >
     
        After working on the opengl draw client and seeing
     
     >
     
      the circular lighting 
     
     >
     
      patch, this brings up the discussion of more
     
     >
     
      wholesale lighting changes.
     
     >
     
     
     >
     
        The current lighting with max brightness of 4 is
     
     >
     
      woefully outdated.  It made 
     
     >
     
      sense back when the max map size was 11x11, and we
     
     >
     
      only cared if a space was lit 
     
     >
     
      or not (and not how well lit).
     
     >
     
     
     >
     
        With 25x25 map sizes and graduated lighting, this
     
     >
     
      doesn't work nearly so well.
     
     >
     
     
     >
     
        I'd personally like to see lighting reworked with
     
     >
     
      many more levels.  Perhaps 
     
     >
     
      32 (0->31) as that fits nicely in 5 bits for
     
     >
     
      client/server protocol purposes.
     
     >
     
     
     >
     
        This is where one of my concerns (additive light)
     
     >
     
      with the patch comes in. 
     
     >
     
      Right now, not a big deal.  But a player shouldn't
     
     >
     
      be able to light 3 torches 
     
     >
     
      and be as well illuminated as something really
     
     >
     
      really bright (which is what 
     
     >
     
      you'd need for a lighting of 9).
     
     >
     
     
     >
     
        Doing this from a basic level isn't hard (change a
     
     >
     
      few defines, change a few 
     
     >
     
      archs and maps).  The problem is existing maps with
     
     >
     
      'darkness' set.  if the 
     
     >
     
      number of lightlevels is changed, all those values
     
     >
     
      are perhaps meaningless.
     
     >
     
     
     >
     
        I'd also like to see some changes on how darkness
     
     >
     
      is handled/calculated.
     
     >
     
     
     >
     
        Right now, darkness levels is calculated for each
     
     >
     
      player.  This doesn't make a 
     
     >
     
      lot of sense.  Imagine scorn at night - the
     
     >
     
      darkness/brightness for all the 
     
     >
     
      spaces are the same for all players, so there is no
     
     >
     
      reason that how dark/bright 
     
     >
     
      the square is should be calculated for all the
     
     >
     
      players.  So rather, just like 
     
     >
     
      there is a 'light' value for each map space, a
     
     >
     
      darkness field would be added, 
     
     >
     
      and the server woudl fill in those values
     
     >
     
      universally.
     
     >
     
     
     >
     
        This, the logic to determine if the player can see
     
     >
     
      a space would be checking 
     
     >
     
      the players blocked line of sight, and checking the
     
     >
     
      darkness of the space.
     
     >
     
     
     >
     
        This also helps out the case of know if a creature
     
     >
     
      is in a lighted space - 
     
     >
     
      simply can check the light level of the space -
     
     >
     
      don't need to find light sources 
     
     >
     
      and calculate, etc.
     
     >
     
     
     >
     
        There are a couple oddities that would have to be
     
     >
     
      handled:
     
     >
     
      1) players currently can see at least a few spaces
     
     >
     
      on outdoor maps - this would 
     
     >
     
      need a little special handling.
     
     >
     
      2) Players that have see in dark effecively see
     
     >
     
      everything as a little less dark 
     
     >
     
      - this could presumably be fairly easily handled
     
     >
     
      3) current darkness levels basically determine how
     
     >
     
      much the players can see 
     
     >
     
      about them without any lightsource.  A low darkness
     
     >
     
      means you can see a few 
     
     >
     
      spaces around you without any light source.  Trying
     
     >
     
      to maintain compatibility 
     
     >
     
      with this gets tricky.  Perhaps easiest is to add a
     
     >
     
      new map header value, 
     
     >
     
      something like brightness which represents your
     
     >
     
      default viewable area very 
     
     >
     
      clearly.  Maps with darkness are converted to this
     
     >
     
      brightness value at load.
     
     >
     
     
     >
     
     
     >
     
        One wish also was for light not to go through
     
     >
     
      walls.  This is perhaps doable, 
     
     >
     
      more so if light is calculated on a per map basis,
     
     >
     
      as extra cost of doing this 
     
     >
     
      is not quite so bad.  But you get cases like this
     
     >
     
      (pardon my ascii art):
     
     >
     
     
     >
     
     
     >
     
      -----------------
     
     >
     
         A
     
     >
     
      --------------
     
     >
     
                 B
     
     >
     
      -----------------
     
     >
     
     
     >
     
        B is holding a lightsource, A is other player. 
     
     >
     
      PRoblem is that light is a per 
     
     >
     
      space thing, so A will see the wall down the
     
     >
     
      corrider illuminated (note this 
     
     >
     
      happens right now).  The only solution I can think
     
     >
     
      to this is to make sure walls 
     
     >
     
      are 2 spaces wide.
     
     >
     
     
     >
     
        However, related to these changes would be
     
     >
     
      changing how the client is notified 
     
     >
     
      of light changes.  Better effects can be done if the
     
     >
     
      client knows where the 
     
     >
     
      light sources are - that'd actually use less
     
     >
     
      bandwidth.
     
     >
     
     
     >
     
        But the case above gets compounded in this example
     
     >
     
      - how does the client for 
     
     >
     
      player A know that B's light shouldn't go through
     
     >
     
      the wall (suppose B has a 
     
     >
     
      really bright light that will reach spaces that A
     
     >
     
      can see).  Is this a case we 
     
     >
     
      just shouldn't worry about (its only cosmetic)? 
     
     >
     
      Notify client of what spaces 
     
     >
     
      block view (light) so client can adjust accordingly?
     
     >
     
     
     >
     
     
     >
     
     
     >
     
      _______________________________________________
     
     >
     
      crossfire mailing list
     
     >
     
     
      crossfire at metalforge.org
      
      
     >
     
     
     
     http://mailman.metalforge.org/mailman/listinfo/crossfire
     
     
>
     
     
     

		
__________________________________ 
Do you Yahoo!? 
Make Yahoo! your home page 
     
     http://www.yahoo.com/r/hs
     
     
    


More information about the crossfire mailing list