The week in Kolf: Open Dynamics Engine support coming, FAQ inside

February 14, 2009

One of the biggest problems with Kolf 1 was its buggy collision checking. I really tried to make it better in Kolf 2, and ball-ball and ball-wall collisions already looked very good, but I eventually came to the conclusion that using a professional physics engine would be much easier.

During the last two weeks, I took a look at several physics engines, and chose the Open Dynamics Engine. Here comes the FAQ on this decision. (Actually, it’s a list of questions I expect to be asked frequently. They haven’t yet been asked because I’m just announcing it.)

Why did you chose ODE?

ODE is an open-source (BSD license) physics simulation solution which is used by many games and simulation software, such as the great X-Moto or the commercial first-person shooter S.T.A.L.K.E.R.

ODE is made in C++, but its functionality is exposed through a C interface to improve portability. I hope that this helps KDE/Windows and KDE/Mac people to deploy Kolf 2 on their systems.

Why did you not use StepCore of our very own physics simulator?

Because the kdegames module would then depend on the kdeedu module, and because StepCore only offers 2D objects. Since we are moving into the third dimension with Kolf 2 (while still allowing a classic top-down 2D view), StepCore could not be used.

What do I need to take advantage of ODE in Kolf 2?

At the moment, there is not much to take advantage of. The build system is in place and some code ensures that the homegrown collision code if ODE has been selected. This means effectively that no collision happens at all, but that is going to change over the next weeks.

To not miss the latest developments in ODE support, make sure that your system has libode and libode-devel installed (packages are provided at least by Debian and openSUSE, I did not check other distros), and pass the “-DUSE_ODE=1” switch to CMake.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s