I have always had lighting problems with blender (GLSL), whenever I add a lamp, it goes through all faces, so a lamp’s light on one side of the map would show up on the other side. The only light I found that didn’t pass through faces was the spotlight (doesn’t light in all directions, so doesn’t help). I also lowered the distance of the lamp, but that didn’t help. I’ve seen some really good lighting in most BGE demos. how is this achieved?
I know all about making shadows, spotlights, and other stuff. I just need to know how to set up lamps right (so that the light doesn’t go through walls).
Seperate different sections of the map onto different layers. Then add a lamp to each layer and set it to only light objects on it’s layer. That way an outdoor lamp wont light any objects on an indoor layer.
Bake as much of the lighting as possible then just have a couple of lamps for overall level/map illumination.
Use python to dynamically control each lamps level (or add/remove them) as the player enters different areas.
Alternatively, use logic bricks to add and and remove lamps accordingly.
Hope this helps!
Another thing that helps is to set the Sphere button on - this will make it so that any surfaces outside of the range of the light won’t be lit by it at all. I assume that the problem you’re having is in part that a lamp can light across the whole map, regardless of its distance setting - the Sphere button can help you out with that. Battery’s solutions are also good.