[size=117]Be aware that this code is generally meant as internal and was extracted from a larger project I’m working on. This means I can’t ensure a stable API or regular updates.[/size]
The current version is 1.2.1, but you can still download the previous versions at the bottom of this post. I strongly discourage using versions earlier than 0.9 (actually, just use the most recent one, it’s the best one ).
Since version 1.2.0 the framework contains everything I wanted to release for now, so there will probably be only 1.2.x bug-fix releases from now on.
WARRNING: Panda 1.7.0 has a bug that causes it to leak memory when using this code. Please use it with newer snapshot builds or newer stable releases once such are available (1.7.1 and 1.7.2 are fine).
- World Manager, which makes it easier to use ODE with Panda and Python.,
- Basic classes for Static, Kinematic, Dynamic and Ray objects,
- Continuous Collision Detection support for fast moving small objects,
- Kinematic Character Controller (much more stable since 0.9),
- Player controller for FPP games using the KCC,
- Object picking and carrying for the player controller,
- Ray-based gun mechanics with support for automatic, semi-automatic and shotguns.
- Explosion mechanics and an example grenade implementation,
- Area Triggers,
- Map loading example,
- Moving platform example,
- Simple bit mask generator
- Visualization based on FenrirWolf’s code
If you want to read more about this framework, it’s features and limitations, please check this file:
Changes in 1.2.1:
- The Kinematic Character Controller now inherits from Kinematic Objects (by suggestion)
Changes in 1.2.0:
- Added support for moving kinematic platforms. Optionally dynamic objects can serve as moving platforms for the Character Controller as well, but not for other dynamic objects. Example included;
- Ability to easily change the size of the KCC with one intuitive method. Finally. Also the sample map was changed to correct scale;
- Correct bouncing and sliding in CCD-enabled dynamic objects. Their velocity is no longer artificially affected after collisions;
- Animation for smooth camera movement when going from standing to crouching and vice versa and while walking steps;
- Additional capsule for the KCC for better object pushing;
- Simple automatic BitMask generator;
- Uses FenrirWolf’s code for ODE visualizations. Thanks for writing and sharing it;
Changes in 1.0.1:
- Fixed shaking when the KCC collides with TriMesh geoms (although, I still not advice using trimeshes too extensively)
- Changed the advised bit mask setup in the sample
Changes between 1.0 and 0.9:
- Ditched the odeGeomData class – this made the code a lot cleaner, more optimized, and easier to use,
- Added support for firearms,
- Added example guns,
- Added rayObject class,
- Limited the use of in-place ray casting,
- Optimizations, bugfixes
Download the current version (1.2.1) here:
To see it in action run start.sh for Linux or start.bat for Windows. Or do python main.py.
Hope you’ll find it useful,