dh_0e

[Server] 게임 서버 아키텍처 본문

내일배움캠프/Server

[Server] 게임 서버 아키텍처

dh_0e 2024. 8. 6. 19:19

장르: 대규모 다중 사용자 온라인 게임

플랫폼: 웹 브라우저

ex) agar.io, deep.io

1. 클라이언트

  • 게임 유저가 웹으로 접속합니다.
  • 서버와 통신하여 게임 플레이를 할 수 있습니다.

 

2. 매칭 서버

  • 서버 인원 수를 고려하여 최적의 서버(지역별)에 유저를 매칭합니다.
  • 클라이언트와 통신이 일정 속도 이상인 서버들 중에 매칭해줍니다.

 

3. 로비 서버

  • 게임에 입장할 닉네임을 입력합니다.

 

4. Leaderboard DB

  • 현재 유저들의 순위를 실시간으로 갱신해줍니다.
  • 유저의 정보는 ID가 전부입니다.

 

5. 호스트 매니저

  • 실제 게임 서버인 호스트 서버의 배치를 관리하고, 각 게임 세션을 할당합니다.
  • 각 지역에 호스트 매니저가 하나씩 존재합니다.

 

6. 호스트 서버

  • 실제로 게임 세션을 호스팅하는 서버입니다.
  • 지역별로 여러 개의 호스트 서버가 존재합니다.

 

전체 플로우

1. 클라이언트가 게임에 접속하자마자 서버가 할당됩니다.

2. 서버가 할당된 클라이언트는 로비 서버로 이동합니다.

3. 클라이언트가 ID만을 입력하면 호스트 매니저에 전달합니다.

4. 호스트 매니저가 적절한 호스트 서버를 선택하고 세션을 할당합니다.

5. 호스트 서버가 게임 세션을 실행합니다.

5. 사용자는 호스트 서버와 통신을 통해 게임을 플레이합니다.