Skip navigation

I posted the following on the Card Kingdom development blog.

Integrating Havok into our engine has been a slow, arduous, yet rewarding experience. The main feature that makes Havok such an ideal solution are the tools. Exporters for common 3D modeling programs, preview tools and visual debuggers make the development process a much more pleasant experience. Without these tools, we would have to rely on our engine, which is still a work in progress.

New models, animations, physics interactions and property tweaks would have to be tested in the engine with massive amounts of debug information displayed. The process for testing would be: model or code, export, import into the engine, maybe recompile the engine, run the application, test, find errors, make adjustments, repeat. That process is time consuming and unproductive.

A better workflow is to model or code, test in a reasonable facsimile, make adjustments until it looks or interacts as it should, then export and import into the engine for final testing. Front loading most of the small tweaks and adjustments with tools is a much more dynamic process. Exporting to a preview tool is done in a few mouse clicks. Adjustments can be made on the fly and previewed immediately.

One of the most useful tools I am excited about using is the Visual Debugger for Physics. The integration into the engine is not that complex. It links to the Physics World being simulated and visualizes the physical objects how Havok represents them. This separates the graphical representation from the engine (which could be wrong) from the physical representation (which is always right) and shows any discrepancies between them.

From the images above, the window on the left is the graphical representation of physical world (our engine) and the window on the right is actual physical world (the visual debugger). As you can see, the translations and rotations of the cubes match, which means our visualization is correct.

This tool is going to be incredibly useful once we start loading entire levels in and debugging why the player is falling through the floor in one spot.