Since you guys have been talking about Duke Nukem 3D and Doom and stuff so much in this thread I thought I'd share this with you guys:
[yt]
https://www.youtube.com/watch?v=HQYsFshbkYw[/yt]
It's an explanation of how to make a 3D engine with the same basic functionality as Doom or Build. The engine is software based so you get to see how the most fundamental steps of rasterization work as well. I hope you guys enjoy it!