If you read the JigLibX licence carefully you find:
"It's not allowed to make monkey games with this engine"
:) VERY nice. I really like the scenes where the monkeys are talking - nice feature of your engine(?)/game.
Ha. I missed that part of the licence. I'll just put wizard hats on all the chimps, and it will be a wizard game.
Thanks for the compliments. The engine has been in development for over a year now. I'm the only developer on it. I was sad that my game didn't even make the top 20 of the Dream.Build.Play contest, but oh well. I've since been working hard on optimizing how my engine uses JigLibx.
A huge thing that helped is:
Now i group all non-moving "level" collisions into one skin with one body. So now i will have like 5 triangle meshes that make up a level, along with tons of manually placed boxes, but after initialization, it all ends up as just one skin / one body. That helps performance quite a lot. You will notice that the levels in the video are all very flat, but we are going back through every level, and creating models with topography and blah blah. The final game is not going to be so flat.
I'm really happy, that over a year ago, i was worried that JigLibX might not give the performance i needed, but after optimizations, the physics engine is no longer even close to being a bottle neck.
That's one big alpha chimp.
I know this might be odd.. but that's an awesome menu.
Putting the whole level into one collisionskin/body improves performance? I was thinking that would slow it down due to the whole thing being checked at once?
I was going to try and do the opposite, spilt my levels down into smaller parts and disable them when there not being used.
Yeah, this is the logic …. (maybe noone88 could correct if i'm wrong)…..
Even though the body is HUGE, and it's all checked at once, the 'sweep and prune' system (CollisionSAP) actually minimizes the geometry that is checked based on what is near and stuff (not just which bodies to check, but which geometry WITHIN bodies). So yeah, the level is big, but it actually DOESN'T all get checked if there is nothing close to colliding.
Also, by having multiple bodies, let's say 10 immovable bodies, they are most likely touching (like a box for a wall, touching the box for the floor), and for that reason, they are ALWAYS firing off 'collision' events. Every frame. You don't need that and it is TERRIBLE for performance on XBOX 360. If all the 'shapes' are in one skin, it doesn't count as colliding, because it IS the same thing.
I've spent a year playing with this, and my first experience with performance on XBOX was completely unworkable. I've spent all this time figuring out how to make it handle semi-medium sized levels with multiple characters, and run smooth on XBOX. Putting my whole level into ONE body made that world of difference.
I wrote a special class to aggregate all my bodies into one…..
and i also changed the ModelOctree class to just create and expose the Primitive (trianlge mesh) instead of setting up a new body in the collision system, and then i add that primitive to the class mentioned above.
Soon i will share my scene designer and everyone will love the JigLibX library and my scene designer. Ha.
Wow I can't believe I've never seen that post.
When I continue working on my levels, i'm definitely going to have to give that a try.
I'm currently working on my characters, and i've found the same
they are ALWAYS firing off 'collision' events. Every frame
So had to change the way I check for rays hitting them. will post something when it's actually something worth posting.
I look forward to checking out your scene designer. This is why i love opensource/indie development. :)