언리얼 멀티플레이 모델
멀티플레이는 다음 2가지의 유형이 존재한다.
- Local Multiplayer: 한 PC 에서 분리된 화면으로, 2대 이상의 입력 장치를 사용하는 형태. 네트워크 불필요
- True Multiplayer: 두 대 이상의 PC에서 각각 게임 인스턴스가 돌고, 변화 정보를 네트워크로 주고받는 형태
통상적으로 불리는 멀티플레이 유형은 True Multiplayer의 형태를 띈다.
True Multiplayer에서의 정보 전달의 유형은 P2P/Client-Server 두 가지 유형이 존재한다.
- P2P(Peer to Peer)
- 플레이어들이 서로 직접 정보를 전달하는 형식
- 한 게임에 3명의 유저가 플레이하면 1명당 2명에게 자신의 정보를 전달해야 함
- 플레이어 N명이면 연결이 폭발적으로 늘어 확장성이 나쁨
- 어느 인스턴스가 진짜인지 판단할 권위(Authority) 있는 버전이 없어 신뢰성 부족
- 언리얼 엔진은 기본적으로 이 방식을 지원하지 않음
- Client-Server
- 게임을 플레이하는 클라이언트와 게임의 정보를 처리하는 서버로 분리하며, 모든 클라이언트는 오직 서버와만 통신함
- 한 게임에 3명의 유저가 플레이하면 1개의 서버에만 정보를 전달하면 됨. 대역폭(Bandwidth) 절약
- 권위 (Authority): 클라이언트가 캐릭터를 움직이려면 서버에 요청을 보내고, 서버가 타당한지 검증한 뒤 결과를 모든 클라이언트에 뿌려줌
- 복제 (Replication): 서버가 검증한 데이터를 클라이언트로 내려보내 동기화하는 과정
- 지연 보정: 클라이언트와 서버 간 통신에는 딜레이(Lag)가 발생하는데, 언리얼의 Character Movement Component는 클라이언트에서 캐릭터를 즉시 움직이게 하고 서버가 나중에 보정하는 예측 기법을 내장하고 있어 부자연스러움을 줄여줌
언리얼은 Client-Server 모델을 채택하고 있으며, 이 또한 2가지 유형이 존재한다.
- Listen Server
- 플레이어 중 한 명이 호스트가 되어 복제하는 방식
- 여러 플레이어가 호스트 컴퓨터에 접속하여 게임 플레이
- 호스트 또한 게임을 플레이하는 클라이언트이며, 자신이 플레이하고 있는 환경의 그래픽을 렌더링 해야 함
- 비용이 적은 편이며 경쟁성이 없고 플레이어 수가 적은 게임에서 주로 활용
- Dedicated Server
- 하나의 전용 서버를 두어서 클라이언트와 소통하는 방식
- 전용 서버는 데이터 처리만 하며, 주로 규모 있는 게임에서 활용
- 비용이 높은 편이며 경쟁성이 있고 플레이어 수가 높은 게임에서 주로 활용
PIE 테스트
PIE 환경에서 점 3개를 클릭해보면 하단에 멀티플레이 관련 옵션이 있다.

Number of Players는 플레이 할 인원의 수(1 ~ 4인)이고, Net Mode는 시뮬레이션 할 서버 유형을 결정하는 옵션이다.
Net Mode는 다음 3가지의 옵션이 있다.
- Standalone: 싱글플레이 시뮬레이션, 기본값으로 세팅됨
- Listen Server: Listen Server 시뮬레이션, 메인 뷰포트가 Host가 되고 추가로 생성되는 창이 Client가 되는 방식
- Client(Dedicated Server): Dedicated Server 시뮬레이션, 서버는 백그라운드에서 동작하고 모든 뷰포트가 서버에 붙은 Client로써 동작