PGS Solver Migration Feedback Request

Since mid 2015 we deployed a new physics solver called the PGS to replace our aging spring solver. Since its inception we’ve been enhancing it with new features some of which could not be implemented inside the old one (think constraints and attachment based body movers). In an ideal world, everyone would have migrated to the new solver by now. Unfortunately this is not as easy: although both systems try to simulate realistic physics, they present different behaviors and stability characteristics in some situations.

If you migrated your place, attempted to, or are thinking about it, and had/have issues or blockers, I would like your feedback:

  • What are the most difficult changes necessary to your place
  • What are the most surprising/unexpected characteristics of the new system
  • What methods did you use to migrate
  • What are/were the blockers

p.s. I’m specifically talking about this option inside Workspace properties:
a1fd9bb1684ac48afe139cfbe159f202a71ac153.png

6 Likes

PGS not having a stable method of solving intersecting parts keeps me from turning it on for my Hockey Game.

Without PGS:

With PGS:

And making the Hockey Stick not collidable is not an option, since it needs to be able to block puck shots.

12 Likes

In PGS only, jumping off of edges of parts results in a negligible jump. This is not desirable behavior.

Bug Report 41 likes

Bug Report Staff member said a fix was on the way, but it was never pushed to production

Bug Report

Users resorting to fixing it themselves

15 Likes

PGS seems to, for lack of a better word, overreact whenever two things intersect momentarily. Both PGS and spring are fairly predictable when it comes to situations where blocks are sliding but it just seems spring gives more desirable results.

Lumber tycoon 2 is a decent example. I’m fairly certain that if Lumber Tycoon 2 were spring, the following undesirable behavior would not happen:

  • wheels getting stuck under the baseplate
  • wheels getting stuck inside trailer beds
  • logs flying out of the truck bed like there was an explosion, possibly due to interpenetration between the logs and the trailer
  • trailer trains randomly flipping out when loading due to possible interpenetration between logs and the trailer train or the character and the trailer train, possibly due to network ownership.

I just can’t trust PGS to make decisions that work for games. The undesirable behavior of spring physics is way easier to mitigate than that of PGS.

8 Likes

Similar to NWSpacek, I am having issues with vehicles acting strangely, mostly when a player jumps out of a seat to hit the roof of a car it can cause the car to fly under the map or into space.
There is also the issue of walking through walls, a player can use shift lock in a corner to go through thick walls, but it gets better in that you don’t need to use it if you want to go through walls that are 0.4 studs or less in thickness you just walk straight at them and wait until you’re through. This behaviour did not happen in spring solver but now I am stuck with PGS because I started using some new constraints in the game.

4 Likes

I was attempting to design an obstacle course with moving platforms using contraints. I can’t use distributed physics since multiple players may be on the part at once meaning the server must control them. The problem is, they appear jittery and don’t move at a constant speed (despite the server telling them to).

This was less of an issue with the old solver for me. I’ve actually started using my own system now though…

2 Likes

I believe @TwentyTwoPilots had something to say about this about Car Wheels earlier! Pinging him to alert him.

Old but still relevant annoyance I have. I know how to solve it but doing so can be tedious

This is how it’s setup in a nutshell. I was informed that this creates some kind of over-constraint system and it can’t be done which is really frustrating. To fix the problem, I have to settle on the solution 2 and separate the parts

I’d rather just use the old system and avoid the hassle. I find it more ‘accurate/reliable’ in terms of marble contraptions. The older system is much more reliable and easier to work with.

2 Likes

Thanks for your feedback. Could you send me this place? @anon80475429

Could you send me a simple repro where the character tunnels through walls? Thanks! @pauljkl

Seems to happen in large, slowish servers, not sure how simple a repro could be. You just face directly at a wall and walk forwards for the 0.4 stud thickness.
If you want to get through thicker walls you just stand facing a corner, walking into the corner, point your camera away and use shift lock to fling yourself through the wall

6 Likes

In my experiments with PGS and spring, it appears PGS scales similarly to spring, i.e. the calculations are as time consuming, so there’s no real speed benefit from using PGS. If I knew that PGS could get me several more train cars for a given framerate, for example, I could be convinced to use it in more projects.

EDIT: clarification on my last post, if you wanted to know:

The main undesirable behavior in spring physics is the state where hinged objects like wheels begin to fly around like a swarm of angry bees. PGS has this too, but PGS also has other things, unfortunately.

3 Likes

We just released a fix for the jumping off edges problem under PGS

7 Likes

The big main issue i’m having is the Cylinder instability, it kinda happends with Balls too, when going over brick seams it jumps, and it goes back to the over reaction of PGS when intersecting with other parts before mentioned.
With cylinders it seems to be almost unplayable at high speeds, balls seem to handle it better but it still happends.

2 Likes

I second this, I’ve refrained from converting my work to PGS in hopes of this being fixed as it makes driving entirely unenjoyable. The issue is especially noticeable at Vehicle Simulator.

If you have a high walkspeed, maybe around 50 or so, and you attempt to jump over uneven ground while running, you will jump up almost vertically every time. It gets very annoying in games like Miners Haven.

I’ll upload a gif later to show what I mean.

Do you mean that when you jump the character looses its forward momentum? It would be better if you send us an rbxl place with repro steps. Thanks

So this was where I found the problem.

Yes, you lose a lot of momentum if you have a high walkspeed.

miners.gif

Attached is a small repro place I made just to show what I mean.

test.rbxl (21.0 KB)

1 Like

So we fixed some of the issues with jumping (under PGS). Are you still seeing this momentum loss?
@Younite

2 Likes

@Younite I updated the repro file you gave to print out character horizontal velocity so it’s easier to see the change in momentum:

test.rbxl (22.4 KB)

1 Like