본문으로 건너뛰기

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 내외라면 해볼 만 할 수준으로 보입니다.