Step1: You need to know what game you want to create (although I guess you could figure that out as you go along).

Step2: You need to understand some of the mathematics that goes into virtual space (vectors, matrix math, quaternions, etc)

Step3: You need some grasp of basic Newtonian Physics for stuff like acceleration, velocity, collusions, etc. . . .

Step4: You need to understand how 3D space is simulated on the computer screen.

The book that I started with for this is called : Black Art of 3D Game Programming -- by Andre LaMothe, it does not cover stuff like OpenGL or Direct3D; however it discusses all the basic pronciples behind 3D games, including building your own rendering engine. It is kind of an old book, so don't expect info on the latest developments in 3D game graphics, but I recommend it as a good place to start.

Step5: You need to decide what you are going to start with, in terms of 3D rendering systems.

Option A:You can create your own rendering system from scratch (it would not be a bad idea to build a simple 3D rendering engine to understand how things work. But, in terms of something you'd actually use in your games, I'd advise against re-creating the wheel. Building something like OpenGL would be a great deal of work and it would be even harder to make your system take advantage of hardware acceleration. Still, if you're going to make your own language, then maybe you don't mind the work ).

Option B:You can make use of something like OpenGL or DirectX (Direct3D).

Option C:Or you can even tweak somebody else's game engine. (this will also probably deal with many aspects of the Game Physics for you too).