로비서버
ex) 스타 배넷
채팅서버의 확장
게임은 P2P로 이루어진다.
길드, 클랜, 아이템 구매지원
실제 게임 전 플레이 할 상대를 찾는 곳
레벨별 그룹화 지원
최근에는 Client/Server로 실제 게임 구현하는 추세
=> 아마 Data Duplication이랑 Application 을 클라/ 서버에서 각각 따로 해준다고 한것 같음.
MMOG서버
MUD의 서버
게임 컨텐츠가 다 들어있다.
서버 부하 큼
-목표
렉X, 안정화된 서버
경제시스템, 커뮤니티
이벤트, 공성전, 혈맹전..
-해결
효율척 프로그래밍
부하분산(여러 컴퓨터로)
부하분산
서버분리 (샤딩, Sharding)
기능별 분산
공간분할(월드 분할)
1. 서버분리(샤딩, Sharding)
ex)메이플-스카니아->1~20개의 채널
다른 월드로 이동 불가
돈 지불 하면 월드이전 가능한 서비스
DB분리되어있다.
근데 대체로 통합하는 추세인것 같음
=>공동 경매장(메이플), 공동인던, 서버간 결투 등등
2. 기능별 분산구현
Main, Login, AI, DB Server.....
근데 문제가
Main Server에 부하가 집중됨 -> 더 나눌 수 없음(통신 부담 증가)
해결책
- 공간 분할 : Zone Server
전체 맵을 지역별로 나누어서 다른 서버가 관리
Portal 방식 : Wow의 대륙 분할(로딩 필요)
구현쉬움, 게임성 떨어짐, 로딩, 플레이어 단절
Seamless 방식 : BigWorld(로딩 필요없음 but 구현 어려움)
구현어렵, 경계선 근처에 서 있는 물체 2개.
- 접속 분할 : Duplicate Server
동일 공간의 Clone을 만들어 각각 다른 서버가 관리
샤딩과 다름(샤딩은 따로 DB존재)
'이론공부 > 이것저것 공부' 카테고리의 다른 글
데이터베이스 솔루션 정리 (0) | 2021.06.18 |
---|---|
포인터 의 크기 in c/c++ (0) | 2021.01.04 |
커널 오브젝트 (0) | 2020.12.14 |
volatile (0) | 2018.03.18 |
게임서버 시작 (0) | 2017.05.01 |