2006-02-18

네트워크 액션 게임의 분류

네트워크 액션 게임들을 peer 간 연결, 동기화 처리, 서버 유무 등으로 구분지어보면 대략 다음과 같다.

  • asynchronous P2P : 모든 peer 들이 1:1로 연결되며, 적당히 정보를 주고 받으며 최신의 정보들만을 적용하는 방식이다. 디아블로1 등 액션 게임에서 주로 사용되며, 속도는 빠르지만 보안성이 떨어진다. 접속자 숫자가 비교적 많은 편. 패킷 손실에도 비교적 안전하다.

  • synchronous P2P : 모든 peer 들이 1:1로 연결되는 것은 맞지만 액션 정보를 전송한 후 일정 시간 후에 모든 peer 에서 동시에 실행하는 방식. RTS등 동기화가 치명적인 게임에서 사용되며, 최대 접속자가 10여명 안팎으로 제한된다. 무손실 UDP 를 주로 사용한다.

  • client/server : 각 peer 들은 서버와 직접 연결되어, 모든 판정은 dedicated 서버상에서 이루어지는 방식. 서버는 주기적으로 스냅샷 정보를 모든 클라이언트에게 브로드캐스트한다. 퀘이크나 하프라이프, 언리얼 같은 FPS 게임에서 주로 사용하는 방식. 비동기 처리와 패킷 손실이라는 점은 asynchronous P2P와 유사하다. P2P가 아니므로 홀펀칭이라든지 NAT 때문에 골치 썩는 일이 없어서 좋다.

  • hosted client/server : 디아블로2의 배틀넷이나 MMOFPS와 같이 client/server 모델에서 사용자가 서버를 운영하는 대신 회사에서 직접 관리하는 방식이다. 서버 운영 및 트래픽 때문에 돈이 무지 많이 들기 때문에 웬만한 회사에서는 엄두도 못낸다. 그리고 서버 다운이 되면 온갖 원성을 다 사게 되므로 보통 약관을 애매모하게 쓰는 편이다. 유일한 장점은 보안성이 가장 높다는 점.

  • N-P2P : 앞으로 우리가 구현할, 1-4의 장점만을 취하고 단점은 버린, 즉 보안성도 좋고 빠른 액션도 가능하면서도 동기화도 잘맞는 가운데 30명 이상(1)의 연결도 지원, 그리고 보이스 채팅(2)과 대규모 spectator 모드도 지원하면서 트래픽도 낮은 방식.

  • 20명 이상의 플레이어를 지원하려면 P2P로는 힘들지 않을까? 연결 노드가 도대체 몇 개야..

  • 그나저나 보이스 채팅은 한때는 vaporware 에 가까웠는데, 요즘은 꽤 많은 게임에서 지원하고 있다.

comments powered by Disqus