1-2. 서버의 종류와 데디케이티드 서버
P2P Server(Peer to Peer Server)
각각의 컴퓨터가 클라이언트이자 서버인 구조 (예시: 다크소울)

Listen Server
클라이언트이자 서버인 방장(Host)이 있고, 나머지 참가자(Guest)는 모두 클라이언트 역할만 맡는 형태.
P2P의 일종이라고 볼 수 있음. (예시: 마인크래프트, 어몽어스)

Dedicated Server
서버를 담당하는 컴퓨터가 따로 있음. 서버-클라이언트 구조. (예시: 배틀그라운드)

Dedicated Server의 실행 흐름도
PIE를 했거나, Server.exe를 실행하는 식으로 서버 프로세스 실행.
실행할 때 Open {Level이름}?Listen 명령어가 인자로 전달. 해당 Level을 열어둠.
이때 Socket이 생성되며 다른 PC가 접속 가능하게끔 함. Listen 명령어가 없다면 싱글플레이.

Level에는 WorldSettings 속성이 있고, WorldSettings에는 GameMode와 GameState 정보가 있음.
이를 통해 GameMode와 GameState 액터를 생성.
중요한 것은 GameMode 액터는 전체 컴퓨터에서 딱 한 곳(Server)에만 존재한다는 것.
그래서 GameMode와 Server를 동일시해도 됨.

클라이언트는 서버의 IP주소와 포트번호로 접속 시도. 서버는 접속 시도하는 클라이언트에게 Level 정보를 넘김.
클라이언트도 해당 Level을 열고, Level을 여는데 성공했다고 데디 서버에게 알림.

Level을 여는데 성공한 클라이언트 전용 PlayerState, PlayerController, PlayerCharacter가 서버에 생성.
이것이 다시 Client1에 복제. GameState도 복제.

또 다른 클라이언트도 접속. 마찬가지로 서버는 접속 시도하는 또 다른 클라이언트에게 Level 정보를 넘김.
클라이언트도 해당 Level을 열고, Level을 여는데 성공했다고 데디 서버에게 알림.

Client2 전용 PlayerState, PlayerController, PlayerCharacter가 서버에 생성.
이것이 다시 Client2에 복제. GameState도 복제.
이때, 클라이언트 간의 PlayerState와 PlayerCharacter도 복제되면서 서로가 보이게 됨.

서버-클라이언트 구조의 중요한 특징
- 그림에서 볼 수 있듯, 클라이언트와 클라이언트 간의 통신이 불가능.
- 오직 서버와 클라이언트 사이의 통신만 가능.
- 이것이 앞으로 배울 RPC나 프로퍼티 레플리케이션에도 영향을 끼침.
'개인 강의 > Unreal Engine 멀티플레이어 게임 개발' 카테고리의 다른 글
| Unreal Engine 멀티플레이어 게임 개발 2-1 (0) | 2026.07.29 |
|---|---|
| Unreal Engine 멀티플레이어 게임 개발 1-5 (0) | 2026.07.29 |
| Unreal Engine 멀티플레이어 게임 개발 1-4 (0) | 2026.07.29 |
| Unreal Engine 멀티플레이어 게임 개발 1-3 (0) | 2026.07.28 |
| Unreal Engine 멀티플레이어 게임 개발 1-1 (0) | 2026.07.28 |