TheGoop is absolutely right!

Shop around for an engine first and if it doesn''t suit your needs then make one yourself. You will learn a lot in the process. Even if you want to make one from scratch it wouldn''t hurt to take a look at source code of some of the engines that are out there. Genesis3d, Quake1, Crystal Space, Blitz and others. I agree though, that you should know how the API like opengl, glide, d3d work and know how to make a software engine (portals/bsp/csg/pvs, etc.) before making your own engine or using some else''s engine. I say this because most engines out there are a mix between software and hardware rendering. Anyway I think I contributed to beating this topic to no end so I will stop

Jerry