My ships become very unstable with the PGS physics solver

Recently I wanted to enable the PGS solver in my ship simulator game, however it causes a serious problem with my ships which happens when they collide with moving characters. I’ve been trying to fix it myself, but without success so far.

This is what I know about the issue:

  • players are able to “kick” ships away
  • humanoids with higher WalkSpeed affect the ship movement more
  • the problem becomes extreme when there are two or more players on the ship (as shown in the video)
  • with PGS disabled, the issue doesn’t exist - the bodymovers responsible for moving the ship are incomparably “stronger” than any number of characters
  • for me, the issue doesn’t seem to happen in studio, even with multiple players - it only happens online

I’ll be very thankful for any help. This is the only thing which is preventing me from using the PGS solver in my games.

Video: https://youtu.be/oSj5nlGe81A

7 Likes

By locally adding players to collision groups and managing network ownership you can prevent this.

1 Like

By using this way, would it still be possible for the players to interact physically and walk on the ships? About the network ownership, the physics of the ship is owned by the player who is sitting on the captain’s seat, and if no one is there, it’s owned by the last person who sat on that seat.

2 Likes

Yes. On the drivers client you disable collisions between boat and every other player in game.
Those players will still collide with the boat locally but won’t affect the boat since it’s networked to the driver.

1 Like

Thanks, I’ll try it.

Is it even possible to set collision groups on client? It doesn’t seem to work online for me. The wiki says they can only be created and configured on server.

http://wiki.roblox.com/index.php?title=Collision_Filtering (see limits)

You can’t create the groups on client, however you can change a parts CollisionGroupId on the client.

Hi CaptainMarcin - that would be great if you could provide a repro (model, level, instructions) for this issue.

Thanks.

1 Like

Here’s a repro pgsrepro.rbxl (796.4 KB)

It only seems to happen with 2 or more players, and online, the unwanted effect is much more intense than in studio. To reproduce it, at least two players must be walking on the ship, high walkspeeds are recommended.

Any update on this now that you have the repro? I have similar issues.

SerClockwerk - we are still looking into it and will notify this thread when we have some results.

1 Like

Hey CaptainMarcin, SerClockwerk - we have a fix that appears to address the issue you found with 2 or more characters on a ship using the PGS solver. At this stage we’d like to limit the new code to specific games.

Please let us know which of your places are experiencing this problem, and we will activate the fix for these places and let you know when you can try it out.

1 Like

The problem is present in this game of mine:

Currently, it doesn’t have PGS enabled to avoid the issue.

1 Like

CaptainMarcin - the fix has been activated for this place (for PGS enabled). Please try it out and let us know if you see improvements.

Edit: Unfortunately it’s still reported by players (I confirmed it too):


The issue is still happening, so I had to switch back to the old physics. The issue still exists and has not changed at all since the fix.

Also, could you please activate the new code for this place as well? It’s my test server:

Thank you.

CaptainMarcin - When you confirmed it, was it the exact same problem you reported previously? Or was there some improvement?

We have enabled this code for your test place. Please keep us posted on its behavior.

Thanks.

When I tested it, the problem was exactly the same - the ships were easily blocked, moved and kicked by characters, causing chaos.
I’ll check soon if there are any improvements on my test server.

EDIT: Ignore this, I learned how to read.

Can you provide a test level that simply spawns one of your ships? I need to be able to test this in Studio, but your entire place is too heavy to be able to play around with safely.

You can either uploaded it to a different place on ROBLOX or send it to me VIA PM if you don’t want to share your tech with people.

1 Like

@CaptainMarcin

Could you please verify this again? I was able to test the fix we applied to the two places you linked above:


One caveat I may have found was that for the first 30 seconds of the game the fix may not fully activate itself because its tied to testing whether your machine can handle extra performance of simulating MORE humanoids on your machine.

If you are available, I could test this with you if you’d like.

1 Like

I’m testing it here right now, I will post about the results soon:

1 Like