Category: Havok


In my third year of university I was given a programming project where I chose to connect Havok with a graphics engine, namely OpenSceneGraph, (the old tutorial for that is here) and demonstrated the results of that by creating a Rube Goldberg machine, which you can see here. In doing so I covered some basic features of Havok, so to give the following tutorials some structure I will replicate that Rube Goldberg machine and show how to do so. I took some shortcuts before and ignored some bugs but hopefully those will be kept to a minimum this time.

To get us started, we will look at rigid bodies, some simple shapes you can represent them with and common properties you can give them. As always code for this tutorial can be found at the bottom.

Continue reading

It has been quite the period since my last tutorial on Havok and a number of things have changed. This tutorial will show you how to get started with the latest version of Havok (version 2013.1.0) and set it up in a new project at its bare bones. However, before you continue, it may be helpful for you to check the StepByStep Demos section found in the Quickstart Guide in /Docs and this tutorial written by a Havok engineer. Better to get information from the horse’s mouth, after all.

My last tutorial on getting started with Havok, while out of date, may still be of use and I will not be redoing the ‘Downloading and Exploring’ section as that is still mostly still the same. Also, in this tutorial, to keep it simpler, I will not be using Havok multi-threaded. The code for that doesn’t seem to have changed much, but you can refer to the Physics2012ExampleMt for getting started with multi-threaded. If you’ve downloaded the latest version, this can be found in /Demo/StandAloneDemos/Physics2012.

There’s a few prerequisites for this (and possible future) tutorials: some basic C++ skills and the Microsoft Visual Studio 2012 C++ IDE. The latter will differ on the year (2012 or 2010) depending what version of Havok you use, which you can determine by looking in the brackets when you go to download Havok. It would also be helpful to have some general understanding on how physics engines work.

Code (with comments) for this tutorial can be found at the end of this tutorial.

Now, without further ado, let us begin.

Continue reading

In the first tutorial, I mentioned that I was going to visualise the physics simulation using a 3D Graphics toolkit called OpenSceneGraph (OSG). After growing more accustomed to Havok and its Visual Debugger (VDB), I found the VDB to be easier and more useful to use due to its great number of features. Regardless, some basic integration between the two was achieved. In this tutorial I will demonstrate how that was done, and from that it can hopefully be understood how to generally apply that to other graphics engine (such as Ogre).

Code for this tutorial can be found in a zip located at the end of this tutorial.

Continue reading

EDIT 26/05/14: This information in this tutorial is now out-of-date. Here is the new tutorial for getting started with Havok. I will leave this tutorial here in case it is still useful to someone.

Havok is a widely used middleware in game development, providing technology for animation, behaviour, and physics to name a few. For these tutorials, the physics engine is what we will be using and learning, which I will just call ‘Havok’ from now on for brevity. To visualise what we are doing I will be using the 3D Graphics toolkit Open Scene Graph (OSG). I could use the Visual Debugger to do this (I will come to what that is later), but I personally wish to understand how to make Havok communicate with a graphics engine, and I’ve used OSG before. If you are using a different graphics engine and/or want to view what Havok is doing, you can just use the Visual Debugger.

Hopefully, this and the upcoming tutorials will be helpful to those wish to do the same as me and/or those who just want to learn Havok. I am no expert in how to use Havok – or how it works – but I will try to answer any questions to the best of my ability if you have any. For more in depth questions you may be better consulting the extensive Havok documentation and demos or asking at the Intel Havok forum where Havok engineers roam.

In this tutorial, I intend to give you a brief tour of what you get with the download; show you how to set up Havok in a new project, and make a box drop onto a ground surface. This (and future) tutorials have a few prerequisites: some basic C++ skills and the Microsoft Visual C++ IDE. It would also be helpful to have some general understanding on how physics engines work.

Continue reading