Im going to say this first- I am making this for fun, no profit. I am using C# XNA. My current algorithm for lighting is a recursive method. However, it is _expensive_, to the point of one 8x128x8 chunk calculated per 5 seconds. There are two options: Are there other lighting methods that will make variable darkness shadows? Or is the recursive method good, and I am just doing it bad? It just seems like recursive stuff is fundamentally expensive (forced to go through around 2 mil blocks per chunk (a guess)). I was thinking about using a method similar to raytracing, but I have no idea how this would work. Another thing I tried was storing lightsources in a List, and for each block getting the distance to each lightsource, and using that to light it to the correct level, but then lighting would go through walls.