On Tue, Mar 17, 2009 at 6:54 PM, Mason Green <[email protected]> wrote: > Brian wrote: >> >> I don't know how different Blaze 2.0 is from the version i had, but I'll >> take a look when I get a chance and see if I can be of any help. I'm using >> Box2D for the time being because there were still GC issues, but I'm very >> excited about "smoothed partial hydrodynamics" and non-convex >> models/partitioning. > > Blaze 2.0 is 90% Box2D, using all the same algorithms for the CPU intensive > tasks. All I did was add smoothed particle dynamics, and force generators > from the Motor2 engine. The new version is much, much different from Blaze > 1.0. > > Motor2 has a few other features that I may eventually incorporate, but as I > mentioned, for all practical purposes Blaze 2.0 is pretty much a straight > port of Box2D. > > Performance should be on par with the Java and Action Script variants of > Box2D, aside from their more efficient garbage collectors. If there are D > specific tricks I can use to speed up the engine, I would definitely > appreciate the help and/or contribution.
Using value types where possible would probably help. Porting the SOA from the C++ version of Box2D would probably also give a tremendous speedup (and fewer GC pauses), though I don't know what effects that would have on the API. The way it is now is really noticeably GC-bound. On some of the more complex testbed scenes (like the compound bodies test), there's a noticeable pause every two seconds or so.
