GameMode
게임모드는 전체적인 진행을 담당하는 액터로 서버와 비슷한 느낌이다
게임 모드를 서버의 접속과정과 함께 알아보자
서버 컴퓨터에서 데디 서버 실행 파일을 실행하면
Open Level 명령어와 Listen 명령어가 수행된다
이때 열린 레벨의 월드 세팅에 게임모드에 대한 정보가 있다
해당 게임모드를 생성하고 또 그 게임모드에 PlayerController, PlayerState, … 정보가 있다
이러한 정보들을 가지고 각각 해당 액터들을 만들어낸다
게임 모드 액터는 Server에만 존재하고 복제도 되지 않기에
각 클라 PC에는 게임모드 액터가 없으며 접근 시 nullptr이 반환된다
그래서 게임모드에 접근하려면
Server RPC 함수 내에서 접근하거나,
서버에서 수행되는 함수 내에서 HasAuthority() 함수로 서버임을 검증하고 접근하는 것이 올바르다
GameState
서버가 각 클라에게 알려야하는 정보가 있다면 GameState를 활용하면 좋다
예를 들어, 서버가 각 클라들에게 게임 상태에 대한 정보를 전달해야 하는 경우에
NetMulticast RPC를 사용할 수 도 있지만
각 클라에게 복제가 되는 GameState 액터를 활용해서
복제가 되길 원하는 GameState의 속성에 Replicated 키워드만 작성하면
쉽게 이를 해결할 수있다
그리고 각 클라의 UI에서 GameState에 접근해 해당 속성을 읽어오도록 설계도 할 수 있다
'게임 엔진 > [코드조선] 언리얼 데디서버' 카테고리의 다른 글
애니메이션 동기화 (0) | 2025.03.07 |
---|---|
Replicated, ReplicatedUsing 키워드 (0) | 2025.03.07 |
함수 내부에서의 구분 (0) | 2025.03.07 |
RPC 활용 (0) | 2025.03.07 |
RPC 키워드 사용법 (0) | 2025.03.07 |