Physics: Deprecating the legacy spring physics solver

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.

So, I tossed it on a track, and turned up the speed, to 200 mph to be exact (293 feet per second or 293 sps)

After 75 mph, you just kinda lose control… and not mention when you hit the walls…

I like the chassis more than the buggy, but I feel like me, and many other users will be lost in the math of it all to make it stable at higher speeds. Also, something of note about scaling.

So, many people actually do scale their tracks to be roughly 1 foot = 1 stud, but technically 1 stud should be about 14 inches based on the character height versus average human height. On top of that, the cars we drive are not 1 foot = 1 stud. (I know, it’s stupid, and I hate my community for not using the same scale for tracks as cars.)

Cars are typically 10 studs wide, and can range from 20 - 30 studs long. Dependent on the maker of the car and what kind of car, and stuff like that. So I run a hybrid scaling for tracks, where the length of the track is 25 studs per 15 feet, and the width is 10 studs per 7 feet (based on real life sizing of NASCARs).

Because of this scaling I use, 200 mph is 488 sps. So uhhhh, yea and stuff. I don’t think a lot of the cut and paste cars are going to perform well at that speed. Most of the community hovers from 325 sps to 375 sps for competitive racing.

At high speeds like that aerodynamic forces come into affect in a big way. Downforce is critical for stability at those speeds, as I’m sure you’re aware as a racing guy.

I can’t remember for sure, but I believe the buggy does something there. but I know mine doesn’t handle this at all right now.

You can emulate these forces with VectorForces on the body of the car and scaling them relative to the square of velocity every Stepped. You could start one pointing down on the roof of the car and go from there.

1 Like

Yea, I know Roblox has no in-house system for Aero, and it didn’t appear your’s does either. The thing is, this is exactly why I don’t like PGS. All it is doing is over-complicating the simple feeble-mindedness that is Ro-Racing. We can’t run Tank Chassis on PGS On because it’s god awful, and to run a full fledged chassis in the same style we do now means implementing all these new things. Uggg.

I’m always happy when Roblox wants to do more things with vehicles, that’s exciting. I’m not so happy when they destroy all the vehicles of the past in the process.

1 Like

That chassis just needs some love to get it to work right.

1 Like

If you’re talking about the truck, it’s really big, and it’s got some oversteer problems, which make it hard to save.
If you’re talking about the car, it’s a bit jitter, but it turns p alright.
If you’re talking about the 8 bajillion @Beeism’s then yea, that’s working right :ok_hand:

FYI we are preparing to release the change that switches control over to the TemporaryLegacyPhysicsSolverOverride property. If you do not have this set your games will automatically switch to PGS today.

2 Likes

I was playing with your car, and discovered that when upscaling the chassis some, and having the gravity set to Roblox’s standard 196.2, the car doesn’t lose control as bad. One issue I’m encountering though is the way the wheels shake really violently when turning, specific the right front when making a left turn.

1 Like

If you increase the gravity without re-tuning the suspension that would from the springs being too soft to support the weight of the car under that gravity. The car will bounce along as if it had no springs at all.

You might want to try increasing the free length of the springs. If that doesn’t do it for you try removing the part of the code that sets spring stiffness and damping and playing with those yourself.