[TIL] 20241127 TIL: 게임서버 Recap

Jaeyoung Ko·2024년 11월 27일
0

<1> Gameserver


두 종류의 게임 모두 사용자로부터 I/O를 주고 받으며 상태를 시뮬레이션하고 상호작용한다. 다만, 멀티 플레이의 관점에서 State와 Simulate하는 부분이 서버에 있다고 볼 수 있다.



<2> Multiplayer Game의 종류


크게 세 가지 형태로 나눠 볼 수 있다.


1. Asynchronous

ex. farmville


간단한 동기화 방식: 클라이언트에서 요청하면 서버에서 처리하고 결과를 알려주는 방식으로 진행

웹과 비슷한 형태로 동기화.


2. Persistent

ex. WOW와 같은 MMORPG


게임 월드가 지속적으로 유지되는 형태.

즉, 게임 서버가 항상 유지되어야 하기 때문에 scaling이나 비용에 있어서 쉽지 않다.

복잡한 성능 조건을 요구하며 까다로운 편.

플레이어 간 패킷 통신을 통해 고성능 네트워크 인터페이스가 필요하다.


CS 구조로 주로 서버 동기화 방식

DB 병목 현상을 방지하기 위해 Realm 렐름 단위로 분산시켜야 한다.


3. Session

ex. 배틀그라운드 등 MOBA 장르


게임룸이나 매치메이킹을 통한 세션

연결 구조에 따라 3가지 방식이 존재한다.

a. P2P

피어 간 서로 직접 연결, 빠른 반응성.

다만, 보안 관점에서 안전하지 못하기에 해킹에 취약. 확장성에도 문제가 존재.


b. Host (Super peer)

클라이언트 중 하나 (보통 방장)가 서버 역할.


c. Dedicated

렌더링 기능이 빠진 클라이언트를 게임 회사의 IDC나 클라우드에 올려서 서버로 사용

데디 서버의 장점은 클라이언트의 지형, 애니메이션, 물리 정보를 그대로 사용할 수 있기 때문에 화면에 렌더링만 하지 않을 뿐, 클라이언트 엔진 레벨의 정교한 시뮬레이션이 가능

즉, 정교한 동기화를 도와준다.








profile
안녕하세요, 고재영입니다. 언제나 즐겁게 살려고 노력합니다.

0개의 댓글