Debug multithreading access check crash

Hi, first of all thanks for releasing Havok, its a fantastic tool that it's great to be able to use.

I've been experiencing a crash only in debug mode with the following call stack:
> BurneEngine.exe!hkMultiThreadCheck::accessCheck(hkMultiThreadCheck::AccessType type=HK_ACCESS_RO) Line 186 + 0x6f bytes C++ BurneEngine.exe!hkMultiThreadCheck::accessCheckWithParent(const hkMultiThreadCheck * parentLock=0x02a951d8, hkMultiThreadCheck::AccessType parentType=HK_ACCESS_RO, const hkMultiThreadCheck & lock={...}, hkMultiThreadCheck::AccessType type=HK_ACCESS_RO) Line 214 C++

Minimul Application Initialization

I am using Ogre3D as rendering engine,

And playing with PhysX, now i want to give a try to

Havok(I think i will leave PhysX for it's poor exporter tool for 3Ds Max, but it attracts me because of its free cloth simulation support)




#pragma comment( lib, "xxx.lib" ) // adding library file

#pragma comment( lib, "xxx.lib" ) // adding library file

#pragma comment( lib, "xxx.lib" ) // adding library file

void init();

void createscene();

loop updatescene();

!!!Havok Demo Question!!!

When I run the file(Demos_win32-net_8-0_release_multithreaded.exe), it alway crash for selectting Demo common/Utilities/Bootstrap/Serialize All(XML).
So I traced it in debug, I found some problem, in line 511(below) in BootstrapDemo.cpp.

- static_cast(m_demo)->getPhysicsViewerContext()->removeWorld(m_originalWorld);

Stepping the simulation correctly


I'm updating the physics using a "time-slicer" to ensure constant stepping at different frame times:

// time accumulator
static float elapsed = 0.0f;
elapsed += timeSinceLastFrame;

// update using time slicer
while( elapsed > m_timestep )
m_world->stepDeltaTime( m_timestep );
vdb->step( m_timestep );
updateDisplay( m_world );
elapsed -= m_timestep;

This generally works quite well as illustrated in the following part of a screenshot:

Networked physics and constraints


I'm quite new to running physics over a network, but I've already read some articles about ways to achieve it, lag compensation etc.

Now I'd like to use vehicles in a networked environment. I guess this shouldn't be a problem since the vehicle kit is using a raycast vehicle, so the rigid body could be set to a corrected positions once a packet from the server arrives at the client.

But what about using constraints? For example would it be possible to do a vehicle like the truck with trailer in the big rig demo in a networked environment?

hkpCharacterRigidBody just rotates about its z-axis

I tried wrapping a hkpCharacterProxy first but that just seems to freeze the whole game. When I tried using a hkpCharacterRigidBody it would rise so that it was properly on top, if I made a new mopp terrain mesh slightly above its base. But it doesn't fall when the other rigid bodies fall, and just spins on its z axis and sends other rigid body boxes flying when they get dropped on it. The rigid bodies with box shapes simulate correctly.

Subscribe to Havok