- toc {:toc}
Notice
Computer Networks 글은 경희대학교 소프트웨어융합대학 이성원 교수님의 [컴퓨터 네트워크 CSE302] 수업을 기반으로 정리한 내용입니다.
Game Server
- Dedicated server : 직접적인 입출력 없이 게임을 시뮬레이션한다. 사용자는 게임과 상호작용하기 위해 클라이언트와 분리된 서버와 연결되어야 한다.
Master Server
- Master Server : 모든 것이 연결되는 서버의 한 종류이다. 클라이언트 뿐만 아니라 게임 서버, 혹은 다른 서버와 연결한다.
- 즉, 마스터 서버는 연결되는 모든 것에 대해 알고 다양한 일을 하기 위해 정보를 사용할 수 있다.
- 어떤 게임 서버가 작동 중인지
- 게임 서버에 유저를 할당
- 다른 서버에서 게임을 플레이할 때 서로 소통할 수 있도록 조정
- 로그인, 인증 → Session Layer
Game Server
- Game Server : 실질적으로 게임 로직을 구현한 서버
- 주로 게임 서버들은 2가지 특징을 갖는다.
- 큰 네트워크 트래픽 소비 : 이미지 처리, 객체의 움직임 등 끊임 없이 동기화 되어야 하기 때문에 트래픽을 많이 사용한다.
- 높은 CPU 사용 : 물리 연산이 필요하기 때문에 CPU 연산을 많이 사용한다.
Peer-to-Peer
-
서버를 거치지 않고 게임 컨텐츠를 peer 끼리 서로 주고 받는 형태를 말한다.
-
데이터를 전송하는 속도를 줄이는 목적으로 실시간 전략 게임에서 정보를 주고 받는 형태로 흔히 사용된다.
-
P2P로 데이터를 주고 받으면서 서버의 부담은 덜어지게 된다.
-
단점
- 모든 peer들이 서로 동기화되기 매우 어렵다.
- 새로운 peer가 추가되었을 때 지원하기 매우 어렵다.
- 각 peer들은 반드시 모든 다른 peer들고 소통해야 하기 때문에 유저를 연결하는 숫자에 제한이 있다.
- 각 peer들은 다음 네트워크 프레임을 시행하기 전에 모든 다른 peer의 메시지를 위해 기다려야 한다. 즉, 모든 유저가 동일한 지연 시간을 경험하게 된다.
Example
-
Photon
-
Platform as a Service 를 제공한다. Game Server 등
-
기능 : 멀티 플레이어들이 만드는 데이터를 서로 주고 받을 수 있도록 하고, 1초에 60~120개의 이미지를 생성하는 등의 기능을 제공한다.
-
Agones : 쿠버네티스를 기반으로 프로젝트를 스케일링하고 게임서버를 호스팅할 수 있는 오픈소스
-
Colyseus
-
웹 소켓 기반 소통
-
서버/클라이언트 쪽의 간단한 API
-
서버와 클라이언트 사이의 자동 동기화
-
게임 세션 안의 클라이언트 매치를 만들어주는 기능
-
스케일링
-
실시간 멀티 플레이, 턴 기반 멀티 플레이 기능 제공