Using ODE is quite involved. Not impossible, but it’ll take a while to get used to it and get it working.
I would steer clear of it for a first project.
As for OpenGL and DirectX. OpenGL is easier to learn but is harder to do harder things in. DirectX is hard to start with, but easier to do harder things with. [/quote:56b16d80ab]
I would agree with this.
I’d also add that opengl is more elegant in it’s simplicity and design – however, you get more for free with directX – for example, directx has a model file format (.X) which you can export to, etc.
Not that there aren’t equivalent openGL libraries for a lot of things, there are – but they come included with DX.
Still, Id recommend opengl as your graphics api of choice – lots of good tutorials on the web, nehe.gamedev.net for example.
I strongly recommend that for their first games project programmers implement something very very simple.
Tetris in 3d is probably the *most* complex you might want to tackle.
If you are interested in physics, then make Pong (or similar – put your own spin on it) in OpenGL.
This because I underestimate anyone’s programming skills – it’s just that thinking your way through the design, and then doing the implementation of a simple game will teach many of the concepts, and force you to solve many of the problems that are in advanced games, and you’ll learn a lot quicker with a more managable project.
Software engineering 101:
The project will take a lot longer to finish than you’d think.
I would recommend doing like pong, or maybe pool, but with 3d graphics – you’ll have to learn and deal with the 3d graphics fundamentals, the IO, and basic game architecture questions without having to deal with the complexity of a bigger project.
Use opengl – it’s easy to learn, I would recommend either Glut or SDL to handle your windowing concerns, and if your writing a simple game, like pong, you should write your own ‘physics’ routines as a basis for learning.
I estimate that if your learning you should be able to make Pool or Pong, with 3d graphics, in about 60+ hours, (depending on how much you understand what you do vs how much you hack).
There will also be some (frustrating) time you’ll spend assembling libraries and setting up your development environment.
Using a tutorial (for example nehe) as a code base will help cut down this time a lot.
Thats my take on things anyway, i’m no expert, but I’ve went through this process, and I hope this helps.
A lot of first game projects don’t finish due to over ambition – i’m not doubting anyone’s resolve, simply advising that that’s often the biggest risk to a first project.
You sound like you have a lot of programming experience, so that’s probably less of a worry! Best of luck :-)