lots of ways to do it shadowmaps shadowvolumes etc.
because they try to cast of every lightsource there pretty heavy on cpu time though, so its pretty much needed to cull sources you cant see or the engine would slow to a crawl.
sorry not good at explaining
