Que s'est-il passé sur la scène Counter-Strike la semaine dernière ? La rédaction revient sur le "coach bug", la faille de l'assignation spectateur associée au sixième homme, son impact et comment l'intégrité des compétitions est remise en cause.

Les serveurs de jeux compétitifs comportent des emplacements ("slots") pour les joueurs mais également pour le staff, les admins qui surveillent la bonne tenue du match et le respect des règles, et enfin les observers pour permettre la bonne diffusion de la compétition (concernant les matchs diffusés).

Les slots accordés aux coachs ne leur permettent d'observer que le point de vue de leurs camarades, en première personne uniquement à la différence des slots pour les admins et observers qui possèdent plus de liberté de vision et de mouvement au sein de la partie, et seuls ces derniers peuvent être autorisés à exploiter des vues en troisième personne, ou des caméras dites statiques, dynamiques et bien plus.

Le problème, c'est qu'une faille dans la vision des coachs a été décelée ces derniers mois, par certains coachs eux-mêmes comme Loord ou Peacemaker alors qu'une enquête qui est déjà lancée résultera en plusieurs bans pour des coachs de la scène compétitive profiteurs de ce bonus de vision.


Connaître le statut du popdog sans même s'exposer, un avantage certain sur Train.

Il se traduit par une camera surélevée sur un point de la carte, qui peut se situer au dessus du dernier corps du membre de son équipe tué le round précédent, ou par défaut sur plusieurs points de la carte et le coach peut bouger sa souris pour orienter sa vision à 360°. Comme vous pouvez le voir sur le média du tweet suivant :

Et si la scène est actuellement parcourue par une vague d'assainissement, il faut remercier un homme, Michal Slowinsky, un admin freelance de plus de dix ans d'expérience sur la scène Counter-Strike ayant débuté sur 1.6. Comprenez un arbitre au sens large du thème, sûrement l'un des meilleurs, qui n'hésite pas à consacrer un temps fou a triturer des démos pour vérifier les cas de tricherie ou d'abus du règlement, en plus de gérer le calendrier de nombreuses compétitions dont l'ESL Pro League.

Le Polonais trentenaire a eu connaissance de ce problème et s'est lancé dans sa chasse aux coachs en analysant une pléiade de demos (ou replays) initialement autour de sa mission initiale pour le groupe ESL lié à la DreamHack depuis l'acquisition des deux maisons mères par MTG. En tandem avec Steven Dudenhoeffer, manager du département de développement d'application d'ESEA, ces derniers ont procédé au traitement en masse de demos via des parsers ("analyseurs syntaxiques" en français) pour ensuite effectuer une vérification manuelle, comprenez visuelle : on se place au niveau du tick de la démo, dans le point de vue du coach, pour vérifier sa vision au moment suspect.

Même si Hunden avait fait un feedback sur ce problème au staff du cs_summit, cela ne l'a pas empêché de l'exploiter lors de la victoire de son équipe lors de la cinquième édition de la Home Sweet Home et ses 30 000 $, contrastant avec l'image d'in game leader intègre et formateur à l'origine du succès de la moitié des joueurs de son pays. Initialement les suspicions s'orientaient sur les coachs se connectant très tôt sur le serveur comme Dastan, après analyse le Kazakh fut innocenté mais par ruissellement l'admin tomba sur le cas Hard Legion, l'un des plus sévères autour de la problématique.

Après les premières révélations, l'ESIC a quant à elle demandé aux coachs s'ils souhaitaient se confesser et témoigner à temps puisque l'organisme prévoit l'analyse de plus de 25 000 fichiers .dem de matchs s'étant déroulés entre 2016 et 2020. Une tâche estimée à huit mois de travail qui disposera de rapports mensuels. La responsabilité de l'ESIC sur l'issue de cette histoire est indéniable, le rapport mensuel promis par cette commission devrait délier quelques langues dans les prochaines semaines. Leur juridiction prendra effet avec un champ d'application très large dû à leur légitimité auprès d'un nombre important de TO ("Tournament Organizer") : ESL, DreamHack, BLAST, WePlay, Eden... pour ne citer qu'eux.

Il en resultera une multitude de noms sanctionnés que vous pouvez retrouver dans le tableau ci-dessous.

 

Le tableau recapitulatif

Liste des coachs concernés, actions et sanctions

Tournois Pays Coach Abus Équipe actuelle Équipe avantagée Situation
ESL Road to Rio
+
Home Sweet Home 4,5,6
Aleksandr "MechanoGun" Bogatiryev

6 maps en 3 matchs (Road to Rio uniquement)

vs Heroic, Secret, Na'Vi, Gambit, Salamander

Hard Legion Hard Legion Kick de son équipe, 2 ans de ban de compétition, l'équipe rétroactivement disqualifiée du tournoi en question, perd ses points ESL Pro Tour et devra se désengager du cashprize remporté. 
Communiqué de Hard Legion
CS_Summit 6 Ricardo "dead" Sinigaglia 1 round sur 1 map
vs Triumph
MIBR MIBR Coach suspendu, ban de six mois d'ESL & DH, ban de deux ans du CS_summit. L'équipe est rétroactivement disqualifiée du tournoi en question, perd ses points ESL Pro Tour et devra se désengager du cashprize remporté. Le communiqué de MIBR.

Ce dernier avait connaisance du bug (vs Yeah Gaming & Envy) avant de l'utiliser sciemment.
DH Masters Spring + Home Sweet Home 5 Nicolai "HUNDEN" Petersen 23 rounds sur 2 maps
vs Astralis, Spirit
Heroic Heroic Coach suspendu, 1 an de ban de compétition, l'équipe est rétroactivement disqualifiée du tournoi en question, perd ses points ESL Pro Tour et devra se désengager du cashprize remporté. Communiqué d'Heroic.
Malta Vibes Cup 8 Asset "Solaar" Sembiev 21 rounds sur 1 map K23 K23 Preuves contre FATE, Communiqué du concerné sur VK
Malta Vibes Cup 3 Aleksandr "AKIMOV" Bogatiryev 10 maps
vs Alternate
Hard Legion Hard Legion Assistant coach, il quitte volontairement le line-up après avoir été concerné lui aussi par l'exploitation de ce bug
Kalashnikov Cup
United Masters League
Rivalry Rising Stars
Lootbet Cup 2 (Qualifier CS_Summit 2)
Allan "Reijin" Petersen 4 maps 
vs HAVU, 3DMAX, pro100 
Mousesports Tricked Aveu de l'utilisation nottament face aux Français de 3DMAX en 2018, puis il a travaillé main dans la main avec l'admin pour lui donner des pistes, notamment sur les coachs qui se connectent tôt sur les serveurs.
Suspendu temporairement par mousesports.
ESL Pro League 8   Faruk "pita" Pita vs mousesports sur 1/2 maps - NiP Aveu, il a contacté VALVE en juillet 2018 pour les informer de l'avantage conféré par ce bug.
OGA Counter Pit S7 Ivan "F_1N" Kochugov 1 map vs AGO Gambit Y. Gambit Y. Aveu d'utilisation sur une carte, coach suspendu.
ECS S7 Nicholas "guerri" Nogueira vs Complexity sur 1 map FURIA FURIA Coach maintenu et soutenu par sa structure, il défend son innocence et sa version des faits est disponible en vidéo (sous-titres disponibles).
Dell Gaming Liga Arthur "prd" Resende 2 rounds sur 2 matchs RED Canids RED Canids Aveu, aucune information n'aurait été transmise, coach suspendu.
Brasil Game Show 2019 Henrique "rikz" Waku 2 rounds sur 1 match DETONA DETONA Preuve, aucune information n'aurait été transmise.
Gamers Club Masters Bruno "ellll" Ono  ? paiN ex Wild Team Aveu, aucun impact sur le résultat.
- Pedro "peu" Lopes ? W7M W7M Aveu, aucune information n'aurait été transmise.

 

Qu'est-ce qu'un ban de l'ESIC ?

Le ban impose les sanctions suivantes au coach, ce dernier :

  • ne doit pas communiquer activement ou passivement avec l'équipe, 15 minutes avant le début du match officiel jusqu'à la fin du match ;
  • ne doit pas être physiquement présent autour de l'équipe, 15 minutes avant le début officiel du match jusqu'à la fin du match ;
  • ne doit pas être sur le serveur de jeu pendant les matchs officiels ; ne doit pas être sur le serveur vocal officiel du match ;
  • ne doit pas faire partie du processus de veto de cartes ni être en communication avec l'équipe pendant ce processus.

Concernant le déni de conscience de la part des joueurs, l'ESIC a déterminé que les preuves ne seraient pas suffisantes dans la majorité des cas pour impliquer les joueurs en plus du coach concerné par les accusations. Et l'ESports Integrity Coalition invite les membres de l'industrie à ne pas spéculer.

 

Le problème en lui-même, comment le déceler :

Avant toute chose sachez qu'il existe plusieurs solutions :

  • FACEIT Analyser, pour analyser une démo et en ressortir les logs in-game et éventuellement l'utilisation du coaching bug parmi les spectateurs de la partie : la solution la plus simple si vous n'avez qu'un fichier .dem à analyser ;
  • un module en Go, pour analyser des dossiers de démos directement avec un export de rapport : la solution idéale pour un admin qui doit vérifier une grande quantité de replays ;
  • HLAE et une config (ou cfg) pour la vérification manuelle en se mettant dans le point de vue du coach (attention, nous vous conseillons de ne pas rejoindre les serveurs protégés par VAC avec HLAE de lancé sur votre ordinateur).

La première solution est disponible chez FACEIT, appelée faceitanalyser, initialement développée par un membre de l'ECL pour leur permettre de vérifier les fichiers de démos internes à leurs serveurs, il est désormais possible d'upload son fichier .dem pour vérifier si des abus on été commis par le coach dans l'onglet Game Logs.

Par exemple, concernant le match sur Dust_2 entre Natus Vincere et Hard Legion durant l'ESL One Road to Rio, nous avons un taux d'exploit de 100 % de la part de MechanoGun :

    

Après analyse on obtient les résultats et les rounds concernés dans l'onglet "Game Events Logs", et il ne reste plus qu'à vérifier manuellement la chose.

 

LA VéRIFICATION VISUELle, IN-EYES

Pour vérifier manuellement il vous faudra vous munir d'HLAE (ou Half Life Advanced Effect), un outil utilisé pour le movie-making. À l'aide d'HLAE, vous pouvez lancer le jeu et tweaker/override la caméra à des positions bloquées initialement par le lecteur de démo demoui standard.
Le set-up Windows est disponible ici (version 2.106.0). Cet outil développé par Dominik Tugend est utilisé à la fois en post-production et en live prod, toutefois il faut vous munir de quelques commandes de lancement dans le custom loader de l'application afin d'éviter d'être VAC Ban : 


 
La commande "-insecure" vous empêche de rejoindre les serveurs protégés par VAC et protège votre compte d'un ban

Il vous faudra définir le chemin de votre csgo.exe puis ajouter les lignes de commandes suivantes :
"-console -steam -insecure +sv_lan 1 -window -game csgo -w 1920 -h 1080" (ou la résolution de votre choix). Il ne vous reste plus qu'a charger le DLL associé au moteur source "AfxHookSource.dll" et d'appuyer sur OK pour lancer le jeu.

Une fois le jeu lancé via HLAE, il vous faut charger la démo : utilisez SHIFT+F2 pour ouvrir le demoui puis "Load..." ; selectionnez la démo que vous avez mise au préalable dans votre répertoire (par défaut : C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\replays\votredemo.dem).

Une fois la démo chargée, il vous faut exécuter dans la console du jeu la configuration suivante, que nous avons placée dans le répertoire du jeu.
"C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg\coachabusecheck.cfg"


 

Procédez à quelques lignes dans la console afin de déterminer le numéro de l'entité du coach, saissisez "mirv_listentities" pour obtenir une liste des entités présentes sur le serveur (joueurs, coachs, équipements, tout y figure).

Ici on note que le coach des Hard Legion MechanoGun occupe l'index 4, on va donc se placer sur lui avec la commande suivante :
"mirv_calcs handle edit playerIndex index 4" pour se positionner dans son point de vue afin d'obtenir les preuves nécessaires.


Ci-dessus on bascule de la vue de B1ade (index 7) à celle de MechanoGun (index 4)

 

L'échelle supérieure, le traitement automatique de dossiers

Le module web Faceit fonctionne démo par démo, c'est donc plutôt long et pour les admins avec beaucoup de matchs à gérer, c'est compliqué, un module développé en go permet quant à lui de vérifier l'intégralité d'un dossier et d'en exporter un rapport.

Pour l'utiliser, il faut installer le package Golang, nous vous conseillons d'utiliser Visual Studio Code et de télécharger le parser modifié

Une fois ces trois composantes sur votre ordinateur il faut vérifier la racine où vos démos sont stockées, se placer dans le répertoire sur Visual Studio : $GOPATH, par exemple : "C:\Users\[Nom de l'utilisateur]\go".

Il ne vous reste plus qu'à définir le chemin de vos démos dans ce répertoire (ici au niveau de la 15ème ligne) :

Dans le terminal (en bas de la fenêtre), vous pouvez saisir "go run main.go" une fois vos fichiers .dem en place dans votre racine de la forme suivante :
"C:\Users\[Nom de l'utilisateur]\go\csgo-coach-bug-detector-master\demos", cela vous générera un rapport sous l'appellation "output.txt" avec toutes les données concernant l'abus de vision des coachs, leur récurrence, ainsi que la position sur la carte, le tick et le Steam ID.

Ensuite vous pouvez aller au round en question, suggéré par votre outil analytique et vous pouvez déterminer si le coach a abusé de sa vision in game via HLAE comme expliqué plus haut.

 

Un problème d'éthique qui perturbe tout l'écosystème ?

De multiples questions se posent alors, comment sanctionner les abusers, comment agir en rétroaction sur les tournois passés ? Comment Valve a-t-il pu laisser son jeu dans un tel état d'incertitude ? C'est en effet un bug que l'on pensait initialement avec une occurence aléatoire qui s'est avéré être une faille exploitable nuisant à l'intégrité et au bon déroulement de nombreuses compétitions. Concernant les potentiels suspects : "certains gardent le silence, certains se lancent dans le narratif" ("pour se dédouaner"), exprimait michau9 en interview avec nos confrères d'HLTV.org en ce lundi après-midi.

Une cagnotte a été ouverte pour remercier les deux chevaliers blancs de la scène Counter-Strike pour leurs travaux, la donation accordée à Steve Duden sera envoyée à l'assocation Gamers Outreach.