icon안동민 개발노트

에디터의 성능 최적화


 언리얼 엔진 에디터의 성능을 최적화하는 것은 효율적인 게임 개발을 위해 매우 중요합니다.

 이 가이드에서는 에디터 성능에 영향을 미치는 주요 요소들을 살펴보고, 각 영역별 최적화 전략을 상세히 알아보겠습니다.

주요 성능 영향 요소

  1. 하드웨어 사양
  2. 프로젝트 복잡도
  3. 에디터 설정
  4. 에셋 관리
  5. 뷰포트 설정

하드웨어 최적화

  1. SSD 사용 : 프로젝트와 엔진을 SSD에 설치
  2. RAM 증설 : 최소 16GB, 권장 32GB 이상
  3. 그래픽 카드 : VRAM 8GB 이상 권장
  4. CPU : 멀티코어 프로세서 활용

 예시 설정

프로젝트 경로: D:\UnrealProjects\ (SSD)
엔진 설치 경로: C:\Program Files\Epic Games\ (SSD)

프로젝트 복잡도 관리

  1. 월드 컴포지션 활용
World Settings > Enable World Composition: True
  1. 레벨 스트리밍 최적화
Level Blueprint > Add Level Streaming Volume
  1. 액터 인스턴싱 사용
Place Actor > Instanced Static Mesh

에디터 설정 최적화

  1. 실시간 렌더링 조정
Editor Preferences > Performance > Use Less CPU when in Background: True
  1. 자동 저장 간격 조정
Editor Preferences > Loading & Saving > Auto Save: Every 10 minutes
  1. 뷰포트 성능 설정
Editor Preferences > Performance > Viewport Performance Settings:
- Screen Percentage: 100%
- Particle Fuel Detail: Low

에셋 관리 최적화

  1. 텍스처 스트리밍 활용
Texture Properties > LOD Group: Streaming
  1. 에셋 디스크 캐시 사용
Editor Preferences > Loading & Saving > Use Asset Disk Cache: True
  1. 미사용 에셋 정리
File > Empty Trash in Project

뷰포트 성능 향상

  1. 실시간 렌더링 최적화
Viewport > Show > Advanced > Optimizations > Deferred Rendering: True
  1. LOD 설정 조정
Static Mesh Editor > LOD Settings > Auto Compute LOD Distances: True
  1. 라이팅 빌드 최적화
World Settings > Lightmass Settings > Indirect Lighting Quality: 1.0

에셋 로딩 시간 단축

  1. 에셋 프리로딩
Project Settings > Asset Manager > Primary Asset Types > Add Type
  1. 패키징 설정 최적화
Project Settings > Packaging > Use Pak File: True
  1. 에셋 청크 크기 조정
Project Settings > Packaging > Generate Chunks: True

메모리 사용 최적화

  1. 가비지 컬렉션 설정
Project Settings > Engine > Garbage Collection > Time Between Purges: 60
  1. 메모리 프로파일링
Window > Developer Tools > Memory Profiler
  1. 에디터 메모리 제한 설정
Engine\Config\BaseEngine.ini:
[/Script/LevelEditor.LevelEditorPlaySettings]
EditorKillOverhead=3000

대규모 프로젝트 성능 관리

  1. 모듈식 레벨 디자인
  • 레벨을 작은 섹션으로 분할
  • 레벨 스트리밍 적극 활용
  1. 에셋 관리 시스템 구축
  • 명확한 네이밍 컨벤션 수립
  • 에셋 버전 관리 시스템 도입
  1. 빌드 파이프라인 최적화
  • 증분 빌드 시스템 구축
  • 자동화된 빌드 프로세스 도입

협업 환경에서의 성능 최적화

  1. 공유 에디터 설정
팀 내 표준화된 .ini 파일 공유 및 적용
  1. 버전 관리 시스템 최적화
  • Git LFS 사용 (대용량 파일 관리)
  • Perforce 사용 (대규모 프로젝트)
  1. 네트워크 캐싱
Project Settings > Packaging > Share Material Shader Code: True

성능 모니터링 및 분석 도구

  1. 언리얼 인사이트
Window > Developer Tools > Session Frontend > Unreal Insights
  1. 프로파일러
Window > Developer Tools > Session Frontend > CPU Profiler
  1. 메모리 프로파일러
Window > Developer Tools > Memory Profiler
  1. 통계 명령어
Viewport > 통계 명령어 입력 (예 : Stat FPS, Stat Unit)

실제 적용 예시 : 오픈 월드 게임 프로젝트

  1. 레벨 스트리밍 설정
World Composition 활성화
Level Streaming Volumes 사용하여 섹션별 로딩/언로딩
  1. LOD 시스템 최적화
Static Mesh > LOD Group: 사용자 정의 LOD 그룹 생성
Foliage > Cull Distance: 적절한 값으로 설정
  1. 라이팅 최적화
Static Lighting Level Scale: 1.0
Light Map Resolution: 전역 설정 대신 개별 메시에 최적화된 값 적용
  1. 텍스처 스트리밍 설정
Project Settings > Engine > Streaming > Pool Size: 2000
Texture Groups: 용도별 최적화된 그룹 설정
  1. 프로파일링 및 모니터링
정기적인 성능 체크 일정 수립
팀 내 성능 리포트 공유 시스템 구축

 에디터의 성능 최적화는 개발 생산성과 프로젝트 품질에 직접적인 영향을 미칩니다. 최적화된 에디터 환경은 개발자들이 더 빠르게 이터레이션하고, 복잡한 기능을 더 효율적으로 구현할 수 있게 해줍니다. 특히 대규모 프로젝트에서는 작은 성능 개선이 누적되어 전체 개발 과정에 큰 영향을 줄 수 있습니다.

 성능 최적화는 지속적인 프로세스입니다. 프로젝트가 진행됨에 따라 정기적으로 성능을 모니터링하고, 새로운 최적화 기회를 발견하며, 팀 전체가 최적화 관행을 공유하는 것이 중요합니다. 또한, 하드웨어 업그레이드만으로는 모든 성능 문제를 해결할 수 없으므로, 소프트웨어 레벨의 최적화와 효율적인 작업 관행을 병행하는 것이 필수적입니다.

 마지막으로, 성능 최적화는 팀 전체의 노력이 필요한 과제입니다. 개발자, 아티스트, 디자이너 모두가 성능을 고려한 작업 방식을 채택하고, 서로의 경험과 최적화 기법을 공유하는 문화를 만들어가는 것이 장기적인 프로젝트 성공의 핵심 요소가 될 것입니다.