Physics: Deprecating the legacy spring physics solver

The last time we had a big physics update a solid half of the Ro-Racing Community Games no longer worked anymore because the owners weren’t around to update them. And some of the owners who were around to update their games said screw it and left the platform. Ro-Racing has some heavy PTSD when it comes to physics changes because generally it’s been for the worse, rather than for the better.

4 Likes

Hey everyone, we understand all the concerns being expressed here. A key part of this process is to gather your feedback and problematic models/levels, provide guidance on adjusting them to work with PGS, and in some cases, make changes to the PGS solver itself. We really appreciate the models and descriptions that have been submitted here so far. We plan to carefully review them and get back to you with our recommendations.

I am confident that by working together we will be able to get these places running on the PGS solver with the correct behavior.

Thanks for your attention and support!

9 Likes

rip my game, Have to change the body velocy values or part density so ships can actually be moved, unless theres a script that perfectly replicates the old behaviour.

5 Likes

Late reply, but this is typical that you might need to re-tune legacy body movers after updating. I had to do this in some of my own games after upgrading.

Where possible converting to the equivilent PGS Constraint or Align objects is often worth the effort too. The behavior and parameters are slightly different and easier to tune IMO.

2 Likes

Is there a specific date set for the impending removal of PGS? And is there a specific date towards removing the override?

1 Like

You mean the removal of the legacy solver?

2 Likes

Late nights. Very tired. Yes.

We are currently planning to switch control over to TemporaryLegacyPhysicsSolverOverride tomorrow. If you haven’t checked this then the PGS solver will be enabled.

We don’t have a set date for removing the legacy solver entirely yet. We’ll do another announcement far in advance before it is disabled.

1 Like

We’re also trying to put together some tutorials and reference vehicles for building cars with constraints. If you’re willing to put in a little effort to understand the mechanics of it, it really is possible to build some stable, fun, and realistically handling vehicles.

It might be a little quick to say the changes are strictly for the worse. They definitely are different. Any game that was very finely tuned in the old system is going to need to be dramatically re-tuned. Tuning things correctly in PGS is often easier with the new constraints, and yeah, that’s an even larger change.

If no one wants to change anything and expect it to be fun it’s not going to be a great time. If you’re up to updating things Ro-racing could definitely be more fun than it’s ever been.

We’re here and we’ll always do our best to answer technical questions and help solve problems.

2 Likes

Until some of the issues with collisions are fixed on PGS, this will never be true. Talking to various people, it’s believed that the fact the old cars used hinges that had some flex built into them helped keep the collisions from being too awful, but for now the PGS Hinges are so rigid that a wheel to wall contact at high rates of speed cause the car to do awful things.

I did notice this property in vehicleseats the other day:
image

It appears it currently only detects hinges based on the old system (the hinged wheel must be connected to parts that connect directly to the vehicleseats. Is there a particular reason that this property has suddenly came to be? Potentially could see constraints count as a connection to a hinged wheel?

1 Like

HingeConstraints are not a 1-1 replacement for the hinge surface. PGS cars do use HingeConstraints for the wheels turning, but you also need to use other constraints (e.g. SpringConstraint) in tandem to give the vehicle more leeway. Here’s an open-source example of a vehicle made for PGS. Video:

https://gfycat.com/PossibleSpotlessCoral

As you can see, the buggy performs really well when hitting walls. A vehicle’s physical behavior for cases like this depends entirely on how it’s set up. Note that this specific vehicle is made to be super physically accurate, so it will flip over if you turn while moving really fast, but that isn’t a requirement – you can design your cars to behave however you’d like.

Looking at the video, it should be pretty evident how beneficial PGS can be to the racing community, as the collisions are super smooth and model how a real vehicle would rebound, instead of a giant lob of plastic that flops around. The biggest weakness right now for PGS is that we don’t have enough free models that developers can use as a reference.

5 Likes

The size of the vehicle concerns me a lot though. I’ve seen a lot of good example of PGS vehicles being good… when they’re massive. Little evidence to show vehicles that are comparable size to our current vehicles being as good. The more weight a vehicle has, the more stable it can be under high powers because of a lower power/weight ratio.

One of my larger issues with the system you’ve shown is how some of those parts you can’t really downscale to be smaller and have it work all the same. When you shorten a wheel base, and more specifically the wheels being used, that can have disastrous affects on handling.


Size Comparisons

Naturally, a force is going to offset an object 2x less massive than the original 2x more than it offset the original. Should be the same behavior for small vehicles if you tweak the magnitude of the forces accordingly. Alternatively, you can increase the density of the parts to make them more massive.

Not to mention, these sorts of issues:

After Resizing it to be 50% of normal size:

After changing spring lengths min/maxs to reflect the size change:

You can also see the instability as it goes from each of the parts involved in a banked corner. The wheel jitter, and the car tightens up and drifting to the right (using the non-resized car)
https://gyazo.com/860973e5c4c765edc65c011999bc016b

And not to mention this…
https://gyazo.com/be82836b45027eac9afeb936404705a8

The buggy is a cool example, and does good at what it was made to do, be a buggy. But I don’t see PGS genuinely helping the competitive stock car racing community as it will over complicate what is supposed to be a very basic form of racing. The test I also have not even performed yet is how vision lag will play into all of this.

1 Like

Seems like you’re not tweaking them appropriately. Encourage you to post a repro in Building Support with that track piece you recorded, the buggy, and your racing vehicle.

1 Like

As another example here’s some vehicles I made. Their construction is a little more basic.

They’re sized realistically as if 1 stud = 1 foot. The wheelbase, track, ground clearance, and wheel sizes are all sized like a regular production passenger car. The AWD car is sized like an Outback and the Offroad car is sized like a Wrangler. The drivetrain is tuned more like an electric vehicle here. It also supports controllers and has a differential drivetrain and rudimentary traction control.

It may feel “floaty” because it’s using realistic earth gravity to match those dimensions, and is tuned for that as well.

They’re not tuned like stock cars and they’re not even the best possible examples, but hopefully it demonstrates that it should be possible to make fun realistically sized vehicles as well.

3 Likes

My question regarding this is quite simple:

Will we be able to build simple, quick vehicles without any scripts again? It seems that all these solutions require Lua code for basic driving features.

5 Likes

Not really, and considering VehicleSeat black-box magic over copy-pasting scripts I don’t see much advantage to VehicleSeat.

Vehicle seats are a black box that “just works” for some basic cases, but it can be mysterious and limiting. Really it doesn’t have many advantages over copy-pasting some decent template scripts into a basic Seat, except the latter offers you the option to look in the box to understand how it works, what it’s doing, and potentially customize it in more interesting ways. Long term we’re trying to move away from magic black boxes in general…

5 Likes

I agree, and may I say the vehicles at the place you’ve linked are wonderful. But outside of VehicleSeats, there isn’t a reliable way to create vehicles for new developers, or those of us with little-to-none physics knowledge.

Agreed and we’re working on that. As I mentioned before we want to provide better tutorials and reference vehicles. Hopefully together those will make getting started easier.

Also when you’re starting out no shame in copy-pasting scripts when the original author is ok with that.