Page 1 of 1

12.1 Details?

Posted: Mon May 17, 2010 2:48 pm
by Danthekilla
Hey I was just wondering what 12.1 changed? Was it just the few things from the roadmap and the new samples?

Also what kind of timeframe is .13 looking at? It looks like it is huge and so many things on there look so good.
Here is what i am looking forward to encase you wanted to know :)

?-Direct solver for contact manifolds for better stacking (a prototype has been implemented, but getting it 'production ready' is going to take some time)
-Improve Box-Box collision detection special case and add more special cases
-ResourcePool initializers and extra control over how it allocates
-Improve simulation island management, create special SimulationIslandConnection interface to help with bookkeeping
?-Improve entity damping
-Speedier continuous collision detection with additional special penetration-stopping contacts
-Speed, robustness, and usability improvements to GJK/MPR collision systems
-Keyframing to easily control entities at the position level while the internal systems manage the velocities so that collisions still look right.

Anyway keep up the amazing work.

Re: 12.1 Details?

Posted: Mon May 17, 2010 3:27 pm
by Norbo
You can check the version log for v0.12.1 at:

The main changes were some fixes to the RevoluteAngularJoint and the Box-Box special case. I actually need to update the roadmap to reflect the fact that it's been completed now.

It's hard to say when v0.13.0 will be completed. There's a decent chance that it will be split into more than one version in an effort to get parts out faster. I don't want it to take near as long as v0.10.0 -> v0.11.0 took. I'm aiming for July-August for completion of v0.13.0's features (whether they are split into other versions or not), but I'm not too good at predicting things this far out as v0.11.0 proved.

Edit: Somehow I managed to forget the box-box change on the version log. I'll fix that real quick; that particular change took about 90% of the development time for v0.12.1 :)

Re: 12.1 Details?

Posted: Mon May 17, 2010 3:36 pm
by Danthekilla
I thought you did some box vs box work. I couldn't find it in the version history thou.
What is faster Sphere vs sphere or box vs box?
I mean sphere vs sphere is what i would guess but its allways good to ask.

You said that v0.13 is probably going to be split up into a few smaller releases, any idea what will be in them? Any chance of that pathing system or anything else from above ;)
Thanks for replying so fast, its crazy fast :) you are so helpful.

Re: 12.1 Details?

Posted: Mon May 17, 2010 3:53 pm
by Norbo
Sphere-sphere is indeed faster than box-box; it also has another benefit of producing only a single contact point. Box-box can produce 4 contact points which puts 4 times the load on the contact solver.

I decide the feature order mainly based on developer feedback, so the keyframing/pathing system is currently looking to be one of the earlier features :)

Out of curiosity, I'd also like to finish the direct solver implementation. I'm not entirely sure at this point what kind of speed/stability it will allow, but it should be interesting. ResourcePool initializers are a pretty simple change so they'll probably be an early feature too.

Quite a few of the collision-related bullets are tied together in a behind-the-scenes rewrite of almost the entire collision detection system (which in turn touches many other systems). These changes will most likely be bundled together in a single version. Less tangled features like a box-triangle special case might be added earlier.

I've also been tossing ideas around for a new multithreading approach. I'll probably try to do some prototype work on it shortly to see how feasible it is before trying to integrate it into the engine, but it may show up in an earlier version.

Re: 12.1 Details?

Posted: Tue Jun 15, 2010 6:12 am
by Norbo
Quick update:

I've spent the last couple of weeks creating a variety of different prototype threading systems with reasonable results. The best of the prototypes beats the current system by around 10-20% on task loads that would be encountered in the physics engine. It also balances loads between workers a lot better.

However, my goal wasn't to get a tiny boost compared to the old system; I wanted it to be competitive with the new TPL/threadpool in .NET 4.0. Unfortunately, even the best prototype so far is about 20-30% behind.

I think the performance gap can be closed and have created some plans for yet another prototype, but this one is going to be a larger project than the others. In the interest of getting the first iteration of v0.13.0 out sooner the thread manager research will be dropped for a couple of weeks.

It looks like the first iteration will be quite small, including things like the path-following system, some api cleanup, and maybe a couple of other of the tiny items on the to-do list.

Re: 12.1 Details?

Posted: Tue Jun 15, 2010 8:16 am
by Danthekilla
Cool that sounds sweet.
The path system sounds very useful, will it work for rotation and position or just position?

I will be making a post with a few issues that i am having about cylinders and some of our work in progress soon. (Im just waiting for the videos to upload)

Re: 12.1 Details?

Posted: Tue Jun 15, 2010 6:39 pm
by Norbo
It will work for both orientation and position, and for both dynamic and kinematic entities.