We are a team of enthusiasts that want to build a online 3d space sim. We a currently in a dilemma of choosing the right physics engine for our needs. (we would deal with lots of moving object that collide)
By our calculations we would use about 40.000 objects in one location (EVE analogy of space regions)
I know this number of object is really huge and computing all collisions is too costly, but we figured out we don't need to realistic collisions, we don't need to simulate friction between objects, what we would need from the physics engine is to:
- allow using lots of objects
- allow speeds of 10 km/s (and even more), so i guess it should have some advanced CCD (continuous collision detection) for this to work fine
- compute the coordinates of objects in a double frloat format (our worlds will be really huge, like solar systems and we need precise location of objects in space, single precision float is not enough)
- very simple collision model, no need of realistic interaction (no friction needed)
Does Tokamak allow such things, or maybe someone could help me with this task?
(i didn't find any documentation about limitations of Tokamak)
Thanks in advance.
Hi. Sorry for the late response.. AFAIK Tokamak doesn't do CCD internally. If you require it, and can't roll your own broad phase collision detection using raycasts, then ODE, Havok, or Newton physics sdks might be a better fit.
I've personally used Tokamak mostly for car, plane, and ragdoll simulations, and seen it used for puzzle games and FPS style projects.
If your collision needs really are as simple as you describe, you could probably do a broad phase collision pass with your ship/units bounding radii projected along thier velocity vectors (capsule/capsule test).
Based on the results of this, you could then perhaps populate some tokamak simulator(s) on the fly, to resolve the near scale collisions on a case by case basis, or just fake something up yourself.
R.E. Double precision -
AFAIK Tokamak relies on floating point , trading precision for speed, and also may(?) also use reduced precision floating point, as well.
One commonly used technique is to store your universe coordinates in whatever space you chose, and then apply a global transform to get them in and out of the simulator coordinate space.
Having said that: you could probably globally search and replace f32 in the tokamak source tree to be f64, and run Tokamak in double precision, without too much hassle ;)( ymmv ) but if you decide to explore this, please let us know !
I wanted to add: I just ran across an *excellent* benchmark app, by Adrian Boeing, linked elsewhere on this site, that compares a number of the available engines.
His site is here:
And the app is here:
Unzip it and run palDemoMark.exe from the win32_bin directory.
Log in to post a comment.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.