본문 바로가기
반응형

Unreal Engine/UE4 네트워크2

언리얼 멀티플레이어 리플리케이션의 핵심 개념 HasAuthority() : 서버인지 확인하는 함수 언리얼엔진 클라이언트-서버 모델은 서버가 권한을 갖고 있다. (그래서 서버인지 확인하는 함수명 HasAuthority()) 동기화는 항상 서버의 권한. 서버에 있는 값이 항상 정확한(신뢰할 수 있는) 값임. => authoritative 서버에서 값을 업데이트 해서 리플리케이트 할 변수들만(신뢰할 수 있는 값) 클라이언트들에게 보내는 방식. -> 만약 서버가 아닌 클라이언트에서 액터를 업데이트 시켰다면? => 클라이언트는 서버로 다시 값을 보내지 않는다. 서버가 유지하는 값이 항상 정확한 값이기 때문. 결국 서버는 값이 그대로임. 하지만 서버에서 값을 업데이트 한다면 클라이언트에서 업데이트 하는 값과 차이가 생기게 됨. 그래서 클라이언트에서는 액터가 .. 2022. 6. 24.
멀티플레이시 언리얼엔진 내부에서 일어나는 일 삼인칭 템플릿 프로젝트를 생성하고 에디터에서 Netmode를 Play as Listen Server로 하고 플레이어 수를 늘려 플레이 하면 각 클라이언트에서 캐릭터를 조종해서 다른 캐릭터가 움직이는걸 서로 볼 수 있다. 어떻게 가능할까? 언리얼엔진 내부에서 일어나는 일 1. 맵(월드)을 로딩한다. 2. 맵은 GameMode를 특정한다. (게임모드는 오버라이드 가능. 특정 월드를 위한 게임모드 만들어서 오버라이드 가능.) 3. 맵에 조인하려는 Player Controller를 얻는다. -> 두 플레이어를 배치한다면, 두 개의 플레이어 컨트롤러를 생성하고 맵에 조인시킨다. 4. 플레이어 컨트롤러는 게임모드에 Pawn을 스폰하도록 요청한다. -> GameMode : Pawn을 생성할 위치를 결정하는 클래스 5.. 2022. 6. 24.
반응형