Unity 전용 서버에 대한 최적화 가이드
이 가이드는 Unity의 전용 서버 구축 시 최적화 기법에 대해 설명합니다. 전용 서버를 위한 최적화 작업을 통해 성능을 향상시키고 자원 사용을 최소화할 수 있습니다.
전용 서버 빌드 타겟
전용 서버 빌드 타겟은 네트워크화된 애플리케이션을 위해 여러 최적화를 자동으로 적용합니다. 이 최적화는 기본적으로 실행되지만, 상황에 맞게 선택적으로 조정할 수 있습니다.
자동 최적화
전용 서버 빌드 타겟에서 제공하는 기본 최적화는 다음과 같습니다:
- 오디오 보조 시스템 비활성화
- 서버에서는 오디오 지원이 필요 없으므로 CPU 로드를 줄이기 위해 오디오 보조 시스템이 비활성화됩니다.
- 조명 스레드 제거
- 조명이 렌더링될 필요가 없으므로 관련 프로세스 스레드가 제거됩니다.
- 일부 플레이어 루프 콜백 제거
- 필요 없는 플레이어 루프 콜백이 비활성화됩니다.
- 예:
SendMouseEvents
,UpdateAllRenderers
,PlayerUpdateCanvases
- GPU 전용 에셋 제거
- 서버에서는 텍스처 픽셀 데이터와 메시 버텍스 데이터가 필요하지 않으므로 이를 제거합니다.
에셋 제거 및 보존
전용 서버 빌드 타겟에서 어떤 에셋이 제거되고 보존되는지에 대한 요약은 다음과 같습니다:
제거된 에셋 | 보존된 에셋 |
---|---|
CPU 읽기/쓰기 권한이 비활성화된 텍스처 | CPU 읽기/쓰기 권한이 활성화된 텍스처 |
CPU 읽기/쓰기 권한이 비활성화된 메시의 버텍스 데이터 | CPU 읽기/쓰기 권한이 활성화된 메시의 버텍스 데이터 |
리소스 폴더에 있는 에셋 | |
텍스처 메타데이터 | |
내부 시스템에 필요한 메시 데이터 |
이 외에도 추가 최적화를 통해 성능을 더욱 향상시킬 수 있습니다.
추가 최적화 기법
- 조건부 컴파일
- 빌드 타겟에 따라 코드를 선택적으로 포함하거나 제외할 수 있습니다.
- 클래스 구현
- 플레이어와 서버별 코드를 분리할 수 있습니다.
- PlayerLoop 추가 항목 제거
- 서버 빌드의 PlayerLoop에서 불필요한 항목을 제거할 수 있습니다.
참고 자료
이 가이드를 통해 전용 서버를 최적화하여 더욱 효율적인 게임을 개발하세요!