What exactly consitutes "any kind of dll" ?

What exactly consitutes "any kind of dll" ?

Hi,I want to expose some bits of my game to python, but im concerned about the licence; im using free havok and I know what one is not allowed to expose bits of havok to a DLL.Supposing I was to expose the high level objects in my game, such as Vehicle, Creature, LevelChunk and that kind of thing, which use havok internally, but I do not expose any part of havok, to the dll, as any kind of property or method?As an example, here is the header for my basic Physics class,

namespace Physics
{
using std::tr1::shared_ptr;

class Physics
{
public:
Physics();
~Physics();

void update(float delta);
void loadFromAC3D(PForest::PForestScene& loader);

shared_ptr addCreature(shared_ptr character, Mat44f pos);
shared_ptr addVehicle(shared_ptr vehicle, Mat44f & pos);

void removeCreature(shared_ptr ptr);

bool quickRaycast(const Vec4f& start, const Vec4f& dir, Vec4f& out, std::set exclusions = std::set());
bool entityRayCast(const Vec4f& start, const Vec4f& dir, Logic::WorldQueryResultDistanceSorted_t * out, std::set exclusions = std::set());

void lock();
void unlock();

void markForRead();
void unmarkForRead();

protected:

Utilities::SparseGrid static_meshes;

void initHavok();
void initComponents();

void destroyHavok();
void destroyComponents();

char* stackBuffer;

hkpWorld* physicsWorld;
hkJobThreadPool* threadPool;
hkJobQueue* jobQueue;
hkpPhysicsContext* context;
hkVisualDebugger* vdb;
};
}

Sorry about the textarea, I couldnt figure out how to add code.

6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Yes, you can expose anything but Havok to DLLs. This is what I'm currently doing for my project right now.

Were you told this by somebody official though? I want to make 100% sure. Don't want any surprises a few months down the line.

That doesnt conclusively answer my question, nor does the thread linked within it. I'm looking for something more conclusive than a few hints.

Hey zombiebovine,

Unfortunately, under the license agreement, Havok may only be statically-linked into your executable, and so embedding it into a dll (even with a different interface) isn't allowed. This thread mentions the particular clause of the agreement which relates to this, but it basically boils down to the requirement of Havok being integrated in 'an integral, non-separable way' into your application.

Chris

Developer Support Engineer
Havok
www.havok.com

Leave a Comment

Please sign in to add a comment. Not a member? Join today