Fix parts being offset in online mode by replicating rotations with full precision

JFYI we’ve just enabled a change that increases the precision of rotation replication by fixing a bug. (the change is live on Windows and Mac only, in desktop players - not in Win10 app or mobile yet, these just haven’t upgraded - the change will ship there in a week or so).

In theory rotated parts should align better in general now. We still are not using full precision rotation replication but I’m curious if any places posted here got better? If they didn’t it would also help to see models that showcase the portions of the places that have this issue, e.g. two rail segments that are misaligned etc.

5 Likes

Definitely looks a lot better! I don’t have any previous screenshots to compare with, but I should still be able to give a good idea. This is the seam in a fairly extreme example now, where it’s perfectly aligned in studio:

Part Seam

I’m not joking when I say this is a fairly extreme example, either - the two parts there have one of their size axes pretty much maxed out. I was trying to build a mile-tall tower or something with the scale of 2.5 studs to the metre. Don’t ask.

Edit: Fixed grammar.

The shift is definitely still there, but at least it’s a lot less

I can confirm that it’s a lot less now. The rails are not overlapping eachother anymore, instead they’re just offset ever so slightly! I very much appreiciate this improvement!

Before: image

Now:

2 Likes

Thanks for feedback, glad to see it helped :slight_smile: I’m planning to take another look at this to see if we can make it even better without spending too much extra bandwidth.

7 Likes

Same issue is happening and it still is pretty much the same. Why cant roblox use full precision rotation replication?

We have to find a balance between performance and fidelity that works well for all games. Currently using full precision rotations would add ~5% to the instance join data size on games like Jailbreak (that has just 20k parts so the join data is dominated by some other instances - the impact will be progressively worse the more parts you use), which is not a great tradeoff. Due to some properties of the replication system it’s non-trivial to make the format adaptive to the part size (which is what really the problem is - the larger the part, the more significant do rotational errors become).

1 Like

Would you mind sending me part of this level? (just the tracks) I’d like to take a closer look at the introduced errors for future improvements here.

1 Like

So pretty much it is a bug that will never be fixed due to the trade off that would have to happen. Because even if you gave the developers a option to use full precise rotations would be nice.

As a heads up, we found some vehicle models that depended on the old, imprecise, rotation too much and broke as a result. We’ve disabled this fix for now and will have to change some physics internals to bring it back :frowning: So you’ll have to wait a bit longer to get smaller errors again.

Could you elaborate on that a tad more about the vehicle models that depended on the old; imprecise, rotation. Does this mean the rotations and positions ended up being changed to much or that the physics engine itself changed from the update? I am asking for more information about this to see if that was the result of why our chassis keeps bouncing on track segments more than usual yesterday.

Hey uh could you test something for me before I post it on the thread. Insert a new meshpart copy paste the location of the old one and paste it into that new meshpart and then paste the id of the old one into the brick and try the game tell me if it offsets.

and delete the old one after doing so

Physics engine didn’t change; the existing logic of old surface-based Hinge/Motor joints relied too much on the specifics of the old imprecise rotation so motors in some vehicles could lock up after the update. The change is temporarily disabled and will come back once we fix the Hinge/Motor logic.

Ah ok. Why are the old surface hinge/motor joints still in use? I thought the new ones were suppose to completely replace the old ones. Also regarding the issue I figured out what it was. Parts had floating point errors so the part could show as 0,0,0 but still be .0003 or more after replacing the parts that were offsetting with fresh new parts the issue went away although the chassis still bounces. but we think this is just physics related.

for as far as I know, hinges work with vehicleseats; constraints dont (correct me if I’m wrong

Not sure that could be true.

A new version of this change is now live: Improved rotation replication precision - that should be even more precise than the version that was briefly live ~1 month ago.

3 Likes

Can confirm it works zero offsetting now thank you. I really needed this.

1 Like

Uh I don’t know if this got worse with larger parts but This now happens only in servers.
Ignition [Pre-Alpha] - Roblox We can’t make it public atm due to exploiters. I can DM you the file place if needed.

1 Like