게임개발/ue server

[UE] 어플리케이션의 네트워크 모드 파악하기

차차냥 2024. 4. 29. 23:29

언리얼 엔진 어플리케이션의 네트워크 모드 파악하기

 

1. Standalone 스탠드얼론

게임이 원격 클라이언트의 연결을 허용하지 않는 서버로 실행합니다. 게임에 참여하는 모든 플레이어는 모두 로컬 플레이어입니다. 이 모드는 싱글플레이어 및 로컬 멀티플레이어 게임에 사용되며, 서버/클라이언트 로직을 모두 실행합니다. 로컬 플레이어만을 위한 로직으로 프로그램을 구성하게 되므로, 나중에 멀티플레이어 게임으로 전환하는 과정이 매우 까다롭습니다.

 

2. Client 클라이언트

서버에 연결된 클라이언트로 실행되어, 프록시(Proxy 허상)만 보여주는 역할을 담당합니다.

 

3. Listen Server(리슨 서버)

호스팅하는 서버로 실행됩니다. 로컬 플레이어를 서버에 직접 배치하여 자기자신도 하나의 플레이어로서 게임에 참여하게 됩니다. 이 모드는 캐쥬얼 협동 및 경쟁 멀티플레이어에 자주 사용됩니다.

누구나 같은 컴퓨터에서 리슨 서버를 시작하고 플레이할 수 있습니다. 그렇기 때문에 몇몇 리슨 서버를 사용하는 게임에서는 사용자가 자발적으로 쉽게 서버를 설정하며, 참여할 서버를 검색하거나 사용자가 직접 서버를 시작할 수 있는 기능을 제공하기도 합니다. 그러나 이 리슨 서버를 호스팅하는 플레이어는 게임 내 서버 주인인 '주최자'가 되기 때문에 같은 서버 내의 다른 플레이어들에 비해 유리한 위치에 있어서 공정성이 떨어집니다. 또 게임 로직 처리 뿐만 아니라 그래픽 및 사운드와 같이 플레이어 관련 시스템을 지원하는 것과 관련된 추가 처리가 있어 부하가 있습니다. 이러한 이유들 때문에 공정성이 중요한 대규모 게임이나 경쟁 시스템의 게임보다 소규모 플레이어들이 있는 캐쥬얼한 협동 및 경쟁 멀티플레이 게임에 적합합니다.

 

- 플레이어 주최자가 서버를 직접 운용 가능하면서, 직접 플레이어로 게임에 참여 가능함
- 그래픽, 사운드와 같은 플레이어 관련 시스템을 지원하는 것과 관련된 추가 처리 부하가 있음
- 공정성이 비교적 떨어지는 편이므로, 대규모 경쟁 게임에는 적합하지 않음
- 소규모 협동 게임이나 경쟁 멀티 플레이 게임에 적합
- ex. 스타크래프트 유즈맵이나 Raft 와 같은 소규모 협동 게임

 

<Raft> 는 소규모 협동 게임으로, 최대 4인의 플레이어가 서버에 참여해서 게임을 즐길 수 있는 구조로 구성되어있다.

 

4. Dedicated Server(데디케이티드 서버) 

전담서버라고도 합니다. 위의 리슨서버와 마찬가지로 호스팅하는 서버로 실행됩니다. 다만 서버 내에 로컬 플레이어가 존재하지 않습니다. 전용 서버는 더 비싸고 구성하기 어렵기 때문에 서버 전용의 별도 컴퓨터가 필요하며, 자체 네트워크 연결이 필요합니다. 덕분에 서버에 참여하는 모든 플레이어는 동일한 구조 내에서 게임을 플레이하게 되어 공정성이 보장됩니다. 전용 서버는 그래픽을 렌더링하거나 로컬 플레이어와 관련된 독립적인 로직을 수행하지 않기에, 플레이나 네트워크 면에서 효율적인 처리를 할 수 있습니다.

따라서 많은 플레이어가 필요한 게임이나 보안, 공정성, 안정성 등의 이유로 신뢰할 수 있는 고성능 서버가 필요한 게임에 전용 서버를 사용하여 구성하는것이 좋습니다.

 

- 플레이어 주최자와 상관없는 독립적인 전용 서버가 구축되어야 함
- 전용 서버에서는 게임 플레이 로직만 처리할 뿐, 그래픽 렌더링 및 사운드 처리는 하지 않기 때문에 부하가 낮은 편
- 공정성이 보장되고, 클라이언트 레벨에서는 주요 로직 제어가 불가능하여 보안상 이점을 가짐.
- 대규모 멀티 플레이어 게임에 적합
- ex. 배틀그라운드, 콜오브듀티 고스트 등 대규모 멀티 플레이어 게임