본문으로 건너뛰기

P2P 게임 문제

이 문서에서는 P2P 기반 게임을 미꾸라지로 사용할 경우, ''반드시'' 알아야 할 내용에 대해 정리한 곳입니다.

적용 가능한 방법

P2P 기반의 게임의 경우, 미꾸라지 공식 아이템화(?)를 하기 쉽지 않기 때문에 부득이하게 아래와 같은 3 가지 방법을 미꾸라지에서 제공을 해드리고 있습니다.

  1. Custom 아이템 제작

    해당 게임이 Desktop 혹은 Notebook 과 같은 PC 에서 실행을 한다면, Custom 아이템 제작 기능 중 "Process 이름" 기준으로 아이템을 제작할 수 있습니다.

  2. 미꾸라지 + Proxifier 사용법

    해당 게임 클라이언트에서 발생되는 트래픽만 hooking 을 하여 미꾸라지 중계 서버로 전달하기 때문에 P2P 기반의 게임에서 사용될 수 있는 방법입니다. 장점으로는 해당 게임 클라이언트에서 발생된 트래픽만 미꾸라지를 통해 전달되어 다른 인터넷 트래픽은 영향을 받지 않습니다. 하지만 단점으로는 해당 프로그램의 사용법이 어렵고, 간혹 제대로 DLL hooking 이 되지 않아 연결이 되지 않을 수 있습니다.

  3. Full VPN 모드

    미꾸라지의 기본 기능 중의 하나로써 컴퓨터에서 발생되는 모든 트래픽을 중계 서버로 우회할 수 있습니다.

알아 두어야 하는 것

NAT Open 모드

미꾸라지 v5.9.1 부터 NAT Open 모드 가 새롭게 추가 되었습니다. 이 모드를 사용할 경우, 사용자의 NAT 타입을 Open 혹은 Full Cone 방식으로 변경하기 때문에, P2P 게임을 할 경우, 방장 (Host) 이 되거나, 좀 더 게임 매칭이 원활히 될 수 있습니다.

일반적인 구성

  • 반드시 Custom 아이템 제작 방법, 미꾸라지 + Proxifier 사용법 방법 혹은 Full VPN 모드 로 세팅해야 제대로 동작합니다. 그렇지 않을 경우, 미꾸라지 시각에서는 peer 가 되는 사용자의 IP 를 알지 못하기 때문에 해당 사용자에게 전달되는 트래픽은 미꾸라지 중계 서버를 통해 전달되지 않습니다.

  • 선택한 중계 서버의 위치에 따라, 그리고 같이 플레이하는 사용자들의 위치에 따라 미꾸라지가 효과가 있을 수도 혹은 더 나빠질 수도 있습니다.

매칭이 제대로 동작하지 않는다면...

미꾸라지 v5.9.1 부터 새롭게 지원하기 시작한 NAT Open 모드 를 사용해 보시기 바랍니다.

방장 (Host) 가 되고자 한다면...

만약 현재 사용하는 미꾸라지 버전이 v5.9.1 혹은 그 이상이면, "NAT Open 모드"를 활성화하시기 바랍니다.

만약 그 이전 미꾸라지 버전을 사용하고 계시고, 방장이 되고자 한다면 반드시 Full VPN 모드 로 동작이 되는 상태여야 합니다.

  • 다른 클라이언트가 보기에는 방장은 미꾸라지 중계 서버의 Public IP 에 위치한 것으로 인식이 됩니다. 예를 들어 방장은 실제로는 미국 동부에 거주하고 있지만, 한국 중계 서버를 통해 방을 만들었을 경우, 다른 클라이언트는 방장이 한국에서 접속되었다고 생각할 것입니다.

  • 되도록 현재 위치에서 가까이에 있는 미꾸라지 중계 서버를 선택하는 것이 좋습니다. 만약 가까이에 있는 중계 서버가 없다면, 차라리 미꾸라지를 사용하지 않는 것이 좋습니다.

자주 묻는 질문들

게임이 P2P 기반이면 미꾸라지를 쓸 수 없나요?

미꾸라지를 통해 사용하실 수 있습니다만, 사실 기본적으로 추천해 드리지 않습니다. ㅠ.ㅠ 만약 그래도 미꾸라지를 통해 게임을 해야 한다면 현재의 물리적인 위치에서 가장 가까운 중계 서버로 위의 적용 가능한 방법 중 하나를 선택하셔서 사용하시는 것을 추천합니다.

적용 가능한 방법을 사용한다면 그럼 중계 서버는 어디로 해야 하나요?

P2P 기반의 게임을 진행할 경우, 선택해야 할 중계 서버는 첫 번째는, 나의 물리적인 위치에서 가장 가까운 서버입니다. 만약 해당 중계 서버와 RTT 가 20 ms 이상일 경우, 같이 플레이하는 사용자와의 RTT 가 더 늘어난다는 것을 아셔야 합니다.

하지만 한국 사용자일 경우, 한국 중계 서버가 여러 대가 있고 회선이 각기 다르기 때문에 한국 중계 서버 중 어느 것을 선택하는 것이 어려울 수 있는데요, 이 부분은 사실 정답이 없습니다. 왜냐하면 같이 플레이하는 사용자의 회선과 중계 서버와의 궁합이 좋아야 좋은 결과가 나오지 사용자의 회선과의 궁합이 나쁠 경우 또 그 때 그 때 다른 결과일 수 있습니다.

현재로써는 대부분의 ISP 와 peering 이 좋은 KT 회선이 가장 무난하지 않을까 합니다.

방장 (Host) 이 운영하는 방에 접속하는 최적의 경로는 어떻게 설정하나요?

아시다시피 게임 자체가 P2P 이기 때문에, 방장이 어느 나라 있는지 어떤 회선을 사용하고 있는지 전혀 모르는 상태입니다. 이럴 경우는 방장의 인터넷 상태에 따라 연결이 달라질 수 있기 때문에 중계 서버를 선택하는 방법이 별로 없습니다.

제가 드릴 수 있는 방법은 "자신의 물리적인 위치에서 가장 가까운 중계 서버"를 이용하는 것입니다. 해당 중계 서버까지의 RTT 가 10 ~ 20 ms 내외라면 해볼 만 할 수준으로 보입니다.