Cars Evaporate on Impact at +250mph

Build 0.C.2962 Experimental, Commit df6647a

The current car collision physics work well enough at low speeds. However, they start getting a little wonky as you start going faster; damage to the car seems to scale wildly disproportionately when it hits a solid enough terrain obstacle, like the wall of a building. If you hit (or exceed) 250mph, that tends to be enough to cause any car (regardless of armor) to be destroyed. And I tested this; I plowed a Sports Car, a Military Cargo Truck, and a Road Roller into buildings at 300mph, and all instantly disintegrated into a fine metal vapor on impact, usually leaving behind only one-to-three tiles of grey-damage frame (and a lot of scrap, obviously). Where it gets really interesting, though, is this: In all cases except the Road Roller, the vehicle was brought to an instantaneous stop upon impact with the wall (the single tile of road roller kept going until it hit the wall on the opposite side of the room). Furthermore, it only caused minor damage to the building, only destroying the walls that were directly struck and leaving the rest intact. Finally, and most bizarrely, the annihilation of the vehicle was so complete that it broke physics and left all of the test drivers completely unharmed from both the impact and the absurdly-sudden deceleration from 300mph to 0. Apparently if the seat gets vaporized, the code that damages the occupant doesn’t get called or doesn’t recognize the driver as an occupant anymore.

Finally, this collision weirdness doesn’t apply to vehicles or creatures, who seem to react normally to the absurdly-high-speed collisions. The real glitchiness, I suppose, is mostly regarding how a driver can survive such impacts with nary a scratch, but it also seems odd to me that a single modern house wall can bring a 12 ton vehicle doing 300 mph to a dead stop.

Yeah, larger vehicles should probably be a bit better at punching through objects. That said for smaller vehicles it’s about right though, since normal cars will basically disintegrate at speeds well below that. Check out this video of several crashes (most at much lower speeds). Especially note #8 where it crashed into a tree, since that’s probably the one that would give you the closest impression of a crash with a solid object in Cataclysm right now. (Part of this is also the fact that where in the real world many crashes tend to involve flipping and similar ways of lengthening the crash times, our cars can’t do that; when you hit something it’s essentially a guaranteed head-on collision with no way for your car to flip over or around the thing you impact.)

I have been wondering why these cars can reach such silly speeds?
And also stop in seconds.

Can we have realistic speeds and breaking?

We’d love to but physics… is not a simple thing to handle equation wise and get it turn out realistically. As such it’s basically as it is until we get someone with enough understanding of the physics behind all of it and is willing to put in the time to code in a system that both functions similar to reality and is easy for the player to understand.

Could we not just put a max speed limiter on all vehicles?.
As for breaking how about increasing the turns it takes to stop.

I understand this is not a realistic way but it might be a little more true to life? :slight_smile:

P.S

Thanks for replying :slight_smile:

Basically one of our big tenants in any development we do is to try to avoid “hacky” implementations when we can, of which hardcoded limits like that are fairly close to the exact definition of it. When the eventual time comes that someone rewrites it to work the “right” way, then every little hack you do like that means one more thing that you need to remove, fix, and hopefully not break anything else while doing so when you want to do it the right way. On top of that they tend to compound off of each other, and the effect eventually becomes so great that you can’t get any development done at all. You might not know this, but things like that are one of the reasons larger factors (like z-levels, or good working disease systems) can get extremely hard to implement and take long periods of time to do. You have to go back in there and remove all the hacks you’ve built on top of one another before you can rebuild the foundation to do something new.

(That said don’t be afraid to poke devs now and then to try to get them to do something like this, all you’ve got to do is convince one to get it in and it usually will go in pretty quickly. :D).

Thanks for the explanation :slight_smile:

Yeah I totaly get why a hacky way would be a bad idea now makes total sense :).

I may put a request up on the github then and see if I get interest :slight_smile:

Thanks again

Developers said it’s where the rule of fun kicks in.