Roblox 물리 엔진은 Newton의 운동 법칙 제2법칙을 통해 3D 작업 공간 내의 모든 부품을 시뮬레이션합니다. 이 운동 법칙은 타임스텝을 통해 시간에 따라 해결되며, Roblox에서는 단일 타임스텝이 월드스텝 내에서 수행됩니다.
기본적으로 Roblox는 물리를 240 Hz에서 시뮬레이션합니다. 초당 약 60프레임의 주기를 고려할 때, 프레임당 약 4 월드스텝이 진행됩니다. 적응형 타임스텝을 사용하면 물리 엔진은 최고의 성능을 위해 60 Hz를 강조하여 부품을 세 개의 "솔버 섬"에 자동으로 할당합니다. 그러나 "해결하기 어려운" 부품은 물리적 안정성을 보장하기 위해 240 Hz와 같은 빠른 타임스텝을 사용합니다.

할당 기준은 변경될 수 있지만, 240 Hz 섬에 할당된 부품에는 높은 속도 값, 높은 가속도 값 및 해결하기 어려운 복잡한 메커니즘을 가진 어셈블리가 포함됩니다.
적응형 모드 활성화
Studio에서 적응형 타임스텝을 활성화하려면:
Explorer 창에서 Workspace 객체를 선택합니다.

Properties 창에서 PhysicsSteppingMethod를 찾아 Adaptive를 선택합니다.

타임스텝 프로세스를 확인하려면 Studio Microprofiler를 열 수 있습니다 (CtrlF6; ⌘F6). 게임이 실행 중일 때, 현재 프레임에서 일시 정지하려면 CtrlP (⌘P)를 누릅니다.
physicsStepped라는 범위 아래에서 worldStep의 범위 이름이 이제 worldStep - Adaptive로 표시됩니다.

LDLPGSSolver::solve 위에 마우스를 올리면 각 주파수 버킷에 얼마나 많은 섬이 포함되어 있는지 나타나는 상태를 확인할 수 있습니다; 1dt Islands (240 Hz), 2dt Islands (120 Hz) 및 4dt Islands (60 Hz).

디버그 시각화
테스트 중에 시뮬레이션된 부품의 주파수를 시각화하는 것이 유용할 수 있습니다. 이 옵션을 활성화하려면:
- Studio Settings를 엽니다.
- Physics 탭에서 Are Timesteps Shown을 활성화합니다.
활성화되면, 시뮬레이션된 부품은 현재 시뮬레이션 속도에 따라 윤곽이 표시됩니다. 부품이 슬립 시스템이나 네트워크 소유권 변경을 통해 더 이상 시뮬레이션되지 않으면, 해당 부품은 더 이상 윤곽이 표시되지 않습니다.

고정 주기 시나리오
적응형 타임스텝은 물리 성능을 최대 2.5배 향상시킬 수 있으며, 대부분의 경우 권장됩니다. 그러나 일부 게임은 Fixed 모드(240 Hz)를 사용해야 합니다. 여기에는 다음이 포함됩니다.
고도로 정확한 시뮬레이션과 안정성이 필요한 게임, 예를 들어 레이싱 게임, "파괴" 시뮬레이션 또는 탱크와 같은 복잡한 메커니즘이 있는 게임.
대부분의 부품이 240 Hz 솔버 섬으로 기본 설정되는 시뮬레이션(디버깅 중 빨간 윤곽). 240 Hz 섬이 다른 주파수(60–120 Hz)의 섬과 상호 작용할 때, 해당 섬은 적응형 타임스텝으로 인한 성능 이득을 상쇄할 수 있는 오버헤드와 함께 240 Hz로 변환됩니다.