IrrODE - an Irrlicht - ODE wrapper (now with SVN)
IrrODE - an Irrlicht - ODE wrapper (now with SVN)
Hello,
I've been working some time on this project and I want to share it with you. It is an Irrlicht-ODE wrapper (http://opende.sourceforge.net). There is still quite a lot to do for me, but I thought I could do a first "official" release, now that I finished the plugin. Contents of the package:
- source code
- 3 demo applications
- an IrrEdit plugin
You can grab the wrapper at my homepage (http://www.bulletbyte.de/index.php?content=irrode.php).
There is a little additional dependency in the IrrOdeCar demo. You need to download the "AdvancedParticleSystem" I developed if you want to compile it. It can be found at http://bulletbyte.de/index.php?content=advparticle.php
The demo applications:
- helloIrrOdeWorld
A little application with a sphere bouncing off a cube. It is part of the first tutorial. It is almost the same as the "IrrOdEditExample" demo
- IrrOdePlayground
Just a terrain and a FPS camera (in the beginning). You can add objects and watch them being affected by gravity and collide with the terrain and other objects. F1 gives a help screen where the keyboard mapping is explained. Some screenshots:
- IrrOdeCar
With the latest version the name of this app is outdated. It should be IrrOdeVehicle (or something like that), because I added a tank and a helicopter. Simple tank and heli but real fun to play around with.
- IrrOdEditExample
A very simple program with a sphere dropping on a cube and bouncing back. It was done using the IrrOdEdit plugin. A screenshot:
- IrrOdeMarble
this is a simple demo game inspired by "Marble Madness". Just use the mouse to control your marble and roll it to all of the checkpoints.
I hope you have as much fun playing around with this project as I had developing it.
You can find IrrOde's sourceforge project on http://irrode.sourceforge.net/ (SVN: http://sourceforge.net/projects/irrode/develop).
I've been working some time on this project and I want to share it with you. It is an Irrlicht-ODE wrapper (http://opende.sourceforge.net). There is still quite a lot to do for me, but I thought I could do a first "official" release, now that I finished the plugin. Contents of the package:
- source code
- 3 demo applications
- an IrrEdit plugin
You can grab the wrapper at my homepage (http://www.bulletbyte.de/index.php?content=irrode.php).
There is a little additional dependency in the IrrOdeCar demo. You need to download the "AdvancedParticleSystem" I developed if you want to compile it. It can be found at http://bulletbyte.de/index.php?content=advparticle.php
The demo applications:
- helloIrrOdeWorld
A little application with a sphere bouncing off a cube. It is part of the first tutorial. It is almost the same as the "IrrOdEditExample" demo
- IrrOdePlayground
Just a terrain and a FPS camera (in the beginning). You can add objects and watch them being affected by gravity and collide with the terrain and other objects. F1 gives a help screen where the keyboard mapping is explained. Some screenshots:
- IrrOdeCar
With the latest version the name of this app is outdated. It should be IrrOdeVehicle (or something like that), because I added a tank and a helicopter. Simple tank and heli but real fun to play around with.
- IrrOdEditExample
A very simple program with a sphere dropping on a cube and bouncing back. It was done using the IrrOdEdit plugin. A screenshot:
- IrrOdeMarble
this is a simple demo game inspired by "Marble Madness". Just use the mouse to control your marble and roll it to all of the checkpoints.
I hope you have as much fun playing around with this project as I had developing it.
You can find IrrOde's sourceforge project on http://irrode.sourceforge.net/ (SVN: http://sourceforge.net/projects/irrode/develop).
Last edited by Brainsaw on Tue Jul 18, 2017 6:01 am, edited 9 times in total.
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
-
- Posts: 758
- Joined: Mon Mar 31, 2008 3:32 pm
- Location: Bulgaria
-
- Posts: 208
- Joined: Sun Apr 02, 2006 9:20 pm
Thanks for your comments. I am currently working on some tutorials, first one to get it compiled with Code::Blocks and gcc, and then I will add another one on how to build a scene with the IrrOdEdit plugin for IrrEdit. I hope that I can get (at least) those two finished until next weekend and will upload a new version.
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
I just uploaded a new version with the following changes:
- bugfix: IrrOdEdit does now load the dummy scenenodes even if the working directory was changed
- added a "helloIrrOdeWorld" application
- added 2 tutorials
Initial post is also updated.
- bugfix: IrrOdEdit does now load the dummy scenenodes even if the working directory was changed
- added a "helloIrrOdeWorld" application
- added 2 tutorials
Initial post is also updated.
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Another update:
added 2 new classes:
- CIrrOdeMotor: a motor that can be attached to a joint and encapsulates the motor functionality of the joint
- CIrrOdeServo: can be attached to a joint to set an axis of the joint to a specific position, e.g. steering of a car
The demos "IrrOdePlayground" and "IrrOdeCar" have also been updated with the new classes. Happy downloading.
added 2 new classes:
- CIrrOdeMotor: a motor that can be attached to a joint and encapsulates the motor functionality of the joint
- CIrrOdeServo: can be attached to a joint to set an axis of the joint to a specific position, e.g. steering of a car
The demos "IrrOdePlayground" and "IrrOdeCar" have also been updated with the new classes. Happy downloading.
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
I uploaded a new version yesterday. The IrrOdEdit plugin was improved, you can now clone all geoms and the basic ODE objects. Joints and Motors can't yet be cloned. In addition I updated the IrrOdeCar demo, the scene is now loaded from an .irr file instead of creating it manually.
@Malgodur: You should use the Trimesh for that. But using this is slower and leads to errors sometimes (doesn' crash often, but gives error messages on stdout ... you have to compile the debug version for that).
The playground crashes from time to time, this happens when some of the values get in an invalid range. It happend with the IrrOdeCar demo quite often when you crashed into one of the obstacles and made them spin too fast. I solved the problem with the car demo by adding angular damping and a maximum angular velocity to those bodies. To make it short: if the application crashes because of an ODE internal error it is a good idea to play around with the values for the collisions, e.g. damping and such.
@Malgodur: You should use the Trimesh for that. But using this is slower and leads to errors sometimes (doesn' crash often, but gives error messages on stdout ... you have to compile the debug version for that).
The playground crashes from time to time, this happens when some of the values get in an invalid range. It happend with the IrrOdeCar demo quite often when you crashed into one of the obstacles and made them spin too fast. I solved the problem with the car demo by adding angular damping and a maximum angular velocity to those bodies. To make it short: if the application crashes because of an ODE internal error it is a good idea to play around with the values for the collisions, e.g. damping and such.
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Rule no 1 of physic: It doesn't like infinite force, it's intolerant to unmovable objects and it REALLY HATES applying a on b. Be careful that all moving parts have friction both angular and linear. Give masses to everything. Don't move object directly if you can avoid it, use forces/impulses instead (and if you must, remove the object from the scene first, place it, add it back). Those are general tips for the vast majority of physic engines, both 2d and 3d. I think it might help you here.
(For example, I usually use only one static object in my scenes if I can get away with it. As weird as it may seems, it often goes faster, not slower and give a far more stable simulation. If I can avoid giving it a body/shape and only use links/joints connected from it's position to other 'static' objects, even better!)
Ah, and don't forget, while many engines claim to have plenty of nice way of calculating a moving object, it still relies on steps somewhere deep. The smaller the time steps, the better, always. As long as you don't break floats or slow your app (why won't they use Reals with a decimal instead of floats! ARGH!)
(For example, I usually use only one static object in my scenes if I can get away with it. As weird as it may seems, it often goes faster, not slower and give a far more stable simulation. If I can avoid giving it a body/shape and only use links/joints connected from it's position to other 'static' objects, even better!)
Ah, and don't forget, while many engines claim to have plenty of nice way of calculating a moving object, it still relies on steps somewhere deep. The smaller the time steps, the better, always. As long as you don't break floats or slow your app (why won't they use Reals with a decimal instead of floats! ARGH!)
Once again: a tiny update: I implemented the "clone" functionality for all scene nodes where it was still missing (joints and motors) yesterday and uploaded it.
This was the last update for 3 weeks, because I am going on vacation to the US (Westcoast ) on friday.
This was the last update for 3 weeks, because I am going on vacation to the US (Westcoast ) on friday.
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
OK, this time it's the definite-absolute-totally-last-update-before-my-vacation . Found a little time yesterday and I did two things:
- the joints in the IrrOdEdit plugin were modified: you do now only get the joint parameters that are interesting for the joint, i.e. there are up to three groups of joint parameter, but most joints do not use all of them, so I did a modification so that you can only change those that are relevant
- the IrrOdeCar demo scene is now completely done in IrrEdit with the plugin, so not a single node is created in program code any more.
I hope you have some fun with it and see you in 3 weeks.
- the joints in the IrrOdEdit plugin were modified: you do now only get the joint parameters that are interesting for the joint, i.e. there are up to three groups of joint parameter, but most joints do not use all of them, so I did a modification so that you can only change those that are relevant
- the IrrOdeCar demo scene is now completely done in IrrEdit with the plugin, so not a single node is created in program code any more.
I hope you have some fun with it and see you in 3 weeks.
Dustbin::Games on the web: https://www.dustbin-online.de/
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Dustbin::Games on facebook: https://www.facebook.com/dustbingames/
Dustbin::Games on twitter: https://twitter.com/dustbingames
Hey, nice wrapper man! Going to give you a hand stress testing it ;)Here are a few things I would recommend doing and / or found not working.
Libs? You did not include any?
I was able to build a lib by creating a sln from your irreditode, just porting it to the irrode files.. But I think you should leave the sln’s in there for all examples as most of us use VS anyways. Just a nitpick, but it helps.
What is getBodyCound ? did you mean getBodyCount ?
What are the class names for in the irr edit plugin?
Your IrrOdeCar dir is missing h files?
IrrOdEditExample broke.
I set up IrrOdEditExample and the ball will not move, also tried the non edit version and no movement. But running the exes it bounces? I see your irrlicht.dll is not the right size. If I use the correct version of irrlicht.dll with your examples I get a crashes as you compiled with the corresponding lib.
I just realized you never mentioned the version it was for? This maybe part of my problem. I'm able to compile it against 1.5 but its not working.
correct files size of irrlicht.dll for version 1.5
2.17 mb
dec 14th 08
Your version of irrlicht.dll
1.22 mb
may 01 2009
Based on the dates I would guess this is the latest from the svn? Going to check that.( -- nope the latest is twice the size of the original 1.5 ) Not sure where this version came from?
DEbugging
I tried to render my bounding boxes with
#define DRAW_BOUNDING_BOXES
but nothing shows. I did try to render() my bodies in the update but nothing changed. IS the render for world a way to render all bodies? - This could be related to the problem above, as it seems the physics do not run with my version of irrlicht.dll.
I'm liking the irrEdit pluging.. This was a nice idea!
hope your vacation is/was good!!
Libs? You did not include any?
I was able to build a lib by creating a sln from your irreditode, just porting it to the irrode files.. But I think you should leave the sln’s in there for all examples as most of us use VS anyways. Just a nitpick, but it helps.
What is getBodyCound ? did you mean getBodyCount ?
What are the class names for in the irr edit plugin?
Your IrrOdeCar dir is missing h files?
IrrOdEditExample broke.
I set up IrrOdEditExample and the ball will not move, also tried the non edit version and no movement. But running the exes it bounces? I see your irrlicht.dll is not the right size. If I use the correct version of irrlicht.dll with your examples I get a crashes as you compiled with the corresponding lib.
I just realized you never mentioned the version it was for? This maybe part of my problem. I'm able to compile it against 1.5 but its not working.
correct files size of irrlicht.dll for version 1.5
2.17 mb
dec 14th 08
Your version of irrlicht.dll
1.22 mb
may 01 2009
Based on the dates I would guess this is the latest from the svn? Going to check that.( -- nope the latest is twice the size of the original 1.5 ) Not sure where this version came from?
DEbugging
I tried to render my bounding boxes with
#define DRAW_BOUNDING_BOXES
but nothing shows. I did try to render() my bodies in the update but nothing changed. IS the render for world a way to render all bodies? - This could be related to the problem above, as it seems the physics do not run with my version of irrlicht.dll.
I'm liking the irrEdit pluging.. This was a nice idea!
hope your vacation is/was good!!
troubles
yeh i had similar problems, I managed to build a lib based on how your code::blocks project was set up, but can't make it work. I tried duplicating your work in the irrODEdit example sort of in my framework of stuff in vs2008, but I get runtime access violations.
I will try next just directly compiling your example code, but so far I have no clue what's going wrong here......
I will try next just directly compiling your example code, but so far I have no clue what's going wrong here......
My irrlicht-based projects have gone underground for now, but if you want, check out my webcomic instead! http://brokenboomerang.net