서버 종류
1. P2P Server (Peer to Peer Server)

- 각각의 컴퓨터가 클라이언트이자 서버 역할을 동시에 수행하는 구조
- 모든 참여자가 서로 직접 데이터를 주고받기 때문에 별도의 중앙 서버가 필요 없다.
- 구현이 비교적 단순하고 서버 비용이 들지 않는 장점이 있지만, 네트워크 동기화나 보안 문제가 발생하기 쉽다.
2. Listen Server

- 한 플레이어가 서버(Host) 역할을 수행하면서 동시에 게임에 참여하는 구조
- Host가 게임 상태를 관리하고, 나머지 플레이어는 Guest로 접속하여 데이터를 주고받는다.
- 별도의 서버를 운영할 필요가 없다는 장점이 있지만, Host의 네트워크 상태나 성능에 따라 게임 품질이 영향을 받을 수 있다.
3. Dedicated Server

- 서버 프로그램이 별도의 컴퓨터에서 실행되어 서버 역할만 전담하는 구조
- 모든 클라이언트는 이 서버에 접속하여 게임 데이터를 주고받는다.
- 안정성과 보안성이 높고 공정한 게임 환경을 만들기 쉽지만, 서버 운영 비용이 발생한다.
Dedicated Server 실행 흐름
1. 서버 프로세스 실행
PIE 실행 또는 Server.exe 실행을 통해 서버 프로세스를 시작한다. 이때 Open {LevelName}?Listen 명령어가 인자로 전달되며, 해당 Level을 열고 클라이언트의 접속을 대기한다. Level이 열리면서 Socket이 생성되어 외부 클라이언트의 접속을 받을 수 있는 상태가 된다.
2. GameMode / GameState 생성
Level에는 WorldSettings가 존재하며, 여기에는 GameMode와 GameState 설정이 포함되어 있다.
Level이 열리면 이 정보를 기반으로 GameMode와 GameState 액터가 생성된다.
중요한 점은 GameMode는 서버에만 존재하는 액터라는 것이다.
클라이언트에는 존재하지 않으며, 게임의 규칙과 로직을 서버가 전적으로 관리한다.
3. 클라이언트 접속 시도
클라이언트는 서버의 IP 주소와 포트 번호를 이용해 접속을 시도한다.
서버는 접속 요청을 받은 클라이언트에게 현재 실행 중인 Level 정보를 전달한다.
4. 클라이언트 Level 로드
클라이언트는 전달받은 Level을 로드하고,
Level 로딩이 성공하면 서버에게 접속 완료를 알린다.
5. 서버에서 플레이어 관련 액터 생성
클라이언트 접속이 완료되면 서버에서 해당 플레이어를 위한 다음 액터들이 생성된다.
- PlayerController
- PlayerState
- PlayerCharacter(Pawn)
이 액터들은 서버에서 생성된 뒤 클라이언트로 복제(Replication) 된다.
또한 GameState 역시 클라이언트로 복제된다.
6. 추가 클라이언트 접속 및 동기화
다른 클라이언트가 접속하면 동일한 과정이 반복된다.
각 클라이언트의
- PlayerState
- PlayerCharacter
정보가 서로에게 Replication 되면서,
각 플레이어는 게임 월드에서 다른 플레이어를 볼 수 있게 된다.
핵심 흐름 요약
Server 실행
↓
GameMode / GameState 생성
↓
Client 접속
↓
Client Level 로드
↓
Server가 Player 관련 액터 생성
↓
Replication으로 모든 클라이언트 동기화'내배캠 TIL' 카테고리의 다른 글
| [내배캠 TIL 260316] C++ 과일 장수 문제 (0) | 2026.03.16 |
|---|---|
| [내배캠 TIL 260311] Unreal Network - NetDriver 구조 정리 (0) | 2026.03.11 |
| [내배캠 TIL 260309] C++ 대칭 문자열 생성 (0) | 2026.03.09 |
| [내배캠 TIL 260305] CH.3 조별 과제 KPT회고 (0) | 2026.03.05 |
| [내배캠 TIL 260304] 적 사망 시 피격 판정 제거 및 사운드 중복 방지 (0) | 2026.03.04 |