Page 1 of 2
Euphoria physics engine GC 2006 demo
Posted: Sat Feb 02, 2008 3:49 am
by vagoneta
look at this video.. is incredible
http://www.youtube.com/watch?v=3bKphYfUk-M
Havok/euphoria physics engine for Star Wars. The same is using to make GTA IV

Re: Euphoria physics engine GC 2006 demo
Posted: Sat Feb 02, 2008 3:53 am
by jonas
I think I remember posting something about this a while back. But I love what lucas arts has been doing with the euphoria physics. I can't wait to see the starwars force unleashed out on the xbox 360 it looks amazing!
Re: Euphoria physics engine GC 2006 demo
Posted: Sat Feb 02, 2008 5:48 am
by MakerOfGames
That is an impressive showcase. Actually I have analyzed it in the past. Last summer I first saw the Star Wars wood demo.
The destructive system in Star Wars seems to me to be a complex system of braking down objects from a large state into a composition of smaller objects. Then if the smaller objects do not need to be disassembled, they reassemble into a solid large object yet again by looking at the object pieces around them to see if they have changed to a "destroyed" state and if not, erase those extra polygons by either boolean operation or subbing out to a new object of the shape and textured appropriately. The constant breaking down and rebuilding of objects does dramatically increase polygon counts in complex scenery however. As for the jelly example, that I would guess to be an active vertex manipulation or a dynamic system where bones are added and subtracted to an object as needed to properly deform the object. However, I am pretty sure that the entire theme behind that kind of interaction is to break things down and then build them back up.
Now on the matter of the character animation blending I am just wondering why it has taken the video game industry this long to figure it out. I have been planning an animation system like that for my game for over a year now. What I think it boils down to is basically the way a puppet works. There are hot spots on the model which control the functions of movement such as rotation and bending. Then analyzing typical human response patterns to how each reacts to basic stimulus and applying them independently for each major limb or body part group enables the dynamic and complex animations. What that means is that it is a high powered AI driven ragdoll that responds to input from the player. It seems extremely complex but I am pretty sure that if you boil down the actions available to animate at the smallest level the combinations of all of them are what makes the larger smoothly animated system. What I mean is that it is indeed a complex happening and compilation of code and animation, but it is the combination of much smaller simpler steps that enable the big combo of actions.
I just did some research on the character animation system and apparently the system has been in place for a while, it just hasn't been used widely for games as I take it because no game has flaunted it before. Either way, I would have figured that game designers would have been attempting this for at least a few years already and would have used bounding box ragdoll as seen in Half Life 2(yes it is btw, I have researched that as well

).
If I sound cocky or condescending I am sorry because that is not how I meant to come across. I am very impressed by the game interactivity demo and the character animation system and have high respect for the companies involved. I just wanted to share how I feel those special effects are achieved

.
Re: Euphoria physics engine GC 2006 demo
Posted: Tue Feb 05, 2008 7:24 am
by jonas
Wow you have a way with words, I totally understood that. You sounded in no way cocky. That is very interesting, thanks for posting what you have discovered. I attempted to try and figure out how they accomplished this, but never really did. That makes sense though...

You sounded in no way cocky.
Re: Euphoria physics engine GC 2006 demo
Posted: Tue Feb 05, 2008 7:15 pm
by MakerOfGames
I was worried about sounding cocky or condescending because here I am an independent game developer with only part of a game designed and I am wondering why the pros haven't thought up what I have yet. I just thought that may sound like I think more of myself than I am

.
Anyhow, I have uploaded a few pictures below of how I feel the damage system functions so there is a nice visual now. Also, I took screen shots from the first demo I saw last sumer and outlined the breaks and saw that they are very similar in some cases. Those are images I edited last June or July to see exactly how their system works.

--------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------
As you can see in the Lucas Arts images, all four of them are taken at different times from video I was watching as the time progression bar under the video shows. Strangely, there are only subtle differences between the damages sections of the models. They are different shapes, but only a little bit around the edges.
Edit:
If you look even more closely than what I highlighted last summer you can find extremely startling similarities in breaks in all four images around the base of the plywood. There are also other similarities if you can look close enough. *Look at the top and bottom images on the right side of the quad of images! They are almost identical breaks!
Re: Euphoria physics engine GC 2006 demo
Posted: Thu Feb 07, 2008 3:54 pm
by jonas
ok so let me see if i'm getting what your saying.
1. It gets the point of impact.
2. it subdivides down in that area.
3. It calculates the breaks from a given value which is the toughness.
4. It then creates the fractures along the rest of the wall.
5. If the fractures around the point of impact are great enough it will splinter and fall off.
Am I some what close? I'm still very interested to know how they take what is possibly 2 polygons, and break it into several billion polys? Or do they use some other method? With what has to be millions of things its processing just with the break alone, how would they do this and not kill the frame rate entirely? I know it is for xbox 360 and its advanced gpu and cpu... Wow I really wish I could get my hands on some code using this so I could further understand it.
Re: Euphoria physics engine GC 2006 demo
Posted: Thu Feb 07, 2008 7:55 pm
by MakerOfGames
Yes that is spot on. I am pretty sure that is how it is achived. I can't hink of any other way they woulc have that happen. I think any other method would require greater GPU's/CPU's.
Just to maybe help clarify this a little more I'll explain a little more.
Basically in games like half-life 2 and other games with break-able objects when the object takes so much damage(lets say a piece of wood), it spawns two smaller objects and deletes itself and thus created the "broken" piece of wood. The broken piece of wood is thus two new objects that fool the viewer into thinking the original has actually broken apart. So one model spawns 2 models that when laying next to each other form the larger whole piece. This is the standard model swap that is used to reduce the number of polygons on screen.
Now all I think that they have developed is a more in depth system like the current one. When an object takes so much damage, it spawns(or subdivides) into smaller pieces. The object hit looks for where it was hit and then breaks up the area affected even more(as my illustration above shows). Then the damaged object looks at the forces being applied by the damaging object(ie, bullets, crowbars, vehicles etc.) and applies the predefined damage system to the small pieces it has created. When applying the forces it then can detach the section(or disconnect the object) and then reassembles the remaining undamaged pieces into a larger object again. The breaking down process would only occur if the initial impact is flagged as having enough force to do damage, that way no excess devision is carried out.
Does that make my theory more clear?
Re: Euphoria physics engine GC 2006 demo
Posted: Fri Feb 08, 2008 4:39 pm
by vrageprogrammer
MakerOfGames wrote:Yes that is spot on. I am pretty sure that is how it is achived. I can't hink of any other way they woulc have that happen. I think any other method would require greater GPU's/CPU's.
Just to maybe help clarify this a little more I'll explain a little more.
Basically in games like half-life 2 and other games with break-able objects when the object takes so much damage(lets say a piece of wood), it spawns two smaller objects and deletes itself and thus created the "broken" piece of wood. The broken piece of wood is thus two new objects that fool the viewer into thinking the original has actually broken apart. So one model spawns 2 models that when laying next to each other form the larger whole piece. This is the standard model swap that is used to reduce the number of polygons on screen.
Now all I think that they have developed is a more in depth system like the current one. When an object takes so much damage, it spawns(or subdivides) into smaller pieces. The object hit looks for where it was hit and then breaks up the area affected even more(as my illustration above shows). Then the damaged object looks at the forces being applied by the damaging object(ie, bullets, crowbars, vehicles etc.) and applies the predefined damage system to the small pieces it has created. When applying the forces it then can detach the section(or disconnect the object) and then reassembles the remaining undamaged pieces into a larger object again. The breaking down process would only occur if the initial impact is flagged as having enough force to do damage, that way no excess devision is carried out.
Does that make my theory more clear?
For some reason, I have to believe that the Half Life Break is Less Memory/Performance consuming than the subdivision Thingy.
Re: Euphoria physics engine GC 2006 demo
Posted: Fri Feb 08, 2008 5:17 pm
by Destron
MakerOfGames wrote:Basically in games like half-life 2 and other games with break-able objects when the object takes so much damage(lets say a piece of wood), it spawns two smaller objects and deletes itself and thus created the "broken" piece of wood. The broken piece of wood is thus two new objects that fool the viewer into thinking the original has actually broken apart. So one model spawns 2 models that when laying next to each other form the larger whole piece. This is the standard model swap that is used to reduce the number of polygons on screen.
Yes, even though I was a tech noob when I played it for the first time, that's how I always imagined it worked.
However, I before actually playing the game, I remember seeing a tech video where the player ran around this room and there were some borders nailed to a metal frame or something. When he shot them with the pistol, it seemed more like this rather than the general "break in half" thing, i.e. it seemed more reactive to the area which it was shot. I'm gonna try to find that vid. It's possible that it was just more evident in the video than it is in the real game, but I don't know.
Re: Euphoria physics engine GC 2006 demo
Posted: Fri Feb 08, 2008 7:40 pm
by MakerOfGames
vrageprogrammer wrote:
For some reason, I have to believe that the Half Life Break is Less Memory/Performance consuming than the subdivision Thingy.
Yes, it is less memory/performance consuming but it is also a lot less realistic. The subdivision is what enables the object to show exact damage. Take the crates in Half Life for example, you beat them with a crow bar and they basically explode apart. It should in reality, and with the sub division technique, only apply damage to the affected area. Thus leaving the rest of the crate intact while the board you hit would be destroyed.
@Destron-
That was a general rule I gave out about things breaking in half for half life and I should have been more specific. The point was that objects don't break realistically in Half life, only good enough to fool the player. Half life just has things "break" and not accurately as far as I have seen.
Re: Euphoria physics engine GC 2006 demo
Posted: Wed Feb 13, 2008 2:33 am
by jonas
Yes that makes sense.

Thanks for explaining! If I ever get some actually progress on the game i'm working on I might take some time and try and experiment with subdividing a model like that and try and use your theory and see what happens. If you don't mind of course.
Re: Euphoria physics engine GC 2006 demo
Posted: Wed Feb 13, 2008 3:01 am
by MakerOfGames
Your welcome and feel free to experiment with my theory. I wish to do the same as soon as I can get far enough in my game project as well. That's actually how I created the theory, I wanted to know how it was achieved to see if I could recreate it for my own use.
Edit:
Oh yeah, I checked, and even in Half Life 2 Episode 2 objects just explode into pieces when they are hit, they do not take any local damage at all.
Re: Euphoria physics engine GC 2006 demo
Posted: Wed Feb 13, 2008 3:54 am
by darksmaster923
theoretically you could just make up a crate of destroyable objects, ie a bunch of destroyable planks made into crates. there are obviously bugs with this, especially movement
Re: Euphoria physics engine GC 2006 demo
Posted: Wed Feb 13, 2008 8:59 pm
by MakerOfGames
You could do that, but it would increase the constant number of polygons on screen. With the system I have described it only generates polygons when it needs to. This helps enable the possibility for highly destructible but mostly low polygon scenes.
Re: Euphoria physics engine GC 2006 demo
Posted: Fri Mar 07, 2008 1:18 am
by jonas
Ok I was cruising the internet, and I ran across something talking about
octrees, it spiked my curiosity, after looking at it, I thought of this. Is this pretty much what would be done? The destructable model is made into an
octree of sorts?