Chaster
04-12-2007 05:03:02
Hello Everyone,
Now that I've had some time with OgreBullet and done some exploring in its' guts as I utilize it for my game, I find myself stymied by several things which are the result of the design of Ogre Bullet.
Not that Ogre Bullet is bad (it's very good actually) but for my programming style, I find that I am constantly working "around" Ogre Bullet's way of doing things.
Because of this, I am currently thinking about rewriting ("forking") Ogre Bullet for myself. I say "for myself" because Ogre Bullet is NOT my project - Tuan only was nice enough to give me CVS access since I contributed some minor improvements.
If Tuan wants, I would not mind sharing my new version of Ogre Bullet (as a replacement? Version 2.0?) but I am not going to be so presumptuous as to say he should do so. In fact, I am actually assuming that he will NOT want to replace Ogre Bullet with my version (which doesn't yet exist anyway).
However, the main side effect of this is that once I write my own "fork" of Ogre Bullet, I don't think I'll be maintaining the current version of Ogre Bullet. In other words, it will be back to Tuan.
The main reason I am doing this is because my current project has certain needs which can't be met with Ogre Bullet "as is" and will require changes at a very core level (sigh, story of my life when it comes to Ogre stuff).
Chaster
beaugard
04-12-2007 09:25:56
I think an active maintainer for OgreBullet would be great (uhm... obviously).
Could you elaborate? What kind of changes do you have in mind? I have very limited experience with using OgreBullet, but so far I have not encountered any problems with it (stylewise or other).
<EDIT> ok the last statement is an obvious lie, since I actually contributed patches

. The part about style still stands, though </EDIT>
tuan kuranes
04-12-2007 16:05:29
I would not mind sharing my new version of Ogre Bullet
We would be pleased if you do so. Once you do, you'll have testers for sure. We'll cast a vote on 2.0
Anyway, Thanks for maintaining and helping so far.
kcbanner
04-12-2007 20:32:29
I think it would be cool if the new design was modular, ie. the mesh->collision shape converter could be used with pure bullet classes as well
-kcbanner
Chaster
04-12-2007 20:45:05
I think an active maintainer for OgreBullet would be great (uhm... obviously).
Could you elaborate? What kind of changes do you have in mind? I have very limited experience with using OgreBullet, but so far I have not encountered any problems with it (stylewise or other).
<EDIT> ok the last statement is an obvious lie, since I actually contributed patches
. The part about style still stands, though </EDIT>
Well, a few things (bear in mind these are design choices which are always subjective, they are NOT criticisms of the current design):
1) I find the Ogre Bullet rigidbody class needs to inherit from the bullet collision object class so I can use the bullet AddCollisionCallback override. There are ways I could work around this, but they would result in performance penalties.
2) I also dislike having all the extra scenenode stuff inside the ogre bullet rigidbody (mostly used for debugging purposes). I prefer to extract the necessary information and assign it manually to scene nodes rather than having it hidden within the rigidbody.
3) I prefer to have more control over how things are created (like the simulation world, rigid bodies, etc.). Obviously, I could add changes to allow this finer control (and I have been if you look at some of my recent changes) but I figure if I'm going to rewrite OgreBullet, why not have the finer control part of the design rather than added on...
4) Perhaps a bit more modularity, although this isn't something *I* need, I can see where others would want it.
Anyhow, it looks like nobody has any objections (even if they did, I am still moving forward anyway... it's just a question of whether or not my version gets "considered" as a replacement for current version of OgreBullet..) So I'l probably start on this within the next week or two..
Chaster
logod
05-12-2007 20:21:50
I also think that (besides finishing things not done yet and changing things you mentioned), #1 thing many OgreBullet users would like to see is some documentation. I'm using OgreBullet in simple project of mine and total lack of documentation, combined with pretty poor documentation of Bullet itself (and of course the fact i'm newbie to 3d games and physics) made everything even harder.
This way I ended up learning game physics concepts from (very nice) Physx documentation, then searching for similar functionality in Bullet and finally checking out how it's done through OgreBullet, and very often bypassing OgreBullet and calling Bullet directly.
beaugard
06-12-2007 10:20:25
1. Sounds good. I haven't thought about this, but I can imagine it would facilitate closer integration with Ogre.
2. Here I agree, also, mainly because it makes the code easier to read... Since my experience with bullet is quite limited I have not really seen the benefit of easily accessible debug visualization, though.
3,4. Both these points sound good, but why wouldn't they? I suppose it depends on how they are implemented (how much steeper it makes learning, etc). I am confident you will do it well.
About documentation: I would prefer you (Chaster) to work on well commented quality code instead of a manual. I found OgreBullet to be quite logically structured (easy to deduce function), and thin enough to be easy to grasp in its entirety. OgreBullet is still a very young project and it seems to me a bit early to concentrate on the manual - let's concentrate on making the lib better/more mature first!
Maybe someone who is mainly a user could write up something based on their experiences?
btw, there's nothing wrong with bypassing OgreBullet and work with Bullet directly.
voxel
16-01-2008 14:17:54
I share similar sentiments. I think OGREbullet is nice(especially the built in debug stuff), but is too abstract and also too rigid. It also only covers a fraction of what BULLET is potential of.
The first step is to create some nice thin wrapper that converts data from OGRE to BULLET and vice versa (i.e Ogre::Vector3 to btVector3) then extract the OGRE mesh to BULLET mesh converter into a separate class. For the most part, my projects will deal with BULLET data but convert to OGRE for rendering. At the core - BULLET is for physics and should be only "converted" to OGRE at rendering time.
I'm pretty much forced to go this way in my commercial project - has anybody started?
voxel
16-01-2008 14:19:18
btw, there's nothing wrong with bypassing OgreBullet and work with Bullet directly.
This is what I recommend to my students (using BULLET raw), but BULLET data structures need to be converted back and forth with OGRE once in a while and it's time consuming and painful.
Chaster
18-01-2008 13:13:05
Well, I started on it, and I *am* using what I made in my own project, but it isn't even as complete as OgreBullet, so I don't think it's good to release at this point.
What it currently does is thin the interface (compared to OgreBullet) quite a bit between Ogre & Bullet. Mostly it is utility functions (like creating btCollisionShapes from meshes, and converting from btValues to ogre values).
I plan to do a fair amount more to my version and I'm not even working on it right now (working on integrating QuickGUI with my app currently), so it's going to be a while before I release it. Right now, OgreBullet is far more "feature complete".
Chaster
beaugard
21-02-2008 20:01:24
I am just starting to redo the way I handle physics, and coming back to OgreBullet I feel it is big and cumbersome. I am more confident using Bullet raw this time, so I find myself being hindered a bit by the OgreBullet interface. I will only be using part of Bullets functionality and I am considering whether to rewrite OgreBullet part by part as I need them, or just remove the parts I have trouble with.
Since it seems you have already made an effort towards something similar I was wondering whether you would consider releasing the source in one form or another? The completeness really doesn't matter so much... the alternatives will probably require more work anyway, and it's a shame if I spend time duplicating your code instead of working on new features (assuming you are planning to release it at some point, that is). If you are worried about getting bombarded with questions/complaints upon release, you can send it privately - I don't ask questions (some sort of personality disorder, no doubt

)
edit:
oh, and if you're not comfortable releasing anything, don't feel pressured to do so. I'll manage...
beaugard
24-02-2008 11:48:31
Never mind, I decided to do it myself anyway. I want quite a specific interface in order to easily add connections from other threads (local and remote for online play) so I'd probably have to redo it anyhow. It is going quite well thanks to Bullets good design and all of Tuans code. I'll be happy to share it if it works well enough.
Chaster
26-03-2008 02:37:05
Still working Chaster ?

Yes, I'm here, but I haven't been checking the OgreBullet forum much. I am still working on this, but it's kind of falling victim to a case of "too many things on my plate" problem. At some point, I'll try to clean up what I have and release it, but it's not really a good replacement for OgreBullet because it is nowhere near as feature-complete, and well, the "advantages" I was shooting for didn't really materialize as much as I thought they would...
Chaster
subquantum
14-07-2008 13:36:37
I'm working on implementing raw Bullet into my Ogre3d project currently (I need more fine-grained control of the library than any decent wrapper would allow); while I don't really have the time to be any sort of official maintainer, if there is still an effort to work on a new Ogre wrapper for bullet I'd be interested in using what insights I gain from my project to contribute to it. Having used ODE and Newton previously, I can assert that Ogre needs more decent, effective, and documented physics plugins
(If anyone's curious as to what made me choose bullet over the other two: With ODE, I had an issue where after creating/destroying many bodies, the simulation would become unusably slow, and it took a lot of tweaking to be realistic. With Newton, while I do still like it, it had a tendency to crash randomly. While the crashes were most definitely due to my engine using it in some funny way, being closed-source it was impossible to get a backtrace from inside the Newton library to figure out what the issue was.)
mrmclovin
15-07-2008 13:14:26
I'm working on implementing raw Bullet into my Ogre3d project currently (I need more fine-grained control of the library than any decent wrapper would allow); while I don't really have the time to be any sort of official maintainer, if there is still an effort to work on a new Ogre wrapper for bullet I'd be interested in using what insights I gain from my project to contribute to it. Having used ODE and Newton previously, I can assert that Ogre needs more decent, effective, and documented physics plugins 
(If anyone's curious as to what made me choose bullet over the other two: With ODE, I had an issue where after creating/destroying many bodies, the simulation would become unusably slow, and it took a lot of tweaking to be realistic. With Newton, while I do still like it, it had a tendency to crash randomly. While the crashes were most definitely due to my engine using it in some funny way, being closed-source it was impossible to get a backtrace from inside the Newton library to figure out what the issue was.)
I'd love to see a new/modified wrapper for bullet into Ogre. Especially a documented one!!!! I'm struggling with integrating ogrebullet into my project and since my lack of knowledge of physics it's hard to do so without documentation. I support you!
subquantum
15-07-2008 15:42:43
Yeah; Bullet, while being very powerful and stable (as far as I can tell), suffers from being written by people very knowledgeable and enthusiastic about physics. While this results in a quality library, it also tends to result in documentation aimed at people with a lot of experience with physics engines. I consider myself to have a fairly decent knowledge of how physics engines work, but there are still times that I would just stare at the doxygen and blink.
I think I'll download the OgreBullet source when I get back from work, and see what I can do; at the very least, I can probably help with the documentation (now that I think I've wrapped my head around how Bullet works).
mrmclovin
16-07-2008 22:15:35
Yeah; Bullet, while being very powerful and stable (as far as I can tell), suffers from being written by people very knowledgeable and enthusiastic about physics. While this results in a quality library, it also tends to result in documentation aimed at people with a lot of experience with physics engines. I consider myself to have a fairly decent knowledge of how physics engines work, but there are still times that I would just stare at the doxygen and blink.
I think I'll download the OgreBullet source when I get back from work, and see what I can do; at the very least, I can probably help with the documentation (now that I think I've wrapped my head around how Bullet works).
Dude, please do so! At least a small tutorial to help people know what point they should start from (like me

. Especially collision detection. I encourage you!