I would like to create a virtual 3D world. I am familiar with SDL and 2d graphics programming. I am experienced with C++ and I know a little Java (I have enough programming experience to learn a language quickly).

I am familiar with the traditional game loop:

Game game;

game.Initialize()  // initialize all variables

while (game.Running())
   game.HandleEvents();  //get input
   game.Update();  //handle movement/time features
   game.Draw();  //redraw screen

game.Close()  //clear surfaces/textures and quit API of choice

Is OpenGL the best option I have for learning 3D programming?

Once I have a small virtual world and a character + camera, I'll worry about networking it, I am more concerned with the actual 3D programming using the API first in a single player environment.

I know there is Direct X, but it is not platform independent.
OpenGL is compatible with many Operating Systems.
I know there is also Java 3D, but I am not sure if that is a dead technology.

Your input is appreciated!

Here is a sample app via openGL. Terrian

1) Press ',' the comma key to get a outline view.
2) Press space bar about 15 times or so, to displace the land.
3) press 'c' to smooth out the land.

Its one of my earlier project.

This article has been dead for over six months. Start a new discussion instead.