Games using bepu

Discuss topics related to BEPUphysics or physics engine development.
Abuzer
Posts: 20
Joined: Thu Jan 19, 2012 4:12 pm

Re: Games using bepu

Post by Abuzer »

Hey there,

Looks like this thread has been dormant for a while, so I figured I'd post some info about our game we've been working on to get it the ball rolling again.

I posted a dev-blog entry briefly discussing our BEPU integration into our game:
http://www.pixelfoundrygames.com/index. ... to-physics

The link to our company and game site is: http://www.pixelfoundrygames.com/

...and a gratuitous screen shot from the dev blog post:
Image

Cheers

V
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Games using bepu

Post by Norbo »

Awesome! It's looking great :)

I'm glad to hear that integrating a custom collidable wasn't a massive pain; those 'deeper' extensions don't get as much testing/cleaning as the high level API. There's especially quite a bit of redundancy between the static collidables (Terrain, StaticMesh, InstancedMesh) that could be abstracted up. Did you happen to run into any significant issues when it came to plugging the cube terrain collidable into the engine?
Abuzer
Posts: 20
Joined: Thu Jan 19, 2012 4:12 pm

Re: Games using bepu

Post by Abuzer »

Norbo wrote:Did you happen to run into any significant issues when it came to plugging the cube terrain collidable into the engine?
No actually it was relatively pain-free especially since the terrain implementation already took care of the majority of the framework pointing out what I had to plug to get it functioning properly. It was mostly a matter of translating the assumptions made in the terrain to work in all dimensions.

I'd probably say the biggest effort was put into getting an efficient GetOverlaps() implementation going. The final idea I used was to "reverse project" the incoming bounding box from the curved space above each face to a flat space defined by the face's coordinates before extracting the min/max verts from the shape's data set. It worked out pretty nicely and I added a debug draw callback into the function to verify the set of verts that were being hit during each collision. The one hack I had to add in the end was to grow the incoming bounding box by one unit in each direction and to this day, I don't know why that is the case.

The other function I spent a bit of time on was the RayCast function because it's fairly tough to shoot a ray in any given direction and get an accurate hit on a displaced sphere. While you can easily get up to the sphere's boundaries, (and unless I'm missing a known algorithm) from that point on, it comes down to ray marching (be it in pre-calculated steps - like cone stepping - or constant steps). All in all, I think I have it returning down to 0.0000001 accurate results within 20-50 height queries on the surface lookups. I'm thinking I could look into doing a full cell step which is similar to the way the terrain raycast works to further optimize the lookup, but we don't rely on it too much to warrant further optimizations right now. Of course I have the obvious optimization where I return the result in one shot if the ray is cast directly to the origin on the cube terrain which happens when an object requests its "altitude".

Last but not least, the function I had a bit more trouble than I thought was going to have is the ProcessCandidates() function where it checks to see if the object is inside the cube terrain and pushes it out if necessary. After a long time fiddling, optimizing etc, it finally hit me that the normal of the contact was the inverse of what I thought it was supposed to be :) But again the cool part is that it's a one shot call to see if the given object is inside the terrain. :)

Down the line, depending on how crazy we get with the number of physics related elements in the game, I'm thinking that I could probably keep optimizing the GetOverlaps() function and potentially special case it for certain primitive types if need be, but so far I haven't had to do it.

At first, I was hoping that I was going to be able to implement my custom collidable in a "plug-in"-like separate csproj, but after going a tiny bit into it, I realized that it wasn't going to work as I had expected because the API is expecting that collidables are compiled in and much of the functionality is tagged as "internal" keeping external libs from accessing them. Definitely a good thing for an end user who doesn't want to have to shuffle through things they are not really meant to see unless he's adding new features to the engine, and also probably good for speed purposes as the compiler can be more liberal about certain things when the given interface is not public.

Phew that was a long post! :)
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Games using bepu

Post by Norbo »

Interesting! Always good to hear how it's being used :)
jsuffolk
Posts: 6
Joined: Fri Dec 02, 2011 4:54 am

Re: Games using bepu

Post by jsuffolk »

Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Games using bepu

Post by Norbo »

Cool, neato! :)
LostMachete
Posts: 4
Joined: Thu Jun 07, 2012 8:09 am

Re: Games using bepu

Post by LostMachete »

Hey Guys,

My new game 'Null Battles' was just released on Xbox LIVE Indie Games! It utilizes Bepu for zero gravity combat.

http://marketplace.xbox.com/en-US/Produ ... c7?cid=RSS

I'd like to thank Norbo for his help along the way!
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Games using bepu

Post by Norbo »

As an expert in assemblages of balls and boxes, I can say that is a realistic simulation of ball/box based warfare. Well done!
6thVenom
Posts: 12
Joined: Mon Sep 03, 2012 6:31 pm

Re: Games using bepu

Post by 6thVenom »

Hi there, i had worked on a project for quite a while now, it's called "Steel Warriors" and it's a run'n gun like Contra and Metal Slug series.

It's a solo project that've been recently putted on hold, but i'd want to share with you the actual state of the prototype, it's coded over the XNA framework and use BEPUphysics for collisions and bullets checks mainly.

You can see 4 little videos on this Youtube channel:
http://www.youtube.com/playlist?list=PL ... H1EiOybZmq

Thanks to BEPUphysics and Norbo.

:)
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Games using bepu

Post by Norbo »

Looks great! Extremely polished, smooth, and content-filled (burrowing snow plain worm in the background :)), especially for a prototype :)
Eclectus
Posts: 20
Joined: Sat Feb 04, 2012 11:22 pm

Re: Games using bepu

Post by Eclectus »

Lots of good looking games here, thanks for sharing :)
Tiba
Posts: 4
Joined: Sun Jan 13, 2013 7:17 am

Re: Games using bepu

Post by Tiba »

here is what i have got going so far.
it get cool aroud the 2:15 mark

http://www.youtube.com/watch?v=uXI8sdyLMds
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Games using bepu

Post by Norbo »

Nice :)
Phippu
Posts: 24
Joined: Fri Jun 03, 2011 3:39 pm

Re: Games using bepu

Post by Phippu »

And here's a video of my latest game: http://www.youtube.com/watch?v=MwX8_taklLM :D

Prospeed:Wavecraft is a little boat racing game. The project is currently in open beta, you might get it over there: http://www.windowsphone.com/de-ch/store ... 754abd06e7

Enjoy :P
ruggy
Posts: 22
Joined: Sun Jun 03, 2012 3:17 pm

Re: Games using bepu

Post by ruggy »

My game Vampire Slayer FPS uses Bepu. Mostly for the static mesh collision, environment to the character controller class. Also use it for simple ragdoll when players die and the raycasts for bullets.



Marketplace: http://marketplace.xbox.com/en-US/Produ ... 0258550c53

I've PM'd you a redeem code for it Norbo. Thanks for the great physics engine.
Post Reply