일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- html5
- Next
- ucpc 2023 예선 i번
- string
- 백준 2623번
- HTTP
- PROJECT
- Github
- localstorage
- 백준 28303번
- 게임 서버 아키텍처
- ERD
- ccw 알고리즘
- JavaScript
- map
- insomnia
- MySQL
- pm2
- 더 흔한 색칠 타일 문제
- Express.js
- router
- 백준 28298번
- koi 2002 중등부 1번
- MongoDB
- branch
- 자바스크립트
- ucpc 2023 예선 d번
- 그리디
- ucpc 2024 예선 e번
- Prisma
Archives
- Today
- Total
dh_0e
[Server] 게임 서버 아키텍처 본문
장르: 대규모 다중 사용자 온라인 게임
플랫폼: 웹 브라우저
ex) agar.io, deep.io
1. 클라이언트
- 게임 유저가 웹으로 접속합니다.
- 서버와 통신하여 게임 플레이를 할 수 있습니다.
2. 매칭 서버
- 서버 인원 수를 고려하여 최적의 서버(지역별)에 유저를 매칭합니다.
- 클라이언트와 통신이 일정 속도 이상인 서버들 중에 매칭해줍니다.
3. 로비 서버
- 게임에 입장할 닉네임을 입력합니다.
4. Leaderboard DB
- 현재 유저들의 순위를 실시간으로 갱신해줍니다.
- 유저의 정보는 ID가 전부입니다.
5. 호스트 매니저
- 실제 게임 서버인 호스트 서버의 배치를 관리하고, 각 게임 세션을 할당합니다.
- 각 지역에 호스트 매니저가 하나씩 존재합니다.
6. 호스트 서버
- 실제로 게임 세션을 호스팅하는 서버입니다.
- 지역별로 여러 개의 호스트 서버가 존재합니다.
전체 플로우
1. 클라이언트가 게임에 접속하자마자 서버가 할당됩니다.
2. 서버가 할당된 클라이언트는 로비 서버로 이동합니다.
3. 클라이언트가 ID만을 입력하면 호스트 매니저에 전달합니다.
4. 호스트 매니저가 적절한 호스트 서버를 선택하고 세션을 할당합니다.
5. 호스트 서버가 게임 세션을 실행합니다.
5. 사용자는 호스트 서버와 통신을 통해 게임을 플레이합니다.
'내일배움캠프 > Server' 카테고리의 다른 글
[Server] 세션(Session)과 인터벌 관리자(Interval Manager)의 차이 및 사용 (with Node.js) (0) | 2024.07.05 |
---|---|
[Server] 강의 내용 정리 (3) (Latency, 추측 항법(Dead Reckoning)) (0) | 2024.07.04 |
[Server] 강의 내용 정리 (2) (Unity, Unity UGUI) (0) | 2024.06.28 |
[Server] 강의 내용 정리 (1) (net 모듈, Socket event, Buffer 객체) (0) | 2024.06.27 |