Replication Replication이란 Server와 Client사이의 명령과 데이터를 주고받는 것이다. 즉, Server와 Client의 동기화라고 생각하면 된다. Replication의 방식은 두 가지이다. 프로퍼티 업데이트 RPC (Remote Procedure Call). 프로퍼티 리플리케이션과 RPC 사이의 큰 차이점은, 프로퍼티는 변경될 때마다 자동으로 리플리케이트되는 반면, RPC는 실행될 때만 리플리케이트된다는 점이다. 쉽게 말하면 프로퍼티 업데이트는 자동, RPC는 수동이다. 프로퍼티 업데이트 예를 들어, 한 캐릭터의 체력을 나타내는 변수는 프로퍼티 업데이트 방식을 이용하여 데미지를 입었을 때 자동으로 Replication이 되게 할 수 있다. 하지만, 프로퍼티의 변화를 감지하는 ..
Multiplayer
Travel Map을 이동하기 위해서는 Travel을 이용해야 한다. Travel은 크게 Seamless 방식과 non-seamless방식으로 나뉜다. Seamless 방식은 Player들의 연결 해제 없이 매끄럽게 Map을 이동한다. 매끄러운 이동을 위해 TransitionMap을 이용하는데, TransitionMap이란 목적이 되는 Map으로 이동하기 전에 거쳐가는 Map이다. 쉽게 생각하면 맵을 이동 하면서 로딩화면을 띄운다고 생각하면 된다. 또한, Seamless 방식으로 Map을 이동하면 몇 개의 액터를 지속시킬 수 있다. 다음은 지속시킬 수 있는 액터들이다. GameMode 액터 (서버만) AGameModeBase::GetSeamlessTravelActorList 를 통해 추가된 액터 유효한 ..
Session 생성·조회·참여 정리 Session Session을 통한 멀티플레이어 정리 Session을 관리하는 클래스를 따로 만들 수 있겠지만 게임을 시작한 후 생성되고 종료되기 전까지 존재하는 Singleton객체인 GameInstance에서 관리하게 만들었다. Session 생성·조회·참여 모두 델리게이트를 기반으로 동작한다. 따라서, 핸들을 통해 관리하면 편하다. https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/Online/SessionInterface/ 세션 인터페이스 매치에 대한 홍보와 플레이어의 매치메이킹 처리를 위한 시스템입니다. docs.unrealengine.com Session 생성 IOnlineSession::Creat..
Multplayer지원 게임 개발을 위한 개념 정리 & 계획 Multiplayer Multiplayer를 지원하기 위해서는 서버와 클라이언트가 필요하다. 이때, 서버의 종류가 두 가지가 있다. 데디케이티드 서버(Dedicated Server): 단위 작업을 전담하는 서버(e.g. 게임 한 판, 특정 기능) 리슨 서버(Listen Server): 클라이언트/서버 구조의 서버, 하나의 PC가 서버 역할을 담당(e.g. 매칭 게임) 즉, 데디케이티드 서버는 서버 기능만을 담당하는 PC가 있는 것이고, 리슨 서버는 하나의 Player(방장)가 서버 역할을 담당하여 처리하는 구조이다. UE5로 리슨 서버 구조의 Multiplyaer 보드게임을 만들 예정이다. 한 명의 Player가 Hosting을 하여 방을 만들..