ChaiRuiPeng wrote:
if you need advanced physics then its even more reason to use pure bullet AND THEN write your own custom wrapper classes/methods. since then they will be tailored to suit your needs.
irrBullet is tailored to suit my needs. I didn't make it for kicks and giggles.
I designed it to be one of the main parts of my game, and it works very well in doing so. They
are my own custom wrapper classes/methods.
Serengoer wrote:
Very advanced physics can be achieved with bullet it self, can't they?
Besides if you need advanced physics you should write some sort of framework that would support them, for me it's my entity system. Of course you can do that in irrBullet but it adds one more layer, to my entities. Thats not a big problem, but in some situations it can become really unnecessary.
I think it depends on what you need and how you think you need it implemented.
That's the thing: there is no second layer for that in my game with irrBullet. Physics and movement is entirely handled with irrBullet, which was created for my game. The classes simply contain a pointer to its IRigidBody or ISoftBody and have the methods unique to them, such as for scripting.
I'd have to explain the way I designed my game and irrBullet for you to understand it properly.
Anyway, I'm not trying to advocate use of a generic wrapper or use of Bullet itself; I'm just stating the reasons why I chose to make a wrapper for my game and release it to the community.
There are also some other reasons: free debugging and contributing to the community.
People get a free wrapper to use in their games, and in return I get free testers. I can't test every part of my library all the time. Moreover, it's better to share my code than to keep it closed up and take it to my grave. IrrBullet can be used by hundreds or thousands of people in their own games and game engines, whereas if I made it 100% specific to my game they could not; that's why I chose to make it specific to my game, yet still generic enough that others could easily use it.
Look at ENet for example. It was made (and further wrapped) for the creator's game (which is/was very popular), yet still made generic enough to work for others (and very well, I might add) freely as well as what it was designed for. It's also easier to manage as a separate project, as I've found with irrBullet.