퍼펙트 월드의 서브컬처 오픈월드 RPG '이환'이 4월 29일 출시됐어요 — 언리얼 페스트 서울 2026 기술 토크
핵심 요약
- '이환'은 4월 29일 PC, PS5, 모바일에서 출시됐어요.
- 제출 캡을 쓰면 300명 에이전트 시뮬레이션이 60fps에 가까운 성능을 유지했어요.
- 안드로이드 API 예외를 위한 135개 기기 화이트리스트를 관리해요.
- 390,000개 상세 프로필로 의도된 기기의 90~95%를 커버해요.
퍼펙트 월드의 서브컬처 오픈월드 RPG '이환'이 4월 29일 출시됐는데요. 언리얼 페스트 서울 2026에서는 언리얼 엔진 엔지니어들이 이 도시가 PC, PS5, 모바일에서 부드럽게 돌아가는지 이야기했죠. 리우 젠양과 펑 티엔리는 언리얼 개발자들에게 로딩 없이 도시를 스트리밍하고 렌더링하는 구체적인 방식을 설명했어요.
리우 젠양은 플레이어 입장에서는 간단해 보이는 문제부터 시작했어요. 구역을 지나 전화박스에 들어가면 거의 즉시 다른 곳으로 나타나는 거죠. 하지만 팀 입장에서는 그게 아주 쉬운 일이 아니었죠. 핵심 원칙은 '일찍 트리거하고 늦게 처리'였어요. 플레이어가 도착하기 전에 가상 카메라와 스트리밍 소스를 미리 생성하고, 배경에서 지형과 데이터를 가져오면 로딩이 플레이를 방해하지 않게 되죠. 순간이동과 구역 변경은 세 단계로 나뉘어요. 첫 번째는 목적지 데이터의 안전한 로딩을 확인하고, 두 번째는 게임 환경 복구를 체크하며, 세 번째는 NPC나 차량 같은 동적 객체와 로컬 세계 상태가 모두 해결될 때까지 플레이어에게 제어권을 돌려주는 거예요. 이 순서 덕분에 불완전한 세계 상태가 플레이어에게 노출되는 일은 없어요.
겹치는 구역의 메모리 관리, 즉 '이중 소유 윈도우'에서는 엄격한 예산이 필요했어요. 모든 객체를 무거운 '풀 액터'로 올리는 대신, 팀은 전환 과정에서 메모리 사용량과 활성화 비용을 줄이는 가벼운 배치 표현을 사용했죠. 도시의 많은 부분은 일상적인 모습을 표현하는 액터로 채워져 있어서, 스튜디오는 언제까지 가벼운 상태로 두고 언제 풀 액터로 바꿀지 신중하게 조율했어요. 이런 선택적 활성화 덕분에 메모리 사용량이 줄어들고, 구역 간 전환 중 메모리 부족 현상을 막을 수 있었죠.
인구와 엔티티 최적화에서 큰 성과가 있었어요. 언리얼 엔진 5.5에서 시작해 5.6으로 확장하며, 호타 스튜디오는 '매스' 프레임워크를 도입해 수천 명의 보행자와 차량을 저렴한 데이터 단위로 관리했죠. 여러 NPC가 한 프레임에 동시에 무거운 계산을 요청하는 순간이 가장 까다로운데요. 프레임 드랍을 막기 위해 팀은 엔티티가 보이기 시작해도 풀 액터를 생성하지 않고 스트리밍과 충돌 조건이 완전히 맞을 때까지 기다렸어요. 또한 빠른 카메라 회전 중 엔티티를 평가하기 위해 단일 뷰 상태 스냅샷을 찍고, 데이터 경쟁을 막기 위해 트리플 버퍼링을 적용했죠. 핵심 주변에 세 가지 레이어의 러너 예산을 만들었는데, 로직 주기를 조절하는 '업데이트 레이트', 후보를 평가하는 범위를 제한하는 '펜딩 범위', 그리고 한 프레임에 생성되는 액터 수를 제한하는 '제출 캡'이 있어요. 안드로이드 기기에서 300명의 에이전트를 시뮬레이션했을 때, 제출 캡 제어를 적용하면 프레임 드랍이 크게 줄어들고 60fps에 가까운 성능을 유지할 수 있었다고 보고했죠.
펑 티엔리는 PC와 모바일 하드웨어 차이를 극복하기 위한 스케일러빌리티 정책을 설명했어요. 모바일 파이프라인이 단순히 PC 슬라이더를 낮춘 것이라는 생각은 틀렸다고 강조했죠. 이건 따로 만들어진 목적에 맞는 스택이라서, 발열 부하, 쓰로틀링, 대역폭 제한까지 모두 고려해야 해요. 안드로이드의 기기 분열을 지원하기 위해 팀은 광범위한 플랫폼 계열부터 구체적인 모델 매핑까지 계층적으로 디바이스 프로필을 만들었고, 일반적인 GPU 규칙보다는 모델별 규칙을 우선했어요. 검증 기반의 신뢰 시스템도 추가했는데요. 엠피크나 시네마틱 프로필로 태그가 붙어 있어도, 루멘이나 하드웨어 레이 트레이싱이 켜지려면 런타임에서 GPU 벤더, 렌더링 경로, CPU 분류를 모두 통과해야 한다는 거예요.
기기 커버리지는 이중 모델을 쓰고 있어요. 기본 폴백 레이어는 모든 기기에서 작동해야 하는 안전망 역할을 하고, 더 높은 커버리지 티어는 390,000개가 넘는 상세 프로필을 통해 의도된 기기의 90~95%를 타겟팅했죠. 펑은 특정 하드웨어 이슈를 위한 정선된 화이트리스트도 언급했어요. Vulkan이 안드로이드의 기본 API지만, 135개 기기는 OpenGL ES나 기능 비활성화 모드가 더 안정적인 별도 화이트리스트에 있어요. 이 예외들 덕분에 스튜디오는 신뢰할 수 없는 기기에서 비싼 기능을 켜는 일을 피할 수 있었죠.
방향성 조명과 그림자 처리는 오픈 도시에서 가장 비싼 비용 중 하나인데요, 여기에 실용적인 최적화가 적용됐어요. 주간-야간 주기는 12개 구간으로 나뉘고, 각 구간마다 태양의 위치가 고정되어 있죠. 이 안정성 덕분에 팀은 매 프레임 멀리 있는 그림자 맵을 다시 그리지 않고 여러 프레임에 걸쳐 캐시된 그림자 데이터를 안전하게 재사용할 수 있었어요. PC에서는 거대한 인스턴스 객체로 인한 캐시 무효화 문제를 해결했는데요. 큰 경계 상자가 뷰를 가로질러 갈 때 전체 그림자 캐시를 무효화하는 대신, 카메라 프러페어를 2D 발자국으로 바꾸고 실제로 보이는 타일만 업데이트했죠. 리우는 이 변경으로 불필요한 전체 그림자 업데이트를 약 90% 줄이고 GPU 그림자 비용을 20~30% 낮췄다고 보고했어요.
모바일 그림자 처리는 하이브리드 파이프라인을 써요. 근거리 디테일은 반응형 CSM으로, 멀리 있는 그림자는 카메라 방향이 아니라 위치에 고정되는 레이어드 그림자 맵(LSM)을 쓰죠. LSM은 카메라 회전을 따라가지 않아 플레이어가 돌아갈 때 다시 그리는 걸 피하고, 구역 이동은 N×N 타일로 나눠서 여러 프레임에 걸쳐 새로고침해요. 시스템은 이전 구역의 그림자 픽셀을 재사용하고 캐시에 기여한 메시 ID를 추적하니, 새로 나타나는 객체만 완전히 다시 그리면 되죠. 펑은 아이폰 16 프로로 캡처한 영상으로 발표를 마무리했는데요. 그가 던진 엔지니어링 목표는 이랐어요. 캐시 재사용을 최대화하고 모든 업데이트를 프레임 예산 안에 넣는 거예요.
주목할 이유
요약하자면, 호타 스튜디오는 결정론적 스테이징, 선택적 활성화, 계층형 디바이스 규칙에 엔지니어링 예산을 쏟았고 그 결과가 빛을 봤어요. 300명의 에이전트 시뮬레이션이 제출 캡을 쓰면 60fps에 가까운 성능을 유지했고, 그림자 캐시 가지치기로 전체 업데이트를 약 90% 줄였죠. 이중 티어 커버리지와 135개 기기의 특수 화이트리스트 덕분에 390,000개가 넘는 상세 프로필을 통해 의도된 기기의 90~95%를 타겟팅할 수 있었어요. 밀집된 도시 시뮬레이션과 광범위한 모바일 호환성을 모두 중요하게 생각한다면, 이런 구체적인 시스템들이 PC, PS5, 휴대폰에서 이환의 매끄러운 도시가 그대로 느껴지게 만드는 비결이에요.
원문 출처
Google News: Inven Korea