Using the Anti-Cheat interfaces

20 분 소요

안티 치트 클라이언트 인터페이스는 Windows, Mac, Linux 플랫폼을 지원하며, 64비트 운영 체제가 설치되어 있어야 합니다.

안티 치트 인터페이스를 사용하는 방법은 다음과 같습니다.

  1. 개발 전제 조건을 검토하고 준수합니다.
  2. 네트워크 아키텍처클라이언트 정책 유형을 결정합니다.
  3. 클라이언트 모듈, 안티 치트 무결성 툴, 안티 치트 부트스트래퍼 실행 파일을 환경설정합니다.
  4. (Windows만 해당) Windows 서비스 인스톨러를 환경설정합니다.
  5. 안티 치트 인터페이스를 게임 코드와 통합합니다.
    1. 연결 인터페이스로 사용자 ID를 만듭니다.
    2. 클라이언트-서버 또는 P2P 모드를 위한 콜백을 등록합니다.
    3. 세션 알림을 설정합니다.
  6. 통합 체크리스트를 통해 안티 치트 인터페이스가 정상 작동하는지 확인합니다.

클라이언트 모듈 설정 및 업데이트

각 게임이 시작할 때 안티 치트 부트스트래퍼는 게임용으로 환경설정된 최신 안티 치트 클라이언트 모듈을 가져옵니다. 업데이트에는 버그 픽스와 안티 치트 방지/탐지 개선 사항이 포함될 수 있습니다.

클라이언트 모듈 설정, 업데이트, 되돌리기

  1. 개발자 포털(Developer Portal) 로 이동합니다.
  2. 내 제품(Your Product) > 게임 서비스(Game Services) > 안티 치트(Anti-Cheat) 를 클릭합니다.
  3. 드롭다운 메뉴에서 적절한 시스템 (Windows, Linux 또는 macOS)을 선택합니다.
  4. (업데이트 및 되돌리기의 경우) 해당 모듈이 게임에서 예상대로 작동하는지 테스트합니다.
  5. 활성화할 클라이언트 모듈의 추가 옵션(More Options) 버튼에서 빌드 활성화(Activate Build) 를 선택합니다.

라이브 게임과 클라이언트 모듈을 함께 업데이트해야 하는 경우, 활성화하기 전에 먼저 게임에서 새 모듈이 예상대로 작동하는지부터 테스트해야 합니다.

모듈 테스트하기
  1. 개발자 포털의 클라이언트 모듈 출시(Client Module Releases) 목록에서 새 클라이언트 모듈의 추가 옵션(More Options) 버튼을 선택합니다.
  2. 환경설정 파일 다운로드(Download Config File) 를 선택합니다. 이렇게 하면 플레인 텍스트 환경설정 파일이 다운로드되며, 테스트 시스템에서 활성 모듈 대신 지정된 안티 치트 모듈을 다운로드하고 사용하도록 강제합니다.
  3. 다운로드한 환경설정 파일을 같은 이름의 게임 실행 파일과 동일한 디렉터리에 배치합니다.
    1. 예를 들어, 게임의 실행 파일 이름이 MyGame-Win64-Shipping.exe 면, 환경설정 파일은 MyGame-Win64-Shipping.exe.eac 라는 이름으로 동일한 디렉터리에 배치해야 합니다.
  4. 안티 치트 부트스트래퍼와 함께 평소처럼 게임을 시작합니다.
  5. 안티 치트 부트스트래퍼의 로그 파일을 찾습니다.
  6. 안티 치트 부트스트래퍼의 로그 파일에 예상한 타임 스탬프가 표시되고 환경설정 파일에 있는 URL을 사용했다고 나오는지 확인합니다.
  7. 게임에 맞게 선택한 적절한 테스트 절차를 통해 게임을 시작합니다. 적어도 보호된 멀티플레이어 게임 세션에 접속하고 인게임 구매 오버레이 같은 중요 기능을 사용할 수 있어야 합니다.
  8. 테스트가 끝나면 테스트 시스템이 라이브 환경과 정렬되도록 .eac 환경설정 파일을 제거합니다. 이 .eac 파일을 게임 배포에 포함하여 출시해선 안 됩니다.
  9. 새 모듈이 게임에서 예상대로 작동하는 것이 확실하면 빌드 활성화(Activate Build) 를 선택합니다.
클라이언트 모듈 되돌리기

최신 업데이트가 게임에서 문제를 일으킨다고 의심되면 이전의 안티 치트 모듈로 되돌려야 할 수도 있습니다.

업데이트와 같은 지침을 따르되 최신 버전 대신 이전 버전을 선택합니다.

개발자 포털에서 안티 치트 서비스 환경설정하기

EOS 개발자 포털 안티 치트 서비스 페이지 상단에는 두 가지 환경설정 상태가 표시됩니다. 클라이언트 보호(Client Protection) 는 각 플레이어가 게임을 시작할 때 안티 치트 클라이언트 모듈과 보호가 안티 치트 부트스트래퍼를 통해 제공되는지 여부를 나타냅니다. 서버 추방(Server Kicks) 은 보호된 게임 세션에서 안티 치트 보호가 적용되는지 여부를 나타냅니다. 안티 치트를 실행하지 않거나 위반 사항이 있는 플레이어는 적절한 SDK 콜백을 통해 제거할 수 있도록 표시됩니다.

‘구성(Configure)’ 버튼을 클릭하면 세 가지 환경설정 옵션 중 하나를 선택할 수 있습니다.

  • 모두 활성화(Enable all)

    • 이 환경설정은 통상의 작업에서 사용해야 합니다. 게임 시작 시 안티 치트 클라이언트 모듈이 제공되며, 보호된 게임 세션 중에 모듈이 상주하도록 강제됩니다.
  • 서버 추방이 비활성화되었을 때 클라이언트 보호 활성화(Enable Client protection while Server kicks is disabled)

    • 이 환경설정은 안티 치트 오류로 인해 너무 많은 플레이어가 보호된 게임 세션에서 제거되는 문제가 있을 때 임시로 사용할 수 있습니다. 게임 시작 시 안티 치트 클라이언트 모듈이 제공되지만, 보호된 게임 세션 중에 모듈이 상주하도록 강제되지 않으므로 치트를 방지하거나 탐지하는 효과는 없습니다.
  • 모두 비활성화(Disable all)

    • 이 환경설정은 안티 치트와 관련된 충돌이 발생했지만 이전 안티 치트 클라이언트 모듈로 되돌려서 해결하지 못하는 긴급 상황에 임시로 사용할 수 있습니다. 게임 시작 시 안티 치트 클라이언트 모듈이 제공되지 않으며, 보호된 게임 세션 중에 모듈이 상주하도록 강제되지 않습니다. 가능하면 언제나 이전 안티 치트 클라이언트 모듈로 되돌리는 편이 낫습니다. 이 환경설정을 사용한다면 모두 활성화 상태로 돌아가기 전 몇 시간의 트랜지션 동안에만 클라이언트 보호를 활성화해야 많은 플레이어가 보호된 게임 세션에서 갑자기 제거되는 일을 방지할 수 있습니다.

안티 치트 무결성 툴 환경설정

안티 치트는 각 플레이어의 머신에 있는 중요한 게임 파일과 개발자가 제공한 파일이 서로 일치하는지 검증할 수 있어야 합니다. SDK의 EOS_AntiCheatTools 패키지에 포함된 anticheat_integritytool 을 사용하여 파일 무결성 검사를 환경설정할 수 있습니다.

안티 치트 무결성 툴(Anti-Cheat Integrity Tool) 은 명령줄 툴로서, 다음 두 파일을 생성하는 빌드 프로세스 끝에 쉽게 추가할 수 있도록 디자인되었습니다.

  • 환경설정 파일을 사용하여 정의할 수 있는 게임 파일에 대한 서명된 해시 목록(카탈로그). 런타임에 안티 치트 서비스는 이 서명된 카탈로그를 로드하고, 액세스할 때 콘텐츠 파일이 일치하는지 확인합니다.
  • 개발자가 특정 제품별 세팅을 환경설정할 수 있는 클라이언트 측 안티 치트에 대한 서명된 런타임 환경설정.

게임 파일이 액세스 시 검증되므로 툴은 카탈로그 파일의 삭제를 방지하지 않습니다. 중요한 파일이 디스크에 없으면 게임 코드가 적절히 처리해야 합니다.

카탈로그 파일 자체나 카탈로그화된 처리 대상 파일이 수정된 채로 로드되면, 보호된 멀티플레이어 세션에서는 게임 클라이언트가 자동으로 차단됩니다. 하지만 오프라인, 솔로 플레이, 보호되지 않는 모드에서는 게임 실행이 방지되지 않습니다. 이는 안티 치트가 보호하는 영역에 해당하지 않기 때문입니다.

안티 치트가 활성화된 상태로 운영되는 모든 게임 출시나 업데이트에 이 툴을 실행해야 합니다. 게임의 배포 빌드마다 자동 실행되도록 환경설정하고 출력 파일이 최종 배포와 함께 올바른 디렉터리에 있는지 확인해야 합니다.

무결성 툴 환경설정하기

  1. 개발자 포털에서 내 제품(Your Product) > 게임 서비스(Game Services) 로 이동한 다음 무결성 키 다운로드(Download Integrity Keys) 를 클릭합니다. 무결성 검사에 필요한 파일이 포함된 zip 파일이 자동으로 다운로드됩니다.

    1. 이 파일은 현재 보고 있는 제품에만 해당합니다. 여러 제품을 작업하는 경우, 일치하는 패키지를 사용해야 합니다.

    2. 프라이빗 키를 비밀로 유지하고, 배포하지 마세요. 그러지 않으면 플레이어가 무결성 보호를 우회할 수 있습니다.

  2. 툴링 zip 파일에서 base_private.key 파일과 base_public.cer 파일을 추출한 다음, anticheat_integritytool.cfganticheat_integritytool.exe 가 있는 디렉터리로 이동합니다.

  3. 원하는 행동에 맞게 anticheat_integritytool.cfg 의 값을 수정합니다.

    1. search_options 의 필드를 수정하여 어떤 파일을 카탈로그화할지 제어합니다.

      1. 실행 코드(.dll, .exe 등)가 포함된 게임 배포 파일을 전부 무결성 검사 대상에 포함합니다. 그러지 않으면 치트를 주입할 여지가 노출될 수 있습니다. 기타 게임 에셋은 대개 포함하지 않아도 됩니다. 수정해도 게임플레이에 공정하지 못한 이점이 생기지 않기 때문입니다.

      2. 어떤 경우에는 게임 엔진에서 특정 에셋 파일 포맷 자체를 검증하도록 지원할 수도 있습니다.

        1. 예를 들어, 언리얼 엔진은 효율적인 방식의 .pak 아카이브 파일 서명과 검증을 지원합니다. 엔진에서 검증 기능을 지원하는 파일의 경우, 안티 치트 파일 무결성 검사에 포함하지 않고 엔진 기능을 이용하는 것이 좋습니다.
    2. runtime_configuration 의 필드를 수정하여 다음 런타임 설정을 지정합니다. 참고: 여러 플랫폼에서 생성되기는 하지만,