Mark Wedel wrote:


On thinking this over some more, there is also another complication/issue with lighting.

As said in the original message, instead of the server communicating darkness of each space, it communicates the location of the lightsources and color of those sources.

However, what do we do when the source of the light is not visible to the player? One could envision something like long hallway, with light pouring into the hallway form the rooms that branch off from it, but one can not see those sources.

 To me, there are really 3 options here:

1) Only send info on light sources that are on spaces player can see. This is safest and isn't hard to do, problem is that it is probably mostly useless (vast majority of lightsources will not be visible to player).

2) Send info for lightsources that illuminate any spaces player sees. While this gives information away, one could argue it is a pretty minor leak (EG, given how current client communicates light levels, once could potentially figure out where light sources are based on illumination of different spaces). It does complicate things some, because we need to record location of light sources that illuminate on the space - however, that probably isn't actually that hard, since we'd have to go by 1 by 1 for the light sources and see what they illuminate anyways - the issue here is that we now need to record that info (light source and 10,10 is illuminating this space).

3) Send all light sources for map area, regardless if visible or not. Easiest to do, but starts to give away a fair amount of informatin, especially for non static light sources (hmmm - a lot of light behind that wall - must be something there) - probably not a good option.

Personally I think that option 2 is the best choice, though it's logic would be somewhat more difficult to code and arguably could give some information away. I think that the information given away in this way is rather minimal and unimportant. I think that option 3 would give away too much information, and option 1 would cause rather ugly display issues in many cases.

Likewise, this also means the protocol needs some support for negative coordinates (player could be approach from west after all).

I don't think this would be a major issue, just send a signed integer instead of unsigned.

Also, though this is somewhat of a different topic, I think with these changes, would be a good time to try again at implimenting additive lighting: I am thinking the main advantage of additive lighting, is how it fixes display uglieness when a player who is lit up steps on a lamp, causing the overall brightness in the area to drasticly decrease. I think a good solution would be to do additive lighting with this restriction: add all no_pickup objects, and the brightest other object ontop of them.

Alex Schultz

_______________________________________________
crossfire mailing list
[email protected]
http://mailman.metalforge.org/mailman/listinfo/crossfire

Reply via email to