HI i am a software engineering student in his second-last year.
I am proficient with C,C++,C# and java programming languages, and being a student of engineering I have studied calculus, vectors etc in both 2D and 3D & various other mathematical, probability and statistical topics.
I have made several 2D games, my most recent being a Super Mario-like game with side-scrolling and multiple levels.
Due to my these small game projects,i have become really interested in making games.
So now i want to move ahead to learn to make games in 3D.
Now I know that there are several game engines available which can take care of rendering details and other "low-level" stuff for me...
My Question is:
1) Is it a good idea to learn to program everything yourself, from making 3D shapes, terrains (using polygons meshes) etc, to programming mechanism for collision detection, lighting etc, considering my motive is to learn how to make games in 3D (but am not too eager to get into the game industry quickly, want to build a solid foundation first)
Or could I do without these details & work on the abstraction-level which the game engines (like UDK) provide ??
3) If I should try to develop from scratch, then can anybody suggest which API to use: Direct3D or OpenGL?? (which i would be more comfortable with, in light of my above mentioned skills) & can anybody also give me references to some good books, reading materials, tutorials, etc to get me started?? (I wouldn't mind theory as long as it helps me make a sound foundation)
Many Thanx in advance (for even reading my question, i know it's lengthy... but i need a DETAILED answer... :D :D )