[Full Release] Important Changes to Inertia and Volume Calculations

Backwards-compatability was always the word on Roblox’s mind for years, many Roblox developers have learned to use these ‘bugs’ to their advantage and personally I feel that Roblox should embrace that and as a result at least leave the option to keep the ‘bug’. Sure, support will likely be non-existent for those who keep the bug, but if a developers decides to keep it, then it’s on them…

5 Likes

Thanks for your detailed report, if you would DM me an example of this problem we could figure out a workaround

Backward compatibility for previous features, not bugs. A bug is unintended. Backward compatibility preserves older features and the uses of them. A bug is an unintended feature sure, but it is still unintended. That is why you patch them; so that things function how they are supposed to.

13 Likes

This is awesome, and explains so many odd inconsistencies I’ve experienced in the past and never figured out. I’m super excited to see how this effects a lot of my physics code.

Actually, I believe you can disable it! This is a humanoid state, and you can disable them preventing the engine from setting them at all.

Particularly, it’s the first state, Enum.HumanoidStateType.FallingDown. You may also want to disable Enum.HumanoidStateType.Ragdoll, but, the last time I saw this actually trigger (if I understand the mechanic right) was in 2013 or 2014 I believe, I’m not sure that it actually works/is enabled anymore.

7 Likes

This has fixed a minor issue with karts in the upcoming version of Bloxy Kart. Glad to see that I do not need to do anything except toggle something.

4 Likes

I still don’t understand why we can’t just edit the mass property of parts. It’s a feature in almost every other engine out there.

6 Likes

One partially related question. Wouldn’t it be better if we could manually set the mass without having to awkwardly fiddle around with the part density? In particular, I had an issue when working on a car where I had to use a giant uncollideable block to preciselly manipulate the car’s center of mass.

4 Likes

Dangit, another change of Mass & Density resulting in changing buoyancy of items in water.

I have a boat game that relies on physics to float boats and make them sink or be unstable. They are mostly made using WedgeParts, Parts, and CornerWedgeParts.
I remember there was a very big change in water physics years ago (I think it was when CustomPhysicalProperties was released) that drastically affected my boats and took me a day or so to figure out. Even after fine-tuning the boats again they never really reacted as nicely as they did before the change.

4 Likes

Can you just allow us to be able to choose whether a feature is on or not for a toggle just for once? It’s happened with animations, almost materials, tostring() and much more, I thought this platform was Powering Imagination?

4 Likes

Will this have any negative performance implications. Boxes and wedges are probably easy for the engine to optimise because they aren’t meshesh but simple geometry, so I hope this doesn’t have any negative performance implications (even minor ones).

1 Like

No it shouldn’t result in any performance difference, it’s only a correction to the way certain part masses/volume & inertia are calculated.

The point of doing this in the first place is to allow you to adjust your game to the change. If it remained optional, it leaves an enormous amount of surface area in the engine for bugs to happen and it creates a lot of extra code in the engine to maintain. It would mean adding the same new feature twice in two pieces of code.

In this case, it would also mean testing new physics content with the feature on/off and painstakingly tuning it until it works for both, and, well, that’s just not feasible. That would then mean that any new features would either not support the old way, or Roblox would need to make the feature change with the setting, and that too is problematic and adds more code and surface area.

I think it’s pretty safe to say that if there were better options Roblox would take them, but, at least keep in mind they’re inputting effort to allow people to adjust first.

I recommend reading this quote from tnavarts:

4 Likes

Will this have any negative performance implications?

No - Even though we switched Wedges and CornerWedges to calculate angular inertia in the same way as any other arbitrary mesh, there’s very little noticeable perf impact.

Our angular inertia calculation for meshes is pretty fast.

1 Like

They could just make it deprecated, where it would still exist somewhere in the engine and when it inevitably breaks it would get removed, no need to maintain it. Roblox’s major issue (and the reason I am moving to a different engine) is that they aren’t making backward-compatible changes. For example, the recent removal of public audios broke a lot of games that were abandoned by their developer (one such example are the old After The Flash games). In Roblox, I don’t have any guarantee that the things I coded today won’t break tomorrow when new unannounced updated releases.

Thank you for the update’ I remember people going nuts cause Roblox’s physics were not that accurate in the past. Funny how people switch up fast after they get what they want. Writing systems is no easy work and to be frank, I can’t imagine why you want a more inaccurate old physics calculation method that is said to be no faster than the new one. I’ll be able to create real time cutscenes maybe more attractive.

2 Likes

Just checked the physics of my carts (a combination of massless imported meshes, blocks, and cylinders) and there was no discernable change in movement. There does seem to be a more reasonable balance to the cart when at rest.

Enabled! Thanks!

2 Likes

Just to be clear I don’t necessarily need a workaround for my situation if you have better things to be doing, I can likely sort it out myself with a body gyro, but I will still share a file with the affected character for if it is useful for other purposes.

The easiest way to see the difference is to flip yourself and move in a straight line. With it enabled you can go a longer distance upside down before the character will manage to right itself. With it disabled it will usually right itself shortly after starting to move.

Private message:
https://devforum.roblox.com/t/re-important-changes-to-inertia-and-volume-calculations/1821067

1 Like

Hi! This is great, but it’s going to break my moment of inertia calculations. Can I get a way to compute or query moment of inertia? This would make this sort of change a lot nicer!

Also, this is going to break old boats in my game, which is problematic for gameplay. I think this is going to be ok, but long term back compat would have been nice.

2 Likes

I agree with this and often am upset by various decisions as well, however I still also agree with Roblox’s stance in these particular cases. I think this way about many of the settings that are being added on Workspace like this one. It’s a difficult dilemma.

In the case of audio, I absolutely think Roblox could have been significantly less destructive in the way that they went about the whole audio purge thing, I posted a lot about it under many of the announcements. I think it was a rather impulse-driven decision and I think the outcome was rather poorly thought out, especially because I feel like all of the destructiveness could’ve been avoided even with all of the audios being gone.

Ultimately the choice is for Roblox to deal with the complexity & clutter and such in the engine, or it’s to accept that it will cause problems, and to try and evaluate those problems and hope that they are not significant enough to matter. Either way, it is a loss for us, it’s just one way is a less direct looking loss.

I do not think that that means Roblox’s decision is always correct (cough on the audio thing especially) but I am a little more apt to be supportive of Roblox I think with that in mind, I just hope that they end up trying to go for slower, more careful solutions than some particular examples, because sometimes I feel like they decide before they even actually ensure what the heck the outcome’s gonna be, sometimes it seems like there is an assumption and a lot of information is missed or the assumption is wrong.

4 Likes

Will this affect spring suspensions? Is mass distributed evenly across parts or also models?

1 Like

What is the reason for you to know the moments of inertia?

2 Likes