잠재적 인 봇으로부터 실시간 온라인 사수를 보호하는 방법


14

멀티 플레이어 하향식 슈팅 게임을 만들려고합니다. 여러 가지 주제에 대해 읽었지만, 실제로 어떤 도전에 직면 해있는 주제를 볼 수 있지만, 모든 것이 끝났습니다.

내가 이해할 수없는 한 가지는 봇을 만들려고하는 사람들로부터 게임을 어떻게 보호해야합니까?

내 말은, 내가 이해하는 한, 플레이어가 진행 상황을 듣고 이해하는 프로그램을 만들 수없는 방식으로 네트워크 트래픽을 보호하는 것은 불가능하다는 것입니다.

그래서 내가 걱정하는 것은 사람들이 경쟁 플레이어의 현재 위치를들을 수있는 봇을 만들고, 플레이어가 그 경기에서 이기기 위해 정확한 "완벽한"위치에서 촬영하는 것처럼 흉내내는 커뮤니케이션을 보낼 수 있다는 것입니다.

그렇다면 그러한 봇으로부터 실시간 게임을 보호하기 위해 어떤 기술이 사용됩니까?

또한 토론을 검색하려고 시도했지만 (많은 사람들이 어려움을 겪는 것처럼 들리지만) 실시간 게임의 네트워킹에 대한 광범위한 질문의 일부로 만 구체적으로 찾을 수는 없습니다. . 내가 더 어려워 보이면 내 자리에 자유롭게 넣어주십시오. :)


Punkbuster, hehe .. 타사 앱과 변경을 감지하는 타사 앱이있는 이유가 있습니다. :
James

사람들이 봇을 만들면 왜 걱정됩니까? 어쩌면 당신은 그 문제를 해결할 수 있으므로 문제가되지 않습니다.
Beska

@James Punkbuster는 끔찍합니다. 나는 많은 사람들이 새로운 게임이 나올 때 나쁜 경험을했다고 생각합니다. 재미없는 펑크 버스터 오류로 인해 끊임없이 쫓겨납니다.
AttackingHobo

@ 베스 카 : 그 소리만큼 시원합니다. 봇이 봇이 아닌 플레이어의 게임을 파괴하지 않을 것이라는 확신이 필요합니다. 봇이 경험을 망치지 않는 곳에서 게임을 설계 할 수 있다고 확신합니다. 대부분의 온라인 멀티 플레이어 게임에서 게임 메커니즘을 봇 증명하는 것은 쉽지 않다는 것을 확신합니다.
deft_code

@AttackingHobo 내가 지적하고자하는 것은이 문제에 대한 해결책을 찾으려고 노력하는 기업이 있다는 것입니다. PunkBuster는이 작업을 수행하려고 시도하는 잘 알려진 소프트웨어 중 하나 일뿐입니다. :)
James

답변:


8

봇 카운터에는 두 가지 접근 방식이 있습니다. 클라이언트 측 보호 및 서버 측 분석입니다.

클라이언트 쪽 보호는 가장 명백한 접근 방식입니다. 귀하는 게임 클라이언트가 완전히 합법적이고, 변경되지 않았으며, 다른 프로그램이 영향을 미치지 않도록 노력합니다. 이제 이것은 어려운 문제이며 완전히 해결하기가 불가능합니다. 그러나 많은 게임들이이 방법으로 시도하고 성공합니다. 클라이언트 보호를위한 기성품 솔루션이 있다는 것을 알고 있습니다. 자신을 구현하는 것은 어려운 작업입니다.

클라이언트 쪽 보호는 100 % 미만의 효과뿐만 아니라 플레이어에게 매우 성가신 단점이 있습니다. 일반적으로 alt-tab 작업 전환 비활성화, 바이러스 백신 프로그램 등을 의미합니다.

서버 측 분석은 덜 방해 적입니다. 이 방법에는 플레이어의 행동 패턴을 분석하는 서버 코드가 있습니다. 대부분의 경우, 봇은 명백히 다른 방식으로 플레이합니다. 예를 들어, 휴먼 플레이어는 동작 (예 : 촬영) 사이의 시간이 다양하며이 시간은 종 곡선 분포에 따릅니다. 기본 봇은 일정한 시간을 가지거나 일정 간격으로 균등하게 분배됩니다. 재미있는 사실 :이 방법을 사용하여 물리적 키보드의 버튼을 누르는 영리한 장치 인 기계식 봇 으로 플레이어를 잡았습니다 . 말할 필요도없이, 클라이언트 보호하지 양을 잡을 수있는 것을 . 그러나이 분석은 완벽하지 않습니다. 고급 봇은 시스템을 속일 것이며, 더 많은 수표를 구현할수록 더 고급 봇이됩니다.

최상의 보호를 위해이 두 가지 방법을 결합 할 수 있습니다. 클라이언트 보호는 봇 개발을 어렵게 만들고 서버 분석은 빠르게 개발 된 간단한 봇을 중지시킵니다. 그러나 무엇을 하든지 봇을 완전히 막을 수는 없습니다. 글쎄, 당신이 당신의 대표를 플레이어의 집으로 보내지 않는 한, 그들의 경기를 감독하고 위반을보고하십시오. (그런데도 들어 본 적이 없다. 나는 온라인 포커 회사가 사람들을 매우 성공적인 플레이어의 집으로 보내서 그가 합법적으로 연주하고 있음을 확인하는 이야기를 읽었지만 지금은 그것을 찾을 수없는 것 같다.)

봇 퇴치에 대한 두 가지 더 모호한 권장 사항이 있습니다. 하나, 네트워크 트래픽을 암호화하십시오. 나는 이것이 작동하지 않을 것이라고 생각한다. 클라이언트가 적의 손에 닿으면 트래픽이 해독 될 수 있고 해독 될 것입니다. 그렇지 않으면 자신의 클라이언트가 암호화에 사용됩니다. 다른 한편으로, 암호화는 지연을 추가하며, 이는 "실시간 사수"에게는 실제로 나쁘다. 두 번째 권장 사항은 "단순히 게임을 디자인하는 것"입니다. 이것은 건전한 아이디어처럼 보이지만, 이것을 관리하는 단일 게임을 아직 보지 못했습니다.


1
기계식 로봇을 가진 사람을 찾은 것 같아요. 입력 용 하드웨어 키보드를 에뮬레이트 한 소프트웨어 봇일 가능성이 큽니다.
AttackingHobo

2
아니요, 실제 기계식 로봇. 저자는 우리에게 사진을 보냈다. 불행히도, 그들은 이미 서버에서 삭제되었습니다 (2007 년에 돌아 왔습니다!). 내 말을해야합니다.
Nevermind

답변 주셔서 감사합니다. 암호화가“막대를 올릴”수 있고 많은 해커로부터 보호 할 수 있다고 생각합니다. 그러나 실제 통신 암호화가 사수 또는 MMO와 같은 시간이 중요한 게임에서 실용적입니까?
Zaky German

내가 작업 한 게임 중 어느 것도 로그인 순서를 제외하고는 암호화를 사용하지 않았으므로 지연에 얼마나 영향을 미치는지 모르겠습니다. 암호화 알고리즘에 따라 다릅니다.
Nevermind

2

나는 큰 선수들이 게임을 보호하기 위해 무엇을하는지 이야기하지 않을 것입니다. 사람들이 자신이하는 일에 대해 덜 알수록 사람들이 그 일을 해결하기가 더 어려워집니다. Steam 이하는 일 중 일부는 블랙리스트에있는 특정 응용 프로그램을 찾는 것입니다.

개인적으로 나는 통신 컴퓨터간에 가능한 한 많은 통신을 암호화하고 난독 화하려고 노력했습니다 .https / ssl이 아이디어를 얻기 위해 작동하는 방식을 읽는 것이 좋습니다. 호스트가 임의의 공개 / 개인 키를 생성하고 공개 부분을 다른 클라이언트에게만 보내는 경우, 클라이언트에 액세스 할 수있는 경우에도 전송중인 패키지의 내용을 가로 채서 변경할 수없는 문제가 발생합니다. 기계는 완전히 안전하지 않습니다.

또한 클라이언트 exe가 변경되지 않았는지 확인해야합니다.


1

완벽하게 조준하는 것보다 팀 작업과 실제 지능적인 결정이 더 중요하도록 게임을 디자인하십시오. 알맞은 봇을 만드는 것은 기하 급수적으로 어려워집니다.


팀워크와 준비에 의존하는 게임과 순수한 트 위치 기술에 의존하는 게임이 그 자리에 있다고 생각합니다. 아직도 나는 누군가 자신의 게임 디자인 선택을 기술적 장애에 적응시켜야한다고 생각하지 않는다.
Zaky German

@Zaky : 한때 갑작스런 죽음에 화면이 천천히 SPH 유체로 채워지는 웜 스타일의 게임을 제작했습니다. 게임이 죽을 때까지 정말 멋져 보였습니다. 많은 게임 디자인 결정이 기술적 장애에 의해 영향을받는다고 생각합니다.
deft_code

@deft_code 예술 또는 그래픽 디자인이 아닌 게임 플레이 메커니즘과 같은 게임 디자인을 의미했습니다
Zaky German

SPH를 사용하는 것은 벌레의 물에 의한 죽음만큼이나 게임 메카닉입니다. 물이 게임과 상호 작용하는 방식을 변경했습니다.
deft_code

0

그리고 문제가 될만한 가치가 있는지에 대한 모든 중요한 질문을하십시오. 사기꾼과 수탉은 두 가지 일을 할 수 있습니다.

  1. 스스로 게임을 파괴하십시오. 그들은 봇 없이는 경기를 할 수없고 재미도 없기 때문에 빨리 관심을 잃고 떠납니다.
  2. 다른 사람을 위해 게임을 파괴하십시오. 봇을 통해 과도하게 강력 해져 고객에게 비용이 발생합니다. 일반적으로 동일한 물리적 컴퓨터에서 여러 봇을 제어하는 ​​단일 플레이어가 동반됩니다 (또는 단일 플레이어가 수동으로 제어 할 수있는 것보다 훨씬 많은 컴퓨터를 사용함).

이 둘은 물론 상호 배타적이지 않습니다.

일반적으로 가장 큰 문제는 동일하거나 밀접하게 관련된 IP 주소 (또는 MAC)의 클라이언트가 3 개 (인간이 2 개의 키보드 또는 다른 입력 장치를 동시에 사용할 수 있지만 2 개의 손만 가지고있는 경우는 아님)입니다. 직접 통신하여 서로 밀리 초 이내에 명령을 실행합니다. 따라서 동일한 IP 주소에서 발생하는 5 명의 클라이언트가 비정상적으로 높은 속도로 명령을주고 비정상적으로 긴밀하게 조정한다고 말하면 보터를 찾은 것 같습니다. 일반적으로 이것은 봇 군대가 높은 조정 및 속도로 인해 유사한 수의 인간 제어 툰에 대한 참여를 지배 할 수있는 pvp 시나리오에서 가장 피해를줍니다. pve 시나리오에서는 일반적으로 게임 손상이 제한적입니다 (단, 한 사람이 여러 툰을 더 빨리 높은 수준으로 훈련시킬 수 있다는 점을 제외하고,

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.