A comparison of graphics libraries and their respective programming languages. A.K.A. "Which do I pick? With a twist."
I'm a long time professional programmer who never gave up on programming as a hobby. 3D programming has always appealed to me, but after some trial and error I always came back to (and got stuck on) the same question:
Which to choose?
- C# with XNA.
- C++ with DirectX.
- Java with OpenGL.
All three appeal to me:
- XNA, because it's managed, of high quality and very complete.
- DirectX, because it's de facto standard for large games.
- OpenGL, because it's open. It has a proven track record of high quality games built using it. + Eclipse hotswap functionality is sexy.
Keep in mind here that I will:
- Use the above library and language for hobby use.
- Will want to develop both 3D games and 3D tooling.
- Might seek a job in a 3D programming industry.
For the sake of the argument, assume I am equally well versed in C#, C++ and Java. And have no preference for any of the three mentioned libraries. In reality I have a slight preference for one of those three, but the quality of the code I produce in the languages is the same.
Replies with sources as links are preferred! OGRE and Irrlicht (and similar) are also contenders, but not preferred because it introduces additional depencies on other developers.