Currently we are working on a new a new engine version in combination with an OpenGL 3.x Graphics Engine (PhysicsAndMathAndGraphicsLibrary).

The following (old!) demo programs demonstrate the use of the PhysicsAndMathLibrary (1.x):

Game Physics Engine Files Version 1.2e                     (243 KB)

Solar System Simulation Version 1.2c                       (3.65 MB)

Particle Interaction Simulation Version 1.2d                (1.13 MB)

Day Night Cycle and Weather Sim Version 1.2b            (1.69 MB)

Terrain Destruction Simulation Version 1.2b                (1.05 MB)

Basic Damage Model Simulation Version 1.2b               (1.21 MB)

Terrain Generator (from heightmap) Version 1.2c         (1.00 MB)

Game Physics Engine + 17 Simple Demos Version 1.2b    (3.21 MB)

Ballistic Physics Demo Version 1.2b                          (0.99 MB)

Billard Masspoint Collision Demo Version 1.2b              (334 KB)

Planetary Gravitation Movement Demo Version 1.2b      (4.71 MB)

Vehicle Physics Demo Version 1.2b                          (17.3 MB)

Multiple Destruction Demo Version 1.2b                    (17.0 MB)

Physical Based Animation Demo Version 1.2b              (17.2 MB)

AnimationPoseModeler Version 1.2b                        (769 KB)

A new library update (version 1.2) can be downloaded now! It contains six new demo programs - a Solar System Simulation, a Day Night Cycle and Weather Simulation, a Terrain Destruction Simulation, a Basic Damage Model Simulation, a Particle Interaction Simulation and a Terrain Generator that generates (physical) terrain meshes from various heightmaps.

A new library update (version 1.1) can be downloaded now! It contains several performance optimisations, approximative simulation techniques for all physical objects and a robust multibody stacking technique that will be demonstrated in the DestroyableObjectsPhysicsDemo.


You can find the physics-relevant source code within the New_Scene()-Methods of the C3DScenario/CGamesWorld-Classes.

Notice before you can use the PhysicsAndMathLibrary, all look-up tables must be initialized via the Init_LookUpTables()  function call. When exit the demo programs, the memory needed for all tables must be released via the CleanUp_LookUpTables() function call.

The following global variables could be initialized and updated if necessary: g_screenwidth, g_screenheight, g_identityMatrix, g_matView, g_matProj, g_ViewProjectionMatrix (= g_matView*g_matProj). With the current library update this is no longer necessary.

For a more precise collision detection you should use bounding sphere collision models. For this you must only change the accompanying flag in the Calculate_ExactSecondaryObject...CollisionsEx() function calls from FALSE in TRUE and substitute the function calls ...CollisionTests_...() and ...CenterOfMassCollisionTests_..() by ...CollisionTestsWithUsedCollisionModels_...() and ...CenterOfMassCollisionTestsWithUsedCollisionModels_...().