PART 3 - 강의 3/3

Iris 마이그레이션 가이드

기존 프로젝트를 Iris로 마이그레이션하는 단계별 가이드

01

Step 1: Registered Subobject List 활성화

모든 Actor에서 새 방식 사용

C++ // 모든 복제 Actor의 생성자에서 AMyActor::AMyActor() { // 필수: 새로운 서브오브젝트 등록 방식 활성화 bReplicateUsingRegisteredSubObjectList = true; } // ReadyForReplication에서 서브오브젝트 등록 void AMyActor::ReadyForReplication() { Super::ReadyForReplication(); // 복제할 컴포넌트/서브오브젝트 등록 AddReplicatedSubObject(MyInventoryComponent); AddReplicatedSubObject(MyAbilityComponent); }
02

Step 2: UObject 서브오브젝트 복제

컴포넌트가 아닌 UObject 복제 설정

C++ // UObject 서브오브젝트 복제 설정 class UMyReplicatedObject : public UObject { GENERATED_BODY() public: // 네트워킹 지원 활성화 virtual bool IsSupportedForNetworking() const override { return true; } virtual void GetLifetimeReplicatedProps( TArray<FLifetimeProperty>& OutLifetimeProps) const override { DOREPLIFETIME(UMyReplicatedObject, MyProperty); } UPROPERTY(Replicated) int32 MyProperty; };
03

Step 3: 커스텀 NetSerialize 구조체 등록

Iris에서 커스텀 직렬화 구조체 사용

DefaultEngine.ini // 커스텀 NetSerialize 구조체를 Iris에 등록 [/Script/IrisCore.ReplicationStateDescriptorConfig] +SupportsStructNetSerializerList=(StructName=FMyCustomStruct) +SupportsStructNetSerializerList=(StructName=FMyOtherStruct)
주의: 등록 누락

커스텀 NetSerialize를 가진 구조체를 등록하지 않으면 Iris에서 기본 직렬화를 사용하여 데이터가 올바르게 전송되지 않을 수 있습니다.

04

마이그레이션 체크리스트

마이그레이션 전 확인 사항

  • ReplicateSubobjects() 제거 - 오버라이드 코드를 Registered List로 변환
  • bReplicateUsingRegisteredSubObjectList = true - 모든 Actor에서 설정
  • Replication Graph 제거 - Iris와 동시 사용 불가
  • 커스텀 NetSerialize 등록 - ini 파일에 구조체 추가
  • GetNetPriority/IsNetRelevantFor 검토 - 필요시 Iris API로 변환
점진적 마이그레이션

Iris 플러그인을 활성화하기 전에 먼저 Registered Subobject List로 마이그레이션하세요. 이 단계는 기존 시스템에서도 동작하므로 안전하게 테스트할 수 있습니다.

SUMMARY

핵심 요약

  • Step 1 - bReplicateUsingRegisteredSubObjectList 활성화
  • Step 2 - UObject에 IsSupportedForNetworking 구현
  • Step 3 - 커스텀 NetSerialize 구조체 ini 등록
  • 점진적 마이그레이션 - Registered List 먼저, 그 다음 Iris 활성화
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: Iris 마이그레이션 체크리스트

프로젝트에서 ReplicateSubobjects() 오버라이드를 모두 검색하고 Registered Subobject List 방식으로 변환하세요. bReplicateUsingRegisteredSubObjectList와 AddReplicatedSubObject()를 사용하세요.

실습 2: IrisNetDriver 전환 테스트

DefaultEngine.ini에서 NetDriverDefinitions를 IrisNetDriver로 변경하고 IpNetDriver를 Fallback으로 지정하세요. 기존 기능의 리그레션 테스트를 수행하세요.

심화 과제

Replication Graph 기반 프로젝트를 Iris로 전환하세요. 필터링 로직을 Iris Filtering API로 재구현하고, 100명 봇 환경에서 서버 FPS와 메모리 사용량을 양쪽 시스템 간 비교해보세요.