Please keep Legacy mode physics!

We are aware of those side effects of the new physics engine. The issue is that it attempts to keep everything as rigid as possible contrary to the old physics engine that was based on springs.

However there are possible solutions. Very soon we will be releasing new constraints that include springs and velocity motors. These will allow you to build suspension (for the roller coaster cars) that allow some flexibility.

You guys will ship these features and give us time to switch over to them before deprecating the old properties right?

New physics also allow for going through walls.

We are not deprecating any physics until all those issues are ironed out.

1 Like

Is this a bug report? Can you submit a repro case, or an example? Thank you

I don’t want to detract from this thread though

I’m pretty sure he was talking about the legacy combination, that is, Spring solver and Legacy properties. The physical properties update has made some major changes to how parts and especially hinges behave in spring physics, and setting density to 1 isn’t a fix.

@Khanovich. Do we have answers to those two issues:

  • physical properties changing hinges behavior
  • why density = 1 is not a fix

Which things have you tried that do not work? Have you tried reverting densities to 1? Does it work? Are we talking about specifically Physical Material Properties here, or is this somewhat PGS related. I have multiple scripts in the threads announcing this that show how to revert to old behavior when using the new system.

@chefdeletat I think people are talking about hinges with respect to super-large mass ratios.

@NWSpacek Setting Density to 1 is actually a fine fix in some cases, although it shouldn’t be needed.

@khanovich it isn’t really a fine fix. You can see that in legacy properties the locomotive is relatively rigid. In new properties with density of 1, the locomotive is really loose and flops all over the place.

http://devforum.roblox.com/t/is-customphysicalproperties-going-to-be-forced-for-spring-physics-engine/23675/4

1 Like

Please note: I am not advocating for the removal of Legacy. Do not misconstrue this solution as being pro-physical properties.

I took a look at this roller coaster because it is easy to manipulate the properties of, and it has been confirmed to be reliable across physics engines.

Using Legacy physics as a benchmark, I tried 7 different combinations of Friction, FrictionWeight, and boost velocity. The data was collected using a 1/10th second loop, recording the velocity, and plotting each data point on a graph. The vertical lines in the data are only indicative of rounding pixels in the GUI and not of any errors in the experiment. The velocity is displayed as a vertical bar. Each horizontal pixel represents 1/10th of a second, and each vertical pixel represents a single stud per second. Please note that the data is plotted based on the actual time and not the simulation time.

Here are the results of that:

It’s kinda garbage data with all of the different tests cluttered together, so I will show you the Legacy run and the run that mimics Legacy the closest. The colors have been changed to increase contrast.

The following changes were made to get the behavior as close as possible to Legacy:

  1. Friction of wheels set to 0 (0.3 in Legacy)
  2. FrictionWeight of wheels set to 20
  3. Friction of boost sections set to 1 (same as Legacy)
  4. FrictionWeight of rails set to 20
  5. Velocity of boost sections decreased to match Legacy boost speeds (in Legacy the train did not reach the full velocity of the boost section).

Elasticity of wheels and rails stayed the same at 0.5.

EDIT: there is no need to change the FrictionWeight of anything, you just need to set the wheel’s Friction to zero. Rails that already have friction will still be able to propel the train. For some reason, the train loses just a fraction of a percent less speed than Legacy, which compounds over time:

1 Like

Space that seems to work , but now the issue at hand is PGS. If the ride even touches anything , it halts in place. @Khanovich

PhysicalProperties is a completely different feature from PGS. The removal of “Legacy” PhysicalPropertiesMode has absolutely nothing to do with PGS.

Can you tell me if this is how PGS is supposed to act, @Khanovich

blob.png

What is your elasticity between the train and the rails set to?

0.5,like it is in Spring

EDIT: both rails and wheels are 0.5 elasticity

Your rails are rigid, meaning they have corners and edges in them. Having 0.5 elasticity means that every time you collide with an edge like this you eat ~50% of the energy projected in the direction of the normal.

The only reason this didn’t happen in spring is because spring treated the rails like a stiff noodle, where the spring would re-project momentum even with a super low elasticity. So yes, if you have rigid edges that the train is colliding with all the time, yes you will be losing momentum/energy.

EDIT:
If you have any stabilizers underneath rails/trains that make sure the vehicle stays on the track you have to make sure that has an elasticity of 1 with a high elasticity weight, and a friction of 0 with a high friction weight (the friction weight doesn’t matter if you made the rails have a friction of 0).

It was originally a issue to get the rides working without Legacy, but with NWSpacek’s suggestion that part is worked through. (Sortof.) Will PGS be optional? @Khanovich

There are no current plans to make PGS required, however the spring engine may not receive some new physics features (as new ones coming out will require PGS). Basically the spring engine is treated as Deprecated.

If there is ever a plan to remove the option to turn off PGS, you will hear about it as an announcement.

I found an error in the tests I was doing with PGS. I was using a train that did not have the proper gravity applied, so I applied the proper gravity and re-tested. Here are the results:

@Khanovich

EDIT: the test parameters included 0-elasticity rails and wheels, except for upstop wheels which have elasticity of 1 and ElasticityWeight of 50.