RePlication은 무엇인가?
언리얼에서 Replication은
멀티플레이어 환경에서 데이터와 상태를 클라이언트와 서버간의 동기화 하는 과정
즉 서버와 클라이언트 간 동기화
서버에서 결정된 상태를 클라이언트로 전송 되어 일관성 유지(오늘 공부했던 내용 중 일관성)
언리얼에서 변수나 함수에 Replication이라는 프로퍼티를 설정해 복제 여부를 지정 할 수 있다.
RepNotify
값 변경시 서버에서 클라이언트로 이벤트 호출
자동 호출
클라이언트에서 실행
네트워크가 연결되어 있으면 신뢰 가능
UPROPERTY(ReplicatedUsing=OnRep_HealthChanged) int32 PlayerHealth = 100;
ActorReplication
변수값의 동기화 및 오너쉽 관리로 서버에서 클라이언트
자동 호출
서버에서 값 변경 후 클라이언트에 반영
네트워크가 연결 되어 있으면 신뢰 가능
UPROPERTY(Replicated) int32 PlayerHealth = 100;
RPCs
서버와 클라이언트 간 양방향 함수 호출
수동 호출
서버와 클라이언트 에서 실행
Reliable/ Unreliable 선택 가능
UFUNCTION(Server, Reliable) void ServerFireWeapon();
UFUNCTION(NetMulticast, Unreliable) void MulticastPlayExplosionEffect();
언리얼에서 Replication 설정 하기
Server 클라이언트가 서버에 요청
Client 서버가 특정 클라이언트에만 실행 지시
NetMulticast 서버가 모든 클라이언트에 브로드 캐스트
Listen Server와 Dedicated Server
(언리얼에서는 기본적으로 제공 하는 서버)
대규모 서버 는 데디케이트 서버
소규모 서버 와 방장도 같이 게임하는거는 Listen 서버
인 것 같다.