Though I’m relatively new to the 3d engine field,I think I can answer your questions.
- how do I go about making a 3D engine
First,find some good reference books.If you really want to make a 3d engine,you need to understand some of the basic concepts and math involved with the process,even though you may never have to see them.The Black Art of 3d Game Programming is a good reference.The author of this book does a very good job of explaining the math involved with 3d games,and he touches on just about every aspect of 3d engine creation.The book is intended to be used for dos games,but the lessons that you learn will apply to real projects.
If you’re really crazy about writing your own equations and formulas,you might want to check out Computer Graphics:Practices and Principles.This book is not for the faint of heart,and it can be very dry reading,but it will tell you more about underlying math involved in making a 3d engine.You might want to find a copy of Introduction to Computer Graphics.It’s a textbook version of Practices and Principals,and it’s quite a bit easier to follow.
You also might want to check out some sites on the net for 3d tutorials.The 3d Blackhole Tutorial is a good read,if you can find it.I don’t have the URL for it anymore.
You might also want to look at the source code for commercial game engines to see how they’re structured.Source code is available for Doom,Quake I,Hexen,Heretic,Descent,and probably a couple other games I can’t think of right now.Don’t steal code from them,though.It’s much better to learn on your own than to steal code from someone else when you can’t figure something out.
And,finally,get a copy of the OpenGL Reference manual(AKA the Red Book).It explains every function in OpenGL,and is really handy to have around.There’s a version of it available online,but I really reccomend getting the book,because it is much more convenient.
- where does OpenGL fit into all of this,
OpenGl will be your rendering API.OGL is very powerful,but more importantly,very easy to learn.In 3 days,I was able to make a very basic First Person Shooter engine.It’s flat shaded,and there is no collision detection,but it’s still pretty amazing.OGL is really the quickest path to success if you’re a beginner,or even if you’re an advanced coder.OGL code is also platform independent,unlike Direct X.So,you can have your engine compiled for all sorts of bizzare platforms,without having to touch much of the OpenGL code at all.
- is learning C++ really neccesary for the 3D engine I want to make
This is a matter of debate.You can write the engine that you want to write in C without any problems.I personally prefer C over C++,because C++ adds a lot pretty useless functions,from my perspective at least.Anything that can be done in C++ can be done in C.You might have to work a little harder in C in some cases,but that’s pretty rare.C should suit you just fine.Doom and Quake were written in C.
I hope I have enlightened you…
Chris