최적화

Roblox 최적화는 다양한 기기에서 부드러운 게임플레이를 제공하고, 게임의 안정성을 높이며, 사용자 유지율을 증가시키는 데 매우 중요합니다. 최적화된 게임은 긍정적인 평가와 리뷰를 받을 가능성이 높아져 가시성이 증가합니다. 게임을 효과적으로 최적화하는 다양한 기술이 있습니다.

스트리밍

Roblox에서 스트리밍은 필요한 경우에 3D 콘텐츠를 동적으로 로드하고 언로드하여 플레이어 경험을 향상시킵니다.
Image 1
Roblox Studio
  • 부품 수를 줄임으로써, 더 적은 부품은 더 나은 성능으로 이어집니다.
  • 특히 저사양 장치에서 시각적 품질과 성능의 균형을 맞추기 위해 텍스처를 최적화하십시오.
  • 동적 조명을 제한하고 가능한 경우 그림자 없는 조명을 사용하여 조명을 최적화하십시오. 이러한 조정은 계산 부담을 줄이고 전체 게임 성능을 향상시킵니다.

스트리밍 구성

Default엔진이 최적의 옵션을 선택하며, 현재 Legacy와 동일합니다.
Legacy플레이어가 참여할 때 모델이 부모 객체와 함께 로드되며, 부모 객체가 언로드되지 않는 한 언로드되지 않습니다.
Improved모델은 필요할 때만 로드되며, 플레이어가 참여할 때는 로드되지 않습니다. 비공간 모델은 나중에 로드되며, 공간 모델은 필요할 때 로드되고 나중에 언로드될 수 있습니다.

게임 콘텐츠의 스트리밍을 활성화 또는 비활성화합니다.

Default추가 검사가 없으며, 플레이어는 누락된 콘텐츠를 만날 수 있습니다.
PauseReceive중요한 부분이 누락된 경우 데이터 수신을 일시 중지하여 게임 플레이 문제를 방지합니다.
Request플레이어가 특정 지역에 들어갈 때 누락된 부분을 요청하여 언로드된 콘텐츠를 만날 가능성을 줄입니다.

플레이어 주변의 최소 영역을 설정하여 해당 영역에서 콘텐츠가 최고 우선순위로 스트리밍됩니다. 기본값은 64 studs입니다. 이 값을 증가시키면 더 많은 메모리와 대역폭이 사용됩니다.

플레이어로부터 콘텐츠가 스트리밍되는 최대 거리를 정의합니다. 기본값은 1024 studs입니다. 메모리가 허용되면 엔진은 이 반경을 초과하는 이전에 로드된 콘텐츠를 유지할 수 있습니다.

Default메모리가 부족할 때만 콘텐츠가 제거됩니다 (LowMemory와 동일).
LowMemory필요 시 메모리를 확보하기 위해 콘텐츠를 언로드합니다.
Opportunistic메모리 압박이 없어도 목표 반경을 초과하는 콘텐츠를 언로드하여 성능을 최적화합니다.

세부사항 수준 (LOD)

Roblox에서 이 설정은 인스턴스 스트리밍이 활성화된 경험에서 모델의 시각적 품질을 결정합니다.
StreamingMesh스트리밍 반경 외부의 모델에 대해 낮은 해상도의 '임포스터' 메쉬를 사용합니다.
Disabled/Automatic낮은 해상도 메쉬가 표시되지 않으며, 스트리밍 반경 내에서 전체 세부사항을 유지합니다.
Image 1
Roblox Studio

물리

Roblox에서 게임 성능을 최적화하기 위해 물리 설정을 관리하는 것이 중요합니다. 물리 속성이 필요 없는 부분을 고정(anchored)으로 설정(part.Anchored = true)하여 비활성화할 수 있습니다. 또한, 특정 부분의 충돌을 비활성화(part.CanCollide = false)하여 불필요한 충돌을 최소화하여 성능을 향상시킵니다.
Image 1
Image 2
Roblox Studio

더 많은 최적화 옵션

  • 부품 수를 줄임으로써, 더 적은 부품은 더 나은 성능으로 이어집니다.
  • 특히 저사양 장치에서 시각적 품질과 성능의 균형을 맞추기 위해 텍스처를 최적화하십시오.
  • 동적 조명을 제한하고 가능한 경우 그림자 없는 조명을 사용하여 조명을 최적화하십시오. 이러한 조정은 계산 부담을 줄이고 전체 게임 성능을 향상시킵니다.
  • 부품과 메쉬의 효율적인 사용: 고다각형 메쉬의 사용을 최소화하고 가능한 경우 Roblox의 BaseParts를 사용하십시오.
  • 스크립트 최적화: 불필요한 루프를 제거하고 알고리즘을 최적화하며 효율적인 데이터 구조를 사용하십시오.
  • 네트워크 최적화: 데이터 전송을 줄이고 원활한 클라이언트-서버 통신을 보장하십시오.
  • 클라이언트 측 최적화: 서버 부하를 줄이고 반응성을 높이기 위해 작업을 클라이언트에 오프로드하십시오.
  • Debris 서비스: 임시 객체를 관리하는 데 Debris 서비스를 사용하십시오.
local Debris = game:GetService("Debris")

local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Parent = workspace

-- Add the part to Debris, which will remove it after 5 seconds
Debris:AddItem(part, 5)

MicroProfiler

MicroProfiler는 Roblox Studio에서 게임의 성능 문제를 분석하고 진단하는 데 사용되는 도구입니다.
Image 1
Roblox Studio

Ctrl Alt F6 (⌘⌥F6)

Image 1
Roblox Studio

MicroProfiler (파란색 및 주황색)

Image 1
Roblox Studio
Color BarDetailsIndication
주황색표준 프레임에서 작업 시간이 렌더링 시간을 초과합니다.CPU가 초점인 정상적인 성능을 나타냅니다.
파란색렌더링 시간이 작업 시간을 초과합니다.'렌더링 스레드를 기다리는 중'이라는 세부 정보를 확인하려면 마우스를 가져가십시오. 많은 파란색 막대는 렌더링이 주요 문제임을 나타냅니다.

MicroProfiler (스파이크)

Image 1
Roblox Studio
Graph PositionDetailsIndication
중간막대는 일반적으로 그래프의 중간에 있어야 합니다.작업 일정이 균형 잡힌 정상적인 작동을 나타냅니다.
스파이크그래프 중간 상단에서 막대가 급증하거나 증가합니다.작업 스케줄러 프로세스를 수행하는 데 더 많은 시간이 소요됨을 나타내며, 이는 종종 많은 움직이는 부분을 처리하는 데 따른 작업량 증가로 인해 발생합니다.

MicroProfiler (일시 정지)

Ctrl P (⌘P)

MicroProfiler에서 그래프를 클릭하거나 드래그하여 프레임을 탐색할 수 있으며, 스크롤 휠을 사용하여 타임라인을 확대할 수 있습니다. 다양한 작업이 색깔 있는 라벨로 표시되며, 하나의 작업이 다른 작업 동안 수행될 때 해당 라벨이 다른 라벨 아래에 직접 표시됩니다.
Image 1
Roblox Studio

MicroProfiler (확대)

라벨을 오른쪽 클릭하면 타임라인이 라벨의 지속 시간에 맞게 확대됩니다.

Image 1
Image 2
Roblox Studio

왼쪽 클릭하면 게임 뷰의 오른쪽 하단에 선 그래프가 표시되며, 각 프레임의 작업에 걸리는 시간을 표시합니다. 이 그래프를 통해 성능 테스트가 가능합니다.

Image 1
Roblox Studio
메인Details
메인입력, 물리, 애니메이션, 사운드, Studio 업데이트를 관리하며 다른 스레드를 조정합니다.
작업 스레드네트워킹, 물리학, 경로 찾기와 같은 작업을 메인 스레드와 함께 수행합니다. CPU 코어에 따라 여러 작업자가 사용됩니다.
렌더링 (GPU)그래픽 렌더링을 처리합니다.

사용자 정의 프로파일링

스크립트가 복잡한 작업을 수행하는 데 걸리는 시간을 모니터링하려면 시작 부분에서 debug.profilebegin을 사용하고 끝 부분에서 debug.profileend를 사용하십시오. 이렇게 하면 이 지점 사이에 소요된 시간을 측정하고 MicroProfiler 타임라인에 라벨을 생성합니다.
local Debris = game:GetService("Debris")

local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Parent = workspace

-- Add the part to Debris, which will remove it after 5 seconds
Debris:AddItem(part, 5)

이 튜토리얼이 도움이 되셨다면, 저의 작업을 지원하기 위해 커피 한 잔을 사주시면 감사하겠습니다.

지원해 주셔서 정말 감사합니다!

커피 한 잔 사주기