언어:
페이지 정보
엔진 버전:
언리얼 엔진

액터 리플리케이션

언리얼 엔진

네트워킹 개요에서 언급했듯이, 리플리케이션의 주역은 Actor, 액터입니다. 서버는 액터 목록을 유지하고, 클라이언트에서 (리플리케이트되도록 마킹된) 각 액터에 대한 근접 추정치를 유지할 수 있도록 클라이언트를 주기적으로 업데이트합니다.

액터 업데이트 방식은 크게 두 가지입니다:

  • 프로퍼티 업데이트

  • RPC (Remote Procedure Call).

프로퍼티 리플리케이션과 RPC 사이의 큰 차이점은, 프로퍼티는 변경될 때마다 자동으로 리플리케이트되는 반면, RPC 는 실행될 때만 리플리케이트된다는 점입니다.

리플리케이트시켜야 하는 프로퍼티 유형의 좋은 예라면, 액터의 생명력(health)을 들 수 있습니다. 이런 것은 변할 때마다 클라이언트에서 알았으면 좋겠지요. 생명력 값이 변하지 않으면, 아무것도 전송되지 않습니다. 매우 효율적이지요. 하지만 유념할 것은, 이 프로퍼티가 변하지 (그래서 대역폭을 차지하지) 않더라도, 이 값이 변했는가 아닌가 결정하는 데 드는 CPU 비용은 있다는 점입니다. 즉 자주 변경되는 프로퍼티에 맞춰져 있습니다.

프로퍼티 관련 상세 정보는 프로퍼티 리플리케이션 문서를 참고하세요.

RPC 의 예제라면, 각 클라이언트마다 특정 위치에서 보이도록 하고픈 폭발을 들 수 있습니다. 위치와 반경을 파라미터로 하는 RPC 를 선언한 다음, 폭발이 발생할 때마다 그것을 호출해 주면 됩니다. 이것을 클라이언트 통신을 위한 리플리케이트용 프로퍼티 그룹으로 저장할 수도 있지만, 효율은 약간 떨어지는 것이, 폭발이라는 것이 프로퍼티로 할 만큼 자주 일어나지는 않을 수 있기 때문입니다.

RPC 관련 상세 정보는, RPC 문서를 참고하세요.