Sign in to follow this  
AlexSilverman

Physics Engine Selection

Recommended Posts

Hi, I'm a student who is a few months away from starting a game project with 5 other students. We will be making a first person shooter in OpenGL and I am currently trying to decide on an open source physics engine to use. This project is only for school purposes so we don't need any commercial licensing capabilities. Also, the project will need to be completed by the end of January, so our choice will most likely be governed by ease of use, ease of integration, and stability, not necessarily accuracy. So far, I've investigated ODE, Tokamak, Newton and Novodex, but have found, as with any product, people have had good and bad things to say about each, so drawing any type of conclusion has been difficult. I was wondering if anyone has done any similar projects using one of these engines, or simply had any advice or suggestions. They would be much appreciated. Thanks, Alex Silverman

Share this post


Link to post
Share on other sites
As you've noticed, :), all of those engines have their benefits and weaknesses. I would suggest you consider, as a major decision maker, whether or not the engine you choose has a way to export models from popular 3D modeling packages. You have to author your content somehow, don't you? Hand-coding C/C++/VB code for every 3D model assets will be prohibitively expensive.

Newton is integrated with 3D Game Studio, which I know nothing about. NovodeX has an exporter (Flexporter actually) for discreet 3ds max 5 (NOT version 6, and NOT gmax) and Milkshape. As far as I know, there are not readily available exporters for ODE or Tokamak. NovodeX has a solid, full time team of developers behind it, which surely would be a benefit. But, I also know the author of ODE to a knowledgable, reliable developer.

In reality, if you can be flexible about the exporting, I would say one of your first tasks on the project should be to do a short evaluation of the different engines. Create a simple problem such as your game will simulate, and duplicate it in all the engines. Use the same rendering engine for all the demos, so you're comparing apples-to-apples. It would not do to use the demo players that are available with the different engines. Document how long it took you to get the demo up and running for each engine, how fast it runs (frame rate), how bit the executable is, how stable the engine is, your general understanding of the API, etc. Then make a decision from there.

Share this post


Link to post
Share on other sites
A model loader loads content that has already been created and stored to disk in a file. Where did that file come from? The modeling package and an appropriate exporter! Basically, you go into Milkshape or 3ds max, create a 3D model, maybe add physics properties such as mass and constraints, then "export" to a file that is in the format your model loader understands.

The trick is that there are lots of 3D modeling packages that allow you to create 3D models, but those models don't have physidcs properties. To get the properties need to simulate the physics you either have to add the information manually to your code or to a special configuration file, *or* get a plugin and exporter that allows you to add the properties within the 3D modeling package then export to the appropriate file format. A good exporter is a critical part of the game asset pipeline.

Note that the standard game model file formats, such as the Quake formats, might not contain physics properties. And so loaders of these formats won't be sufficient for physics simulation..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this