I have gone through a lot of old posts regarding moving platforms, trying to get the best end result for a server controlled (not player controlled) ship motion. The platform could be a ship, train, truck, anything.
The problem: motion stutter(network ownership?), unanchored parts sliding off(disregarding friction and weight), character problems, such as climbing ladders attached to said platform in motion, jumping(no preservation of momentum).
Anyway, I was wondering, perhaps from some of you shipping game experts, what is the best way to move a platform via script and get the best results? How have you implemented your ship motion?
Do you use constraints/roblox physics to move the unanchored/welded model? This seems to work best for my use case, though it isn’t perfect(see problems above). Characters standing/walking/running on the platform works great, they stick like glue. I am attempting this by using prismatic constraint to move an unanchored platform between two anchored bricks. Is there a better performing way to move a ship in a line with roblox physics?
Do you manually set network ownership of the platform to the server? Or leave on automatic? What happens if a laggy player is network owner and another player is standing on it?
Do you Cframe the anchored model and use some character cframing tricks to keep the players on board? I don’t think it would work for other objects/vehicles that might land on the platform.
Like I said the prismatic constraint works pretty good, is ‘pretty good’ the best we have at this point in roblox physics?
If you intend to have players interact with this platform, you want some part of your movement to be reliant on the physics engine.
Although not 100% related to moving platforms there was a post a while ago that showed how you can make a minecart that moves between nodes using CFrame & TweenService on a central root part and then use AlignPosition and AlignOreientation to make the second part basically follow the root part’s movement.
NetworkOwnership is hard to decide upon and will always be a road block for physics, but the hope is using CFrame will negate the impact.
I haven’t tried the proxy part thing yet, but I did try setting the platform network ownership to server. This really helped keep loose things from sliding off. Now, if I could find a way to make the player jump with the platform which is moving by roblox physics…
If the platform itself isn’t having it’s CFrame updated and instead is following the root part through the physics constraints I mentioned it should have correct forces applied to players that interact with the platform.