Jump to content
  • Advertisement
Sign in to follow this  
spek

Break stuff

This topic is 2994 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, I was wondering how common games manage destruction. For example, when I fall on a table, it breaks in two halfs. Halflife2 uses this quite a lot. I can imagine three ways to do this: - make two seperate models and paste them together with a joint. When it breaks the joint basically disconnects. However, I think it would be hard to cover the seam completely... - Make a complete model that gets replaced by two "gibbed" models when it beaks. Sounds like the most logical way to me, but making a smooth transition between the original and damaged subodels (including passing the physics) sounds tricky to me. It may also require quite a lot variations in case the model can break in several ways. - Split up and reconstruct the mesh(es) realtime... To make it even more difficult, how to do it for (living) skeleton animated models / ragdolls? In Resident Evi 4 for example, you had this enemy "Regenerator". You could randomly blast off his legs, arms and head while it still kept attacking you. Anyway, how do they render the torn off limbs? Making an alternative (animated) model for each possible damage would result in lots of models... Cheers, Rick

Share this post


Link to post
Share on other sites
Advertisement
Half-Life 2 just gets rid of the original model and replaces it with a broken model, I think.

If you want to see some cool stuff, check out some papers by James O'Brien

He was the guy behind the physics in the Force Unleashed, which does a technique called finite element analysis to realistically break things up. He made a real-time version of the same technique used in simulated crashes of cars. The math is buzzword heavy, but not too intense once you get down to it. Wikipedia helps, read his first page and check the references.

Share this post


Link to post
Share on other sites
Thanks for the paper! I doubt if I'll ever understand the math, but that definitely kick's ass. I'm not sure but Newton 2 also has a demo with breaking boulders (or would that be a set of fixed models that spawn?). I didn't look iat the details from that demo so far, so I don't know how it should be implemented (rendering the geometry with VBO's, the texture for the broken inner part, handling multiple physical bodies, and so on). Anyone experience with that?

However, somewhat older games have pretty convenient results as well with simpler techniques. Breaking damage is not the most important of my (hobby) game so simplicity is pretty important. What I certainly want is blowing of limbs though. A simple trick would be scaling the limb joint to a mini-scale (I saw tiny heads on the GTA 3 humans after a headshot sometimes). But that doesn't give you a nice wound yet. Maybe that can be done by attaching a bloody stump model?

Thanks for the help!

Share this post


Link to post
Share on other sites
One of the most common techniques you already mentioned.
Have the artists pre-break the model into a bunch of shrapnel pieces.
On break, remove the origional whole model and replace it with the shrapnel. Apply any forces you want, and let it fly!

Here on GDC Vault there is a video by NVIDIA, "authoring physically simulated destruction with NVIDIA APEX". It covers how the NVIDIA Apex tools do a lot of the heavy lifting. They take the base art your artists have made, and give them tools to quickly split up the art into shrapnel, as well as set the physical properties of the base material and the shrapnel that spawns. The video covers how they applied this to Batman:
Arkham Asylum.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!