Make Unreal REAL.
article thumbnail
Unreal Engine 5 C++ Multiplayer Shooter

 

멀티 플레이어 모델에는 P2P(Peer-to-peer) 모델과 클라이언트-서버(Client-Server) 모델이 있다.

 

 

Replication(복제)

멀티 플레이어 환경에서 누군가의 상태를 모든 다른 컴퓨터에 적용하는 Broadcast를 특별히 Replication이라고 한다.

 

P2P

각 플레이어(어플리케이션)가 자신의 상태 변경이 발생하면 나머지 플레이어들에게 Replicate하는 방식으로 동작한다.
구현이 간단하지만, 이용자 수가 늘어날수록 네트워크 부하가 늘어난다.
모든 플레이어에게 인정 받는 대표성 있는 게임의 상태가 존재하지 않는다.

 

클라이언트-서버 모델

게임의 진행을 위한 하나의 서버가 존재하며, 각 클라이언트는 서버와만 통신한다.
각 플레이어는 자신의 상태 변경이 발생하면 서버에게 알리고, 서버가 나머지 플레이어에게 Replicate한다.
클라이언트는 서버와 통신하기 위한 대역폭만 확보하면 된다.
서버는 모든 플레이어가 인정하는 대표성 있는 게임의 상태가 된다.
서버에 부정한 입력에 대한 유효성 검증 절차 등을 구현하는 데도 용이하다.

 

 

클라이언트-서버 모델을 구현하는 데는 다양한 방법들이 있다.

  • Dedicated Server: 서버의 역할에만 전념하는 전용 서버다.
    이용자 수가 많은 대규모 게임에 적합하다.
  • Listen Server: 플레이어 중 한 명이 서버의 역할을 겸한다.
    이용자 수가 적은 소규모 게임에 적합하다.

 

언리얼 엔진은 멀티 플레이어 환경에 Authoritative Client-Server(권위적인 클라이언트-서버) 모델을 사용한다.

  • 싱글 플레이도 실제로는 클라이언트, 서버가 같은 컴퓨터인 멀티 플레이로서 실행된다.
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그