Realistic Vehicle Damage

Ok so I was wondering if there was a way to make some realistic vehicle damage for a racing game or whatever game you create with vehicles or damagable objects. I guess this subject hasn’t been talked about much since in the search I got 22 results talking about the war in Iraq and some very interesting stories but anyways…I was wondering if there was a way to have the damage be realistic and even random. Most games it looks the same no matter what you hit, where you hit, how hard you hit, ect. One post that I did fin interested me and it was here http://blenderartists.org/forum/showthread.php?t=101635&highlight=game+engine but sounded like it was for animation. Any thoughts or suggestions?:spin:

Here’s a suggestion:

You should try to set “realistic” goals for yourself.

Unless you work for a professional game development company that can afford licenses for the latest and greatest in physics/collision detection -> otherwise, you should keep the technology part simple, and focus on making innovations in gameplay.

Looks really cool. At first I thought it looked so good it was fake. Keep it up.

One question though, does this even work in the BGE? I ran it in the blender game engine and it does nothing. =(

No, that’s not for the BGE.

No, that’s not for the BGE.

I thought so… but then why is it in the game engine forums?

I don’t use the Game Engine (in fact, what the heck am I even doing in here o_0) but i will add something. 1) Random vehicle damage is possible, but i highly doubt it’s possible in Blender’s game engine. There’s only ONE game in existence that i know of that managed to do it, and as far as i know it was never actually released to the public… there was a tech demo about 5 or 6 years ago… game was a Grand Prix game, but i dunno the exact name.

Anyway, damage modeling in Blender is probably possible. You’d have to set up some stuff for it tho. The best way i can think of is to actually make multiple models of the vehicle and switch between them when the car gets damaged. Easiest way is to make 2 models: Damaged and not Damaged. However, if you were thinking more like GTA’s models where they can get damaged on the sides, back, front, hood, etc… You’r looking at either making a LOT of damaged car models to reflect every possible combination of damage possible, OR making the car out of several seperate models that get switched seperately. So… Left Door, Right Door, Body, Front Fender, Rear Fender, Tires, Hood, Trunk, Roof… spoiler… whatever else. Then giving them all damage sensors or something so you know when to switch them after they’ve been damaged a certain amount… They’ll also need multiple textures to reflect the damage. I dunno how hard it would be to set the system up in Blender, as i have a little less than zero experience, but it SHOULD be possible, with what little i know of the engine itself. Now, if it’s possible to do it with more than 10 FPS is another matter entirely, tho really i don’t think the FPS would suffer too much if the game gets enough memory to store all that crap (multiple models, textures and i assume more cars and buildings and stuff since just driving a car around on a big flat plane would get dull after a while :P)

Anyway, hope it hels give you some ideas. I’m pretty much with Social… I dunno what your experience level is, but if you’ve not gotten at least a car model driving around yet, I’d start there or ever simpler first.

You could make your car out of many different objects and set rigid body joints to attach them to the car, then use a threshold parameter to break the joints under enough force, this could be for say, doors, the hood, glass, ect…

Now for very realistic damage modeling with dents and tears and damaged looking textures, I’m afraid you would need one of those very high end engines for the next Gen consoles and GPU’s.

you should look at martinish example. He made a car which deform itself with armature. I think it’s the best way to make it. there is another and you could improve it with action property actuator and multiple sensor.

You could make your car out of many different objects and set rigid body joints to attach them to the car, then use a threshold parameter to break the joints under enough force, this could be for say, doors, the hood, glass, ect…

I wouldn’t recomend attempting anything like this for 2 reasons:

  1. Because a setup like this would be extremely cumbersome and time consuming to make, and wouldn’t have any other real applications, you’d have to redo the entire setupfrom scratch for another object.

  2. It would attack the frame rate so bad nobody would be able to play your game and thus wouldn’t be able to see your hard work anyway. Like Social said, unless you have th world at your disposal you should stick to something more achievable.

There is a game called Live for Speed that has Realtime Car Damage.
http://www.lfs.net/
It’s pretty fun actually.

Wow, for not being a GE user, you have the right idea.

mobius121 if no matter of convincing from all these other GE users before me will work, and you actually have to attempt this. The best way I believe would be to do it Squiggly_P’s way. But instead take it one step further. Each part of the car is made up of parts, so break it down as such.

  1. Have the basic base car frame, and then add on to it with the hood, back, windows, lights, etc. (Remember each part will be a different object by itself, that must be parented to teh base car frame).

  2. Then create different level of damage meshes for each part of the car. (Very tedious to do by the way).

  3. Now comes the harder part. You have to find out a way to detect damage to certain parts of the car (maybe a ray sensor for each part might do to detect collision with the wall, anther car, etc).

  4. Once detection with a collidable object is detected for that part of the car, replace the mesh of that part of the car with a higher level of damage mesh. Then the process starts all over again, and then you replace it with an even higher level of damage mesh, etc.

Seems simple enough of a process if you have loads of time and motivation. But personally, I wouldn’t attempt this either. It would look cool, but there’s not much fun and game innovation in trying to do this.

Jason Lin

Thanks every one for their tips. I am not a game engine pro and I have a little understanding of the capabilities so…thats why some of my questions may be a little unrealistic :wink:

it might be possible to parent different parts of the body to the chassis, and have either rays or collision sensors to replace the meshes with crumpled ones, and then have the crumpled parts spawn physics objects to seem like the part falls off the car after yet another collision. (you should use collision hulls rather than the actual body part meshes)

even with 4 parented “zones” it will make a pretty large performance hit. so you will need to take it easy when modeling the map and the other cars.

Very interesting. I was hoping to be able to cause everything to smash in including the frame of the vehicle, but I guess thats not possible, at least not with the blender game engine. I am not sure if there is one that would allow that or not. I don’t have any idea about programming a 3d program or game engine but by looking at the fluid sim and seeing how the object (fluid) deforms and changes shape when it collides with an object, I wonder if its possible to apply the same concept to cause objects (like ones that are supposedly made of metal or another bendable/dentable material) to be dented in or even deformed by a collision. In order for that to look good when applied to a vehicle I am sure you would probably have to make every part of the vehicle separate and put them together or something which would take a lot of time but I am sure in the end be really interesting. But like i said I have no understanding of the capabilities of creating something like this.

Later versions (probably as in years away) of Blender might allow for realtime soft-bodies, which might make a “crumpling” effect possible with physics.

http://blenderartists.org/forum/showthread.php?t=82313

this tread should help

Didn’t know anybody replied to this thing. Thanks but the above link didn’t tell me how to do it but it shows a very interesting result that would work. How would you use armatures to make this happen? It looked really cool but there was no explanation on how it was done. Is there a place that has the info that I crave on how to do this? Or maybe someone here who knows how? :slight_smile: