1 분 소요

게임 서버 아키텍처 패턴

종류 특징
실시간 멀티 플레이어 게임 서버 여러 플레이어간의 상호 작용이 필요한 게임에서 사용된다. 플레이어 간 통신, 게임 상태 동기화, 충돌 감지 및 해석과 같은 실시간 요소를 처리한다. (photon, unreal engine 등)
클라이언트-서버 모델 클라이언트와 서버끼리만 소통을 한다고 전제하는 모델. 클라이언트를 그저 그래픽 처리 및 간단한 연산만 하고 나머지는 서버에서 처리하는 방식
p2p 모델 플레이어끼리 직접 통신하게 해주는 방식. 격투 게임은 이 방식이 아닐까 싶다.
게임 클라우드 서비스 기기 종속적이지 않다는 특징이 있는 게임 서버. 대용량 서버가 필요하다.
게임 데이터베이스 서버 게임보다는 게임 아이템 등을 관리하게 해주는 서버

서버의 종류

종류 특징
dedicated 서버(전용 서버) 하나의 게임만을 관리하는 전용 서버. 세션 내에서 다수의 플레이어가 상호작용할 때 사용된다. (ex : 배틀그라운드, 폴가이즈)
세션 기반 서버(세션 클러스터링 서버) 서버에서 세션을 할당 받아 유저들을 그 안에 넣는 식. 전체 서버를 독점하지 않아 비교적 부하가 적다. 서버가 직접 세션 정보를 가지고 있는 게 아니라 별도의 데이터베이스 등에 등록한다.
relay 서버(릴레이 서버)() 서버가 처음 서비스 시작되었을 때부터 계속 실행되어 실시간으로 데이터 처리를 관리하는 서버. 주로 mmorpg 같은 서버가 계속 켜져 있어야 하는 게임에서 자주 보인다.

유희왕/하스스톤/매더게 등은 어떤 서버를 사용할까?

dedicated 서버를 사용할 것인가? => 플레이어가 적고 오가는 데이터가 적기 때문에 게임이 시작할 때마다 서버가 만들어지는 것은 비효율적이다.

세션 기반 서버를 사용할 것인가? => 하나의 세션에서 플레이어(최소 1명, 최대 8명)의 데이터를 관리하는 방식이기에 괜찮을 것으로 보인다. => 서버를 직접 만드는 비용보다 세션을 만드는 비용이 더 저렴하다. => 카드 또는 족보는 데이터베이스에서 값을 가져와야 하므로 동시에 게임 데이터베이스 서버와 밀접하게 연관이 있어야 한다.

erd

태그:

카테고리:

업데이트: