스트리밍은 로드보다 수명 경계를 관리하는 일이다
Persistent Level은 공통 규칙을 유지하고, 서브 레벨이나 World Partition 셀은 플레이어 위치와 이벤트에 맞춰 들어왔다가 나간다. 핵심은 로드 완료 전 참조를 막고, 언로드 전에 상태와 연결을 정리하는 것이다.
로드, 참조, 언로드 수명 주기
lifecycle map거리, 볼륨, 퀘스트, Data Layer 상태로 필요한 구역을 결정한다.
LoadStreamLevel이나 World Partition 셀 로드가 시작된다.
레벨이 보이고 액터가 준비될 때까지 상호작용을 열지 않는다.
스트리밍된 액터 접근 전 레벨 로드 상태와 유효성을 확인한다.
멀어진 구역은 저장 상태를 남기고 참조를 끊은 뒤 메모리에서 내린다.
던전 입구, 건물 내부, 컷신 구간처럼 언제 열릴지 직접 정해야 할 때 쓴다.
셀, Data Layer, HLOD를 함께 관리해 거리 기반 로드를 맡긴다.
월드를 숨기는 것이 아니라 필요한 공간만 끊김 없이 경험하게 한다.
운영 선택 매트릭스
streaming policy소유권과 참조 경계
reference boundary공통 규칙, 게임 모드, 오래 살아야 하는 관리 액터를 둔다.
지역 액터와 환경 상태를 소유하고, 언로드와 함께 사라질 수 있다.
퀘스트 단계, 시간대, 월드 상태별 액터 집합을 분리한다.
로드 여부, 액터 유효성, soft reference 해소 시점을 확인한다.
레벨이 보이기 전에 actor pointer를 믿으면 null과 경합이 생긴다.
강한 참조가 많으면 분리한 구역이 함께 메모리에 올라온다.
문 열림, 적 처치, 퍼즐 진행은 지역 액터만 믿지 않는다.
문, 코너, 엘리베이터처럼 플레이어가 변화를 덜 느끼는 곳에 둔다.
스트리밍의 목표는 큰 월드를 숨기는 것이 아니라, 플레이어가 필요한 공간만 끊김 없이 경험하도록 책임을 나누는 것이다.
- 로드 완료 전 액터 참조를 막는 검사가 있는가?
- 언로드 전에 저장해야 할 지역 상태를 분리했는가?
- World Partition에서는 셀, Data Layer, HLOD를 함께 봤는가?