The right choice of implementation really depends on the game, its assets and environments, and current hardware capabilities
Original scene rendered from "light camera" and not "real camera"
Ray-tracing, but with fewer bounces -- approximates with a "russian roulette" early termination
Lightmaps: http://www.flipcode.com/archives/Light_Mapping_Theory_and_Implementation.shtml
Stencil Buffering: http://joshbeam.com/articles/stenciled_shadow_volumes_in_opengl/
Shadow Mapping: https://en.wikipedia.org/wiki/Shadow_mapping and https://www.digitalrune.com/Blog/Post/1765/Shadow-Acne and http://learnopengl.com/img/advanced-lighting/shadow_mapping_acne_diagram.png
Raytracing:
Hybrid: http://www.gamasutra.com/blogs/AlexandruVoica/20140318/213148/Practical_techniques_for_ray_tracing_in_games.php
Path-tracing: https://home.otoy.com/render/brigade/