Jitter Physics Engine

Jan 15, 2013 at 8:10 PM

First off, let me say I LOVE your engine.  I am currently using it my own project and having amazing results.  That said, I'm curious about the effort it would take use the Jitter physics engine as it appears to still be in active development, unlike JiglibX.  If you think this is something achievable, where would I begin?

Coordinator
Jan 16, 2013 at 6:09 PM
It will be a decent sized task. It will probably take about 15-20 hours of dedicated time. I also have to make sure it supports everything the engine already uses from JigLibX.



On Jan 15, 2013, at 1:10 PM, "clcrutch" <notifications@codeplex.com> wrote:

From: clcrutch

First off, let me say I LOVE your engine. I am currently using it my own project and having amazing results. That said, I'm curious about the effort it would take use the Jitter physics engine as it appears to still be in active development, unlike JiglibX. If you think this is something achievable, where would I begin?

Jan 16, 2013 at 7:27 PM
Thank you for your quick reply. It has just been an idea I had been thinking about implementing and was curious of the scale of the job and the potential benefits.

From: LordIkon
Sent: 1/16/2013 10:09 AM
To: clcrutch@cox.net
Subject: Re: Jitter Physics Engine [QuickStartEngine:429709]

From: LordIkon

It will be a decent sized task. It will probably take about 15-20 hours of dedicated time. I also have to make sure it supports everything the engine already uses from JigLibX.



On Jan 15, 2013, at 1:10 PM, "clcrutch" <notifications@codeplex.com> wrote:

From: clcrutch

First off, let me say I LOVE your engine. I am currently using it my own project and having amazing results. That said, I'm curious about the effort it would take use the Jitter physics engine as it appears to still be in active development, unlike JiglibX. If you think this is something achievable, where would I begin?

Coordinator
Jan 19, 2013 at 11:39 PM
There are some features I'd like from a physics engine that JigLibX doesn't provide, so if it has those that would be enough for me to switch over. Finding the time is another matter, it could be months before I have any meaningful free time.

- Nic

On Jan 16, 2013, at 12:28 PM, "clcrutch" <notifications@codeplex.com> wrote:

From: clcrutch

Thank you for your quick reply. It has just been an idea I had been thinking about implementing and was curious of the scale of the job and the potential benefits.

From: LordIkon
Sent: 1/16/2013 10:09 AM
To: clcrutch@cox.net
Subject: Re: Jitter Physics Engine [QuickStartEngine:429709]

From: LordIkon

It will be a decent sized task. It will probably take about 15-20 hours of dedicated time. I also have to make sure it supports everything the engine already uses from JigLibX.



On Jan 15, 2013, at 1:10 PM, "clcrutch" <notifications@codeplex.com> wrote:

From: clcrutch

First off, let me say I LOVE your engine. I am currently using it my own project and having amazing results. That said, I'm curious about the effort it would take use the Jitter physics engine as it appears to still be in active development, unlike JiglibX. If you think this is something achievable, where would I begin?

Coordinator
May 3, 2013 at 6:53 AM
Just a heads up, I've just released a new version of the engine that uses a new physics engine. I went with BEPU Physics rather than Jitter. BEPU seemed to have better support and more features.
May 3, 2013 at 7:38 PM
Thanks for the update, I'm impressed at how much faster this version runs than .263. Once again, thank you for all your hard work.
Coordinator
May 3, 2013 at 10:21 PM
No problem. I don't get much feedback about performance, I'm curious as to what kinds of performance differences you may have noticed.

Thanks!
  • Nic
May 4, 2013 at 2:39 AM
In general, on my machine I'm seeing a gain of a few FPS. On the sample scene without moving the camera, on .262 (sorry, I have removed .263 from my HDD in favor of .267) I get anywhere from 27-31 FPS, while on .267 I am anywhere from 32-35. When I add 10 of each physics item to the scene, on .262 I get 27-29, while on .267 I get 31-34. Out of my three tests, the only drop I am seeing is when looking at the sky, on .262, I get 90-101 while on .267 I am getting 60-61. Unfortunately, I don't have any game code to try this out on yet, so I can't tell you the effects on performance in an actual use case.
Coordinator
May 4, 2013 at 4:44 AM
Those numbers are pretty helpful. Do you mind if I ask what kind of hardware you're using?

Here are some stats I've gathered over the years:
ATi 9800SE with 128mb RAM, it ran the engine at about 45 fps, that video card was from 2003. This was with an early version of the engine.
Two Nvidia 8800s in SLI, bought in 2007) got around 120 fps.
My current hardware (One Nvidia 660gtx, bought in late 2012) gets around 300 fps.

The fact that you're getting 30 fps is surprising a bit, since that's lower than the mid-range GPU I had 10 years ago. I'd guess you're using some kind of integrate graphics GPU. You might be aware of this already, but you can lower the quality settings to get your FPS higher, you can turn off normal mapping, shadows, water refraction/reflection, etc.
May 4, 2013 at 5:10 AM
Actually, it's not an integrated GPU. It's a NVIDIA GeForce 9500 GT. I have no idea why it would under-perform the mid-range from 10 year ago. Just so that you can have all my specs, I have 4gb of ram and an AMD Athlon II X4 640. My PC is currently running Windows 8. Anything else you need, just let me know.
Coordinator
May 4, 2013 at 5:30 AM
A 9500GT is around 4-8x faster than a Radeon 9800SE pro, and has twice as much VRAM. Sometimes I wish I had older hardware around so I could profile the engine and make sure it runs well on a wide range of hardware. Instead I just try to be conscious of the features and make different versions of each feature, or allow them to be turned off and on.

I'm not completely surprised by your results though, the 660 I'm using is about 9x as fast as a 9500gt, with 8 times as much VRAM (2048mb), and it's getting about 9x the framerate, so that fits in with your numbers. The 8800GTS cards I had in SLI didn't matter much since the engine doesn't take advantage of SLI, so if we look at just one 8800GTS that is about 4x as fast as a 9500gt with twice as much VRAM (512mb), and it gets about 2.5-3x the framerate.

My best guess as to why my 9800SE pro was getting around 45 fps is that the engine was probably simpler when it was first made, giving it a better performance but with less features.
May 4, 2013 at 5:55 AM
I was curious what frame rates my Compaq CQ62-219WM with its integrated graphics card. With just the basic scene, with the camera in the default location, I get 6-7 fps on both version .262 and .267. While looking at the sky, I get 24-30 on .262 and 19-25 on .267. When I add 10 of each physics element to the basic scene with the default location, I get 5-6 FPS on .262 and 6-7 on .267. This laptop runs Windows 7. It has a Mobile Intel 4 Series Express Chipset, 8gb of ram, and an Intel Core 2 Duo - T5870 which runs at 2.0 GHz.
Coordinator
May 4, 2013 at 6:35 AM
Not bad considering the settings by default are almost turned up to the max. The only setting that can be set higher is turning on multisampling AA. I wonder what an old laptop like that would get with the settings set to low?

There are also steps I could do to make 'low' settings even lower, like capping mipmapping so that the full resolution is never used for textures. Also, you can turn down the physics simulation from 60fps down to 30fps. I've also considered a terrain LOD implementation, I actually had one about 80% finished at one point, and it improved framerate by about 15%, but when it recalculated LOD it caused framerate drops and it would need to be spread out over another thread so as not to interrupt the main thread. With VS2010 express I cannot debug anything except the main thread, so that makes developing for multithreading a bit difficult.
May 4, 2013 at 8:01 AM
I just realized that I have been referring to version .27 as .267. I apologize about that. With that said, I ran another test set of tests on my laptop using the included MinimumSettings.xml. With the default scene and camera location, on .262 I got 14-16 FPS, while on .27 I got 13-16. Looking at the sky, on .262 I got 42-65, while on .27 I got 57-66 FPS. With the default scene and camera location and 10 of each physics item, I got 14-15 FPS on .262 and 14-15 on .267.

I realize its no Visual Studio, but awhile back, I started a project to be able to build XNA games in SharpDevelop. Since SharpDevelop has the ability to debug other threads, it might be of use to you. I planned to finish the XNA templates for SharpDevelop, in the coming months, but if you would be interested, I could probably have those done sooner. Because of the ELUA, it would of course require that you already have Visual Studio installed to get the content pipeline assemblies, but that shouldn't be a problem.
Coordinator
May 4, 2013 at 3:35 PM
At the moment I'm not sure when I'll have time to work on the next version, the next few months at work are going to be very busy so I may not have the time or energy to work on the engine. It's good to know there are alternatives for multithreaded development, if I do think I'll need that I'll see where you stand at that time about possibly getting that done, but for now no worries. Thanks!
  • Nic