Документація Steamworks
Упровадження VAC

Цілі й методологія

Ціллю системи VAC є максимальна завада для використання користувачами чітерського програмного забезпечення. Це досягається шляхом суворих покарань користувача за чітерство, а також ускладненням можливості для чітерської спільноти знайти інформацію про виявлення системою тих чи інших чітів. VAC — це компонент Steamworks та клієнта Steam, що працює шляхом сканування систем користувачів на наявність чітів під час роботи гри. Його принцип роботи схожий на сканер антивіруса й має базу даних відомих чітів. Після виявлення чіта на користувацький акаунт накладається затримане блокування. Блокування не діє миттєво, а застосовується через кілька днів після виявлення чітів. Після здійснення блокування користувач не зможе підключатися до захищених багатокористувацьких ігрових серверів. Блокування прив’язуються до акаунта користувача, тому єдиним способом усунути блокування є створення користувачем нового акаунта й купівля нової копії гри.

У випадку блокування VAC трапляється наступне:
  • Акаунт не зможе підключатися до захищених серверів застосунку, в якому отримав блокування
  • Блокування буде показуватися для всіх у профілі користувача в Steam
  • Акаунт більше не зможе ділитися іграми з увімкненою системою VAC
  • Якщо користувач отримав гру через сімейну бібліотеку, то блокування також пошириться на власника гри
Додаткову інформацію можна знайти в наступних статтях із відповідями на часті питання користувачів: «Античіт Valve (VAC)» і «Мене заблокували античітом Valve (VAC)».

Вимоги

Багатокористувацька гра
VAC розраховує на те, що ігровий сервер виключить заблокованих VAC користувачів з ігор. Тому система діє лише в багатокористувацьких іграх і зайва для самітних ігор.

VAC потребує наявності API автентифікації Steamworks
Автентифікацію слід застосувати в ігровому клієнті й на сервері за допомогою API автентифікації Steam.

Увімкнені API античіту Valve
Це можна зробити на сторінці конфігурації античіту на панелі адміністрування застосунку. Ці API потрібно увімкнути, щоби застосовувати внутрішньоігрові блокування або надати можливість VAC виявляти чіти у вашому застосунку.

Активний розробник шукає чіти
VAC виявляє лише ті чіти, про які повідомляє розробник. Valve не шукає чіти автоматично чи вручну. Будь ласка, повідомляйте про використання чітів за допомогою веб-API ICheatReportingService/ReportCheatData та сповіщення на адресу valveanticheat@valvesoftware.com, щоби ми могли їх класифікувати й включити в нашу базу виявлення чітів.

Захищені ігрові сервери

«Захищена» гра не дозволить гравцю, якого було спіймано на використанні чітів, запустити її. Кожна копія вашої гри дозволяє запускати її в захищеному чи незахищеному режимі. Ви самі вирішуєте, якими правилами керуватиметься ваша гра. Зазвичай стандартно встановлюється захищений режим із можливістю запуску гри в незахищеному режимі. У такий спосіб ви можете виокремити користувачів, що використовують чіти, від решти вашої спільноти, дозволяючи всім грати в гру. Лише користувачі, що підключені до захищених серверів, будуть блокуватися за чітерство.

Упровадження

Виявлення чітів системою VAC не залежить від вашого ігрового клієнта. Цю роботу виконує Steam. Гра повинна керуватися найкращими практиками й захищати свої елементи та внутрішній стан. Гра має використовувати API Steamworks для з’ясування статусу блокування системою VAC. Зворотний виклик ISteamUser::ValidateAuthTicketResponse_t від функції ISteamUser::BeginAuthSession поверне три результати, що стосуються системи VAC. Результати автентифікації VAC наступні:
  • k_EAuthSessionResponseVACBanned повертається, коли гравця заблоковано системою за використання чітів.
  • k_EAuthSessionResponseVACCheckTimedOut повертається, коли гравець не дозволяє системі просканувати комп’ютер на наявність чітів. У такому випадку гравця слід вигнати з гри.
  • k_EAuthSessionResponsePublisherIssuedBan повертається, коли користувач блокується через веб-API RequestPlayerGameBan.

Пов’язані веб-API

У розділі про веб-API ви знайдете докладнішу інформацію про використання наступних веб-API.