본문 바로가기

네트워크/멀티 플레이어 게임 프로그래밍

멀티 플레이어 게임 프로그래밍 1장 요약


1.1 로컬 멀티플레이어 게임

- 한 대의 컴퓨터에서 2명 이상의 플레이어가 즐기는 게임

 

1.2 초기 네트워크 멀티플레이어 게임

- 직렬 포트로 컴퓨터를 서로 연결하여 플레이하는 방식

- 물리적 연결이 필수적이다보니 로컬 네트워킹 형식을 채택하는 경우는 드물었다

- 이후, LAN 과 관련한 개념이 나오며 로컬 네트워킹이 주목받게 되었다.

 

1.3 MUD ( Multi-User Dungeon) 게임

- 텍스트 기반으로 여러 플레이어가 같은 가상 공간에 서로 동시에 접속하여 즐기는 형태의 멀티 플레이어 게임

- 이후, MMO 로 발전된다.

 

1.4 LAN

- 근거리 통신망, 가까운 지역 내에서 서로 연결된 컴퓨터의 네트워크를 의미한다.

- 직렬 포트를 이용한 근거리 통신망

- 이더넷을 이용한 근거리 통신망

 

레이턴시 : 네트워크를 이용한 데이터 전소에 걸리는 시간 지연을 의미한다.

 

1.5 온라인 게임

- 대형 통신망을 통해 지리적으로 멀리 떨어진 컴퓨터끼리 연결하여 플레이하는 것을 온라임 게임이라고 함

- 가장 큰 문제는 레이턴시이다.

 

1.6 MMO 게임

- 대규모 다중 사용자 온라인을 의미한다.

- 대부분의 멀티게임은 사용자 접속 수를 제한한다. 하지만 MMO는 한 번에 수 많은 플레이어가 접속 가능하다.

- 이때, 한 번의 의미는 하나의 게임 세션을 의미한다.

 

1.7 모바일 네트워크 게임

- 모바일 플랫폼은 대부분 비동기식으로 구현한다.

- 비동기 네트워크는 실시간 네트워크 보다 구현하기 쉬운 편이다.

- 현대에서는 와이파이, lte 등의 모바일 네트워크 성능 향상으로 실시간 네트워크 모바일 게임도 등장 (하스스톤)

 

트라이브스

1998에 나온 FPS 게임. 당시 시대에 맞게 효율성을 위해 비신뢰성 프로토콜을 사용했다.

따라서, 게임에 필수적인 데이터를 전송할 때를 위해 신뢰성을 보장하는 프로토콜을 만들어야 했다.

클라이언트 - 서버 모델을 채택하여, 대역폭을 줄였다. 다만, 서버가 여러 클라이언트와의 연결에 안정성이 보장되어야 했기 때문에 서버 회선 및 하드웨어의 수준이 높아야했다.

트라이브스는 스택처럼 네트워킹 모델을 만들었다.

그 중 플랫폼 패킷 모듈, 고스트 관리자, 이동 관리자, 이벤트 관리자 등이 신뢰성이 필요한 게임 내 필수요소들에 대한 데이터를 관리했다.

 

에이지 오브 엠파이어

RTS 류 게임. P2P 모델의 게임이다. 여기서 특징은 턴 타이머 시스템을 이용하였다.

이는, 특정 시간 동안 명령을 담아두고 2턴 뒤에 동일하게 명령들을 실행하는 방식이었다.

턴 타이머를 사용하지 않으면 플레이어 별로 조금씩 동기화가 틀어지면서 문제가 생길 수 있었다.

턴 타이머의 장점은 명령만 저장하는 방식이기 때문에, 리플레이 만들기에 적합했다,

유닛의 정보를 저장하면 데이터 크기가 너무 커지는 문제가 있었기 때문에 명령만 저장하는 턴 타이머를 이용하여 리플레이를 만들었고, 이는 전략 게임에서 엄청난 메리트로 자리잡았다.

 

동기화

모델에 따라 동기화 방식에 차이가 조금씩 있다. P2P 형식에서는 난수를 도출하기 위한 시드 값을 맞춰주어 똑같은 난수가 나오도록하여 동기화하는 방식이 있다. 다만, 난수 시드 값을 뿐 아니라 난수 호출 횟수도 통일해야한다.

이러한 동기화의 장점에는 치트 방지에도 있다. 치트를 이용하여 획득 자원이 추가 되면 이렇게되면 다른 인스턴스에서의 자원과 치트를 이용한 플레이어의 자원이 달라지면 동기화가 깨지며 치트 사용을 알아차릴 수 있는 것이다.

'네트워크 > 멀티 플레이어 게임 프로그래밍' 카테고리의 다른 글

3장 버클리 소켓 정리  (0) 2024.05.19
2장 인터넷 - 정리  (0) 2024.05.16