This has been enabled on Mac (OSX) only, as a “partial rollout” to monitor for any outstanding issues that are difficult to catch during QA. If you are a Mac player please report any strange behaviors you see. The rollout happened at around 7:00am PST. I will update here again before enabling or if I have to disable.
Thank you for the patience with this!
QUICK UPDATE 12/3/2020
I won’t be doing Place-specific testing anymore because of the way the feature is coded, it runs risks in our code that enables features on only specific places. In a few weeks what I will do is enable this on Mac Clients. This should be a fairly contained way to test this feature at a smaller scale. I will post here again when I’m about to enable on Mac Clients.
For the last year or so I’ve been planning/developing/testing a pretty massive optimization to the collision detection system. The goal is to not change behavior, but to optimize some of the pain-points that our existing collision system had.
Currenty, in Roblox, if you weld 15 bricks together and throw them down a cliff, they move and simulate as a single object, however in the collision detection pipeline, that movement has to update 15 different entries into our Broad Phase system, which is the first stage of collision detection. When this Broad Phase system decides there may be potential collisions between parts, it creates requests for the Narrow Phase portion of the Collision Detection to find exact locations and incident normals.
The feature that I have been working on changes our collision detection from a 2-phase to a 3-phase. Instead of Broad Phase -> Narrow Phase, we will now have Broad Phase -> Mid Phase -> Narrow Phase. The biggest win here is for the ability to mark those 15 welded bricks as a singular moving object with the Broad Phase, significantly improving the simulation speed of many-part objects like Humanoids.
Places that should benefit from this:
- Any game with many Humanoids
- Any game with moving objects that are made of multiple “Welded” Part Instances.
BEFORE WE RELEASE THIS GLOBALLY
I would like to ask for some volunteers to test this in their games. I’ve done a lot of work doing testing on various live games when I played on my client, but there is only so much this can cover. I’ve done all the testing I could and that our QA could, and its time to test this on a few live games.
Because this change affects some physics-based APIs, I would love to get some games that rely on things like Raycasts, FindPartsInRegion3, TouchEvents, GetTouchingParts and any other physics specific APIs!
What’s in it for the Volunteer Testers?
Left is a bunch of welded bricks with the new system enabled, right is a bunch of welded bricks in the current live system. No time was altered, they were both running at the same time.
If you would like to volunteer, please list PlaceID for the game you would like to test this on. I will only accept PlaceIDs from verifiable owners of games. We will start testing first week of December! If all goes well, we will be able to enable globally fairly shortly after.
Thank you all!