Free ODE and Physix DLLs for B3D?

Community Forums/General Help/Free ODE and Physix DLLs for B3D?

Captain Wicker (crazy hillbilly)(Posted 2011) [#1]
Anyone know of any?


Yasha(Posted 2011) [#2]
Physix isn't a DLL, but a B3D source lib for simple 2D physics. You may be confusing it with PhysX, an advanced 3D physics engine. </pedant>

Don't know what there is in the way of PhysX support, but there are at least three separate free ODE DLLs for Blitz3D. (Each with their own charming flaws, but enough to get started.) The one linked in my signature is probably the newest.

...which you would have found out very quickly if you'd looked in the "B3D Userlibs" section, because physics engine discussions make up most of the threads in that section.

Last edited 2011


Happy Sammy(Posted 2011) [#3]
http://www.blitzbasic.com/Community/posts.php?topic=89067#1051579
http://www.blitzbasic.com/Community/posts.php?topic=90281#1025982


Captain Wicker (crazy hillbilly)(Posted 2011) [#4]
I found one called BlitzODE. Can someone please explain how to use the commands?


Ginger Tea(Posted 2011) [#5]
try posting a thread in this forum the blitz userlibs one, its better to ask the right questions in the right places.


Vorderman(Posted 2011) [#6]
I have found a copy of my old ODE wrapper that I created shortly after Blitz3D was released. Bear in mind it is 10 years old or so, well before we had Userlibs etc...

However I've just tried running the programs and they still seem to work, so if you want a copy of it you are welcome. It has a whole load of simple example programs with it, ranging from a single cube demo to a few monster trucks on a racetrack.

Last edited 2011


Yasha(Posted 2011) [#7]
Can someone please explain how to use the commands?


BlitzODE's commands are for the most part straight ports of the original command set, so see the documentation on the ODE site: http://opende.sourceforge.net/wiki/index.php/Manual

Note that some people have reported that BlitzODE may have memory leaks, and it uses a very old ODE version.


Vorderman's ODE contains full documentation (and is a stunningly good example of how to create and package a library). The fact it uses CallDLL instead of the proper userlib interface might hurt performance a bit, but it has a nice (if small) selection of beginner-friendly functions. Doesn't require any setting up, either.


My own ODE also comes with full documentation, albeit markedly inferior to Vorderman's. It uses a completely different, heavily simplified API, intended to match better with the B3D paradigm (whether I succeeded in that goal is up to you). Its only real advantage is that it uses the latest ODE core.


If you want someone to actually help you directly... that's why people pay for JV-ODE.

Last edited 2011


Captain Wicker (crazy hillbilly)(Posted 2011) [#8]
What about BlitzBullet? What is the difference between the trial and full versions? From what i've seen there is no difference. Why call it a trial? There is no trial to it!??? Why does the trial have no limit to the ammount of times that it's used? Seems nice though. :)

EDIT: So why would you need ODE physics in games? And how would using this effect the game itself?

Last edited 2011


Yasha(Posted 2011) [#9]
So why would you need ODE physics in games? And how would using this effect the game itself?


...um?

ODE is one library that provides physics simulation, out of many (you have identified others; they all do fairly similar things). ODE's main selling points are that it is quite lightweight and simple compared to more powerful solutions like PhysX, but this does mean that it won't take advantage of, e.g. GPU acceleration, and it may have some stability problems if you set up a scene badly.

Physics simulation gives objects natural movement, letting them bounce off each other, roll around their centre of mass, fall with gravity, etc. Blitz3D does not provide any kind of physics simulation built-in (only a very basic collision detection system), so you need a physics engine if you want objects to move as though realistic forces are acting on them.

A physics engine can be used to simply improve the sense of realism (e.g. corpses that ragdoll instead of playing a preset death animation; objects that fall over when damaged), or it could be a core gameplay element (racing games usually need to make heavy use of it; perhaps you could make a game about stacking blocks or something).

(I don't know anything about BlitzBullet; have not used.)


...on the other hand, if you don't know what a physics engine is needed for, why are you investigating them?

You should decide what you want to do, then find the tools to implement it, not look for excuses to use physics engines because they seem to be a popular component.

Last edited 2011


Captain Wicker (crazy hillbilly)(Posted 2011) [#10]
I'm trying each physics engine that I can find to compare to the ODE engine inside DBPro. Please do Not be rude toward me for this!
Im not sure which library is fastest so I need to find something just as fast as the DBP ODE command set. I used a lot of ODE physics back when I worked with other languages and am used to them.

Last edited 2011


Yasha(Posted 2011) [#11]
ODE will be just as fast as ODE, for the obvious reason that it's the same library, so you should get more or less the same performance out of miniODE or JV-ODE as you did on DBPro, since they both use the latest core. BlitzODE and Vorderman's ODE may be slightly slower due to being much older.

However, if DBPro doesn't use the standard ODE command set (which I assume is the case if you needed to ask about BlitzODE's fairly standard commands), then you may find it a tad more difficult to do a straight port, and the commands may be doing different things in the background.

PhysX will be faster than ODE on modern machines, but (in my limited experience) slower on older ones.

While I have no experience using Bullet, it does seem to still be actively maintained, whereas ODE hasn't been updated in a couple of years now; so ODE may be less up-to-date.

You may be able to get specific optimisations out of each possibility depending on what your application needs, since the different engines have different points of focus.

All things considered however, speed should be a non-issue: all of the engines are adequately fast for most purposes, and you really aren't going to notice any difference between them.

If you were using ODE before and are familiar with it, your best option is to continue to use it, since 1) you know it serves your project's needs, and 2) you already know how it works.


Captain Wicker (crazy hillbilly)(Posted 2011) [#12]
So PhysiX is actually better than ODE? (for Windows7) (Faster)
Didn't nvidia have some type of physix addon or something of that sort? (Nvidia PhysiX)

Would you say that PhysiX can be worth learning over ODE?

Last edited 2011


Yasha(Posted 2011) [#13]
NVidia cards since the GeForce 8-series have supported physics simulation in hardware via PhysX, yes. This is what I meant by "modern machines". Windows 7 has nothing to do with this.

Would you say that PhysiX can be worth learning over ODE?


It can, but this is the point where you really have to decide if it is based on what your project needs.

-- PhysX offers features beyond simple rigid body dynamics (breakable objects, soft bodies, etc.)
-- PhysX is faster when hardware acceleration is available
-- PhysX is slower when hardware acceleration is not available (maybe... I thought so anyway)
-- PhysX is a lot larger and more heavyweight, requires an actual complex installation (ODE is just one file)

So, if you need snazzy features like soft bodies, you need PhysX. If you intend to have massively complex scenes with thousands of small objects colliding at once and interacting with funny magnetic forces to form complex structures, you have a high-end simulation that would be better off on PhysX (not least because it wouldn't run on old hardware anyway).

On the other hand, if all you want is to have stackable boxes and ragdoll corpses in the background of a generic FPS, then no, there is no great value in changing to PhysX.

The fact is that there are different best tools for different purposes here, and you're not going to get an answer to "which physics engine is best", no matter how you rephrase it, because it's the wrong question.

Also, as I pointed out above, it's "PhysX". No "i".

Last edited 2011


Captain Wicker (crazy hillbilly)(Posted 2011) [#14]
Stupid Question - Does PhysiX work on Intel Cards?
I'll Try PhysiX. Thanks for your help Yasha. :)