본문 바로가기
Unreal Engine/UE4 네트워크

언리얼 멀티플레이어 리플리케이션의 핵심 개념

by JJPearl 2022. 6. 24.
반응형

HasAuthority() : 서버인지 확인하는 함수

언리얼엔진 클라이언트-서버 모델은 서버가 권한을 갖고 있다. (그래서 서버인지 확인하는 함수명 HasAuthority())

동기화는 항상 서버의 권한. 서버에 있는 값이 항상 정확한(신뢰할 수 있는) 값임. => authoritative

서버에서 값을 업데이트 해서 

리플리케이트 할 변수들만(신뢰할 수 있는 값) 클라이언트들에게 보내는 방식.

 

->

만약 서버가 아닌 클라이언트에서 액터를 업데이트 시켰다면?

=> 클라이언트는 서버로 다시 값을 보내지 않는다. 서버가 유지하는 값이 항상 정확한 값이기 때문.

결국 서버는 값이 그대로임.

하지만 서버에서 값을 업데이트 한다면 클라이언트에서 업데이트 하는 값과 차이가 생기게 됨.

그래서 클라이언트에서는 액터가 업데이트 되는 것 처럼 보이지만 실제 서버 값은 유지되고 있다.

e.g.) 예를 들어, 콜리젼이 있는 물체의 위치값을 클라이언트에서 업데이트 했다.

클라이언트에서는 움직이는 것 처럼 보이지만 실제 서버 위치 값은 그대로 이기 때문에 클라이언트에서는 이미 물체가 사라져서 없어진 것 처럼 보이지만 충돌이 일어난다.

 

반응형