[KOR][100]Integrated-Insights--Automating-Performa

https://youtu.be/Hr79E6vK74c?si=jVZK5BOujkDnwil3

Frame at 0.00s
## Marvel 1943 Rise of Hydra: 통합 인사이트, 자동화된 성능 캡처 **발표자:** Marios (Virtuos 엔지니어링 디렉터), Steven (Black Shamrock 테크니컬 디렉터) ### 요약 본 발표는 **연속적인 성능 모니터링**을 통해 게임 개발의 최적화 및 성능 관리 방식을 혁신하는 방법을 다룹니다. Skydance Games와의 협력을 통해 개발된 **"Goliath"**라는 도구를 중심으로, 프로젝트 초기부터 성능을 고려하는 **능동적인 접근 방식**의 중요성과 구체적인 구현 사례를 공유합니다. ### 핵심 내용 * **문제 인식:** * 기존 게임 개발에서는 **"콘텐츠 잠금 후 최적화", "피처 우선 개발"**과 같이 성능 최적화가 후순위로 밀리는 경우가 많았습니다. * 이는 **"성능 부채"**를 발생시켜 개발 후반부에 막대한 수정 비용과 리스크를 초래합니다. * 성능 문제는 **수동적이고 산발적인 프로세스**로 인해 효과적인 해결이 어려웠습니다. * **"조기 최적화는 모든 악의 근원"**이라는 통념이 있지만, 이는 **비중요 코드**에 대한 최적화를 경계한 것이며, **중요 코드**에 대한 조기 식별 및 최적화는 필수적입니다. * **해결 방안: Goliath 도구 및 능동적 성능 관리** * **"Goliath"**는 성능 추적을 **일회성이 아닌 지속적인 과정**으로 만들어 게임 개발의 **"퍼스트 클래스 시티즌"**으로 만듭니다. * **주요 목표:** * **단일 대시보드:** 모든 성능 데이터를 한 곳에 모아 **단일 진실 공급원(Single Source of Truth)** 구축 * **성능 추적:** 시간 경과에 따른 성능 변화 및 원인-결과 관계 파악 * **효율성 및 일관성:** 반복적인 수동 프로파일링 작업 자동화 * **Goliath 구현 단계 및 주요 기능:** 1. **핵심 구간 식별:** 게임 내 성능이 중요한 구간 (시네마틱, 격렬한 전투, 복잡한 씬 등)을 사전에 정의합니다. * 디자인, 아트, 애니메이션 팀과의 협력을 통해 잠재적 성능 병목 구간 파악 2. **체크포인트 설정:** 레벨 내 특정 위치에 **경량화된 체크포인트**를 삽입하여 데이터 캡처 지점 설정 3. **자동화된 성능 캡처:** 빌드 생성 시마다 **자동으로 체크포인트를 실행**하고 성능 데이터 수집 (Hands-off 방식) * **일관성 있는 측정:** 빌드, 환경, 카메라 각도 등에 따른 변수 최소화로 **신뢰할 수 있는 데이터** 확보 4. **데이터 시각화 및 분석 (Goliath 대시보드):** * **고수준 개요:** 체크포인트의 성능 상태를 **색상(파랑: 양호, 노랑: 주의, 빨강: 문제)**으로 즉시 파악 * **핵심 메트릭:** 렌더링, 게임 스레드 등의 성능 지표 분석 * **디버그 스크린샷:** 오버드로우, 복잡도 등 시각적 정보와 성능 데이터를 **연관 분석** * **시간 경과 추적:** Unreal Insights 데이터를 활용하여 **핵심 메트릭의 추이** 시각화 (이벤트 그룹핑) * **Unreal Insights 연동:** 문제 발생 시 **직접 Unreal Insights 트레이스 파일로 이동**하여 심층 분석 가능 (제로 마찰) * **협업 사례: Skydance Games와의 파트너십** * "Marvel 1943 Rise of Hydra" 프로젝트에 Goliath 적용 * **능동적 성능 관리 도입:** 프로젝트 초반부터 성능을 최우선 과제 중 하나로 설정 * **협력적 개발:** Skydance Games는 도구 개발뿐 아니라 **커뮤니티 전체에 도움이 될 도구**를 만드는 데 기여 * **Goliath의 장점 및 효과:** * **문제 조기 발견 및 해결:** * **Skyrim 개미 그림자 오류 사례:** 수동 방식은 발견에 수일~수주 소요되나, Goliath는 **하루 만에 문제 파악 및 해결** 가능 * **개발자 작업 영향 평가:** 코드 커밋 후 성능 변화를 **즉각적으로 확인**하여 잠재적 성능 이슈 조기 차단 * **협업 강화:** * **모든 팀원이 동일한 데이터를 기반**으로 소통하며, **명확하고 실행 가능한 피드백** 제공 * **"누가 잘못했는가"**가 아닌 **"문제를 어떻게 함께 해결할 것인가"**에 집중 * **이상 현상 탐지:** * 일회성으로 나타나는 **희귀한 성능 문제**도 **일관된 데이터 수집**을 통해 추세 분석 및 근본 원인 파악 * **모듈식 설계:** * **엔진 비종속적**으로 설계되어 다양한 엔진 및 프로젝트에 적용 가능 * **웹 기반 프론트엔드 (Blazor), UE5 플러그인, Cruncher, 백엔드 (ASP.NET, MongoDB)** 등 유연한 아키텍처 * **미래 발전 방향:** * AI 기반 최적화 조언 시스템 * 디버그 이미지 자동 분석 및 성능 점수화 * PIX, RenderDoc 등 **타사 도구와의 통합** 확장 * **결론:** * **게임 개발 과정에 성능 추적을 통합**하는 것이 성공적인 결과 도출의 핵심입니다. * **생산 예측 가능성 향상, 문제 조기 해결, 혁신에 집중**할 수 있는 개발 환경 조성 * **개별 개발자, 테크 리드, 프로듀서** 등 모든 이해관계자에게 실질적인 이점 제공 * 궁극적으로 **개발자의 삶을 윤택하게 하고, 창의성과 재미에 더 집중**할 수 있는 문화를 만듭니다. ### 핵심 용어 * **Continuous Monitoring (연속 모니터링):** 개발 주기 전반에 걸쳐 지속적으로 성능을 감시하는 방식 * **Proactive vs. Reactive (능동 vs. 수동):** 문제가 발생하기 전에 대비하는 것과 문제가 발생한 후에 대응하는 것 * **Performance Debt (성능 부채):** 최적화 지연으로 인해 발생하는 후반부의 높은 수정 비용 * **Single Source of Truth (단일 진실 공급원):** 모든 관련 정보를 한 곳에서 관리하여 일관성을 유지하는 것 * **Checkpoint (체크포인트):** 성능 데이터 수집을 위한 특정 게임 내 지점 * **Playlist (플레이리스트):** 여러 체크포인트를 논리적으로 그룹화한 집합 * **Event Group (이벤트 그룹):** 관련 타이머들을 의미 있는 단위로 그룹핑한 것 * **Unreal Insights:** 언리얼 엔진의 성능 분석 도구