일반 게임 접속을 통하지 않고 RPC를 통해 서버와 접촉해 가벼운 상호작용을 제공하는 Actor
Project에 맞는 상호작용, 로직, 정보 요청을 위한 Custom Class 확장을 권장
특수한 경우에 내장 Class를 그대로 사용 하기도 함.
OnlineBeacon
대표적인 사용 예시는 다음과 같다.
서비스 품질 정보 요청
Client가 참여하고자 하는 Game의 Slot 예약
Player 이름 목록
진행 중인 Game의 진행 시간 및 점수
AOnlineBeacon
AOnlineBeaconHost, AOnlineBeaconClient의 BaseClass
AOnlineBeaconHost
별도의 NetDriver를 사용해 Remote Client에서 들어오는 OnlineBeacon Access를 Listen.
Access를 받으면 등록된 OnlineBeaconHostObject 인스턴스를 대상으로 일치하는 Client를 탐색, 해당 Object에 Access를 넘겨준다.
이 Class는 파생 Class를 만들 필요가 없다.
Client와 등록된 OnlineBeaconHostObject 사이의 초기 접속만 관리하기 때문이다.
AOnlineBeaconClient
Host에 접속하여 실제 RPC를 생성
하나는 Client에서 생성
다른 하나는 Server의 OnlineBeaconHost에 등록된 적합한 OnlineBeaconHostObject에 의해 생성
GetBeaconType 함수를 사용해 적합한 Host Object Class의 Register Instance에 일치시킨다.
이 방식은 일반적으로 Server가 Spawn하고 Client에 Replicate하는 Actor Spawning 방식과 다르다.
하지만 Client Object와 Server Object 사이에 접속이 이루어진 후, 어느 한 쪽이 다른 쪽에 RPC를 할 수 있게 되면서 Object Replicate가 정상적으로 이루어지게 되며, Server Actor는 Property Replicate와 관련해 Authority를 가지게 된다.
OnConnected와 OnFailure 함수를 통해 접속 시 RPC를 호출하거나, 접속 실패 처리를 할 수 있다.
Beacon에서 요구하는 Client쪽 작업이 필요할 시 이 Class에서 구현되어야 한다.
AOnlineBeaconHostObject
OnlineBeaconClient Class와 짝을 이루도록 만들어져야 하는 Class
Client의 GetBeaconType() 함수의 반환값과, BeaconTypeName에 저장된 값을 일치 시켜 짝을 이룬다.
OnlineBeaconHost에 Access를 요구하는 OnlineBeaconClient에 대응하는 OnlineBeaconHostObject가 탐지 되면, OnlineBeaconHostObject::SpawnBeaconActor를 통해 OnlineBeaconClient의 사본을 Spawn
SpawnBeaconActor로 ClientBeaconActorClass 변수를 사용해 Sapwn 할 Actor Class를 결정
이 CleintBeaconActorClass가 짝을 이룬 OnlineBeaconClient Class로 설정 되어야 함.
Spawn 된 OnlineBeaconClient에서 SetBeaconOwner도 호출해야 Client와 통신을 할 수 있다.
위의 기능들은 대부분 BaseClass에서 이루어지기 때문에 Override 할 필요가 없다.
PartyBeacon
Party 기반 매치메이킹을 위해 특별히 설계된 클래스
Multiplay Game에서 파티 형성 및 GameSession 접속을 관리
PartyBeaconClient
Server에 있는 PartyBeaconHost와 통신해 Party 매치메이킹을 요청
Server에 Party 정보 전송
성공 여부를 받아 처리하는 Client Interface
PartyBeaconHost
Server에서 각 Party의 요청에 따라 GameSession 할당
PartyBeaconState
현재 Party의 상태와 Session의 예약 정보를 관리
Party 크기
Session에 접속된 Party 수
가능한 최대 Party 수
Server로부터 예약 요청 처리에 필요한 정보들을 제공
SpectatorBeacon
관전자 모드를 위한 특수 구성 요소
Multiplayer Game에서 관전자가 게임을 관찰할수 있도록 한다.
관전자가 Server에 효율적으로 접속하고, 게임 진행을 관찰할 수 있게하는 과정을 관리
SpectatorBeaconClient
Client에서 관전자가 GameServer에 접속 요청을 할 때 사용
Server의 SpectatorBeaconHost와 통신해 관전 가능한 세션을 요청, 입장 승인 여부를 확인