본문 바로가기

Unreal/언리얼 엔진 5로 개발하는 멀티플레이어 게임(Book)

[Unreal] 자율 및 시뮬레이티드 프록시

액터가 오너가 변경된 후에도 책이 잠시동안 이전 오너와 새 오너 모두에게 연관성이 유지 되는 것처럼 보일 수 있다. 이러한 현상이 일어나는 이유는 과도한 CPU 리소스 및 대역폭을 사용하지 않기 위해 서버가 업데이트마다 액터를 복제하지 않고 AActor::NetUpdateFrequency 프로퍼티가 결정한 빈도대로 복제하기 때문이다.

 

또한 이동 중인 액터를 업데이트할 때도 동일한 현상이 발생하며, 클라이언트는 미리 정의된 간격으로 데이터를 받는다. 그 결과, 액터에 대한 업데이트가 플레이어에게 불규칙해 보일 수 있다. 이러한 문제를 피하기 위해 엔진은 최신 데이터를 기반으로 이동을 예측한다.

 

따라서 기본 동작은 이동 예측에 따라 결정되며, 역할을 ROLE_DimulatedProxy 값으로 설정하면 시뮬레이션 프록시가 기본 동작을 제어한다. 이 모드에서는 클라이언트가 서버에서 받은 최신 속도를 기반으로 액터의 위치를 지속적으로 업데이트 한다.

 

PlayerController 객체가 액터를 제어할 때, 역할을 ROLE_AutonomosProxy 값으로 설정해 자율 프록시를 사용할 수 있다. 이 경우, 시스템은 실제 플레이어로부터 직접 추가 정보를 받아 좀 더 원활하게 향후 행동을 예측할 수 있다.