Characters on Moving Platforms - Now Live

Some of you may have already seen this post asking for test Volunteers: https://devforum.roblox.com/t/looking-for-volunteers-testing-relative-character-replication-on-moving-platforms/167336

We have enabled a new improvement for characters walking on multiplayer platforms on Monday evening.

Behavior Changes Expected:

  • Characters can more easily move around on top of platforms/vehicles/boats that are controlled/simulated by other players without dragging behind.
  • Should be easier to interact with OTHER player characters on top of these moving platforms.

DISCLAIMER
If we detect any significant bugs introduced by this, we may have to roll back!

We’re essentially trying to solve the problem of people who wanted to make great games like Galleons (Galleons v7.4 - Roblox) without having to jump through all the hoops of re-implementing characters from scratch and having them behave completely differently when running on boats or vs other ground. This feature works without the user or developer having to do anything specific. We’ve been testing this on various places to make sure this was safe to release, but there may have been some issues that slipped past. Please let me know of anything weird that you may observe!



Tech Details:

  • We replicate character positions in local-coordinates of the platform they are moving on top of.
  • We use built-in character floor-detection logic to find platforms. If you have a custom character that doesn’t use Roblox Humanoid Running or RunningNoPhysics states, this may not work for you.

Caveats/Behavioral Specifications

  • Jumping from a platform someone owns to another platform someone ELSE owns may cause a small visual discontinuity for 1 frame for other players.
  • Small objects will not be treated as platforms and will not locally replicate characters.
  • Anything parented to Player Characters will never be considered a platform. If you parent vehicles to Player Characters, do not expect this feature to help you. Try using PartInstance:SetNetworkOwner instead putting vehicles in PlayerCharacter.
  • If your platform is controlled/moved by BodyGyro, BodyPosition, or is constrained to Anchored objects (such as Baseplate or Terrain), this improvement will work but it may work sub-optimally. You may see characters vibrating a bit. We are looking for a way to resolve this.

Known Bugs

  • If you are standing on a platform that has its parent set to nil and then back to workspace on the server, anyone standing on the platform may appear to warp to infinity. I have a fix for this shipping next week!
230 Likes

Star Ships, Here we come!!!

30 Likes

This will greatly improve official Roblox events, like the train issue in Jailbreak during the RPO event :grin:

24 Likes

Games have just got a whole lot better :eyes:

22 Likes

The custom implementation of Trains in Jail Break may not be compatible with this unless they’ve recently changed something :frowning:

Use of Local-Parts (where the server doesn’t know about the platform you are standing on) does not work with this.

7 Likes

Oh… I see.

3 Likes

I’ve waited for this feature for so long! THANK YOU!

2 Likes

Christmas has come early

23 Likes

@RBXKyle should help for the pirate sim :slight_smile:

3 Likes

How does this take jumping into account? If I jump off of one train car to get to another, am I instantly going to lose my horizontal velocity and fail the jump, or does this fix that? If fixed, will it stop working if my jump height gets large enough?

16 Likes

I would also like to know the answer to this.

I have not adjusted how we conserve momentum (Disclaimer: we don’t). So unfortunately you will still lose velocity due to character controller. However, you will still be “subscribed” to the platform after a jump until you fall for a while, land on another platform, or start swimming.

There may also be a small discontinuity in visuals if you jump from a car one person owns to another. This is because we are essentially adjusting what time frame you exist in, and there is no simple way to do this. Later on we may add extra interpolation on top of this to make it more smooth, but it will always look a little weird.

There is a plan to introduce momentum conservation as an option for characters in the future. I’ll be experimenting in next few months.

27 Likes

Woah, this is a good way of improving all the games on the platform without having anyone complaining about something! Good job :+1:

10 Likes

Epic ship battles anyone? :stuck_out_tongue:

2 Likes

Correct location replication for characters on moving platforms is impressive in itself, but when it’s implemented in an environment where anything can happen and with an uncountable number of edge cases such as in Roblox? Amazing. Seriously, you folks are the best.

4 Likes

Lets not get too excited, we haven’t been live long enough for people to find if I broke anything :slight_smile: I will say that I tried really hard not to with lots of live beta testing…

If you guys want epic ship battles, Whatever Floats Your Boat is actually pretty good at that provided you can build something cool enough with enough cannons.

9 Likes

Ha, “no plan survives initial contact with the enemy”.

2 Likes

Don’t tell that to the guys who flew to the moon.

20 Likes

This is very nice. It’s a shame I won’t be using it though since I’m using custom humanoids. I kind of feel like I shouldn’t really have to, and I don’t actually want to because cool stuff like this comes out. I don’t use them because there are so many things with no documentation on the wiki, and there’s little customizability. I hope this is one of the next things planned for humanoids.

3 Likes

We do have goals to introduce better customization for humanoids so that you can pick and chose.

Additionally we will want to experiment with extending an API to somehow make this feature work with all parts, but we dont have this explicitly on a plan just yet.

7 Likes