본문 바로가기
Unreal

[Unreal] Multiplayer Game Study

by imagineer_jinny 2024. 7. 4.

Introduction

멀티플레이어 환경에서 GameMode는 서버에 한개!

 

 

우선 멀티플레이 세팅으로 바꿔보자

 

이제 클라이언트가 서버에 접속하면 HUD가 만들어지는 기능을 구현하고 싶다.

우선 새로운 PlayerController 클래스를 만들어서 그 곳에 기능을 넣어주자.

 

 

 

 

게임모드 클래스에 가서 새로 만들어준 player controller class를 넣어주고

 

ThirdPersonGameMode의 블루프린트 창에 들어가 Event OnPostLogin을 구현해준다.

 

 

이제 플레이어가 JumpBoost를 먹는 것을 구현해보자

BP_JumpBoost로 들어가서

 

Replicates에 체크

 

 

이때 다음과 같은 에러가 나타나는데

 

원인은 

 

 

일반 액터에서 게임모드를 바로 호출해서 부르려고 하기 때문임

하지만 게임모드는 서버에 있고 이 서버는 player controller를 통해 접근해야 하므로 로직을 고쳐줘야 한다.

 

 

위의 로직은 서버, 클라이언트 모두 동시에 진행되는데, 클라이언트에서는 문제가 없지만 서버에서는 Client의 HUD에 접근할 수 없다.

HUD는 Client가 소유하고 있기 때문

 

 

그래서 따로 custom event를 만들어줌

 

 

리스폰 로직 구현

 

BP_PlatformerController

 

컨트롤러가 Pawn을 소유하고 있지 않을 때 리스폰을 한다.

 

리스폰 로직은 게임모드(서버)에!

 

 

 

 

 

 

 

 

 

 

참고 유튜브

 

싱글: Make a 3D Platformer in Unreal Engine 4 (youtube.com)

서버 붙인 버전: Make a Co-op Multiplayer Game in Unreal Engine 4 (youtube.com)

 

댓글