# Cheat

Le terme anglais cheat (la « triche », en français) désigne l'ensemble des moyens permettant, dans un jeu vidéo, de modifier les règles du jeu pour obtenir un avantage déloyal lors d'une partie.
Une personne utilisant ces moyens est appelée cheater (ou tricheur). Les cheats sont généralement mis en place par les développeurs pour faciliter les tests pendant la conception d'un jeu vidéo. Dans les jeux en ligne, les cheats sont mis en place par les joueurs et sont notamment utilisés dans les jeux de tir à la première personne, les MMORPG ou les jeux de stratégie en temps réel.
Dans le monde anglo-saxon, le fait de tricher dans un jeu est aussi désigné sous le terme d’exploit (l'action), notamment grâce à l'utilisation de glitches (« failles » du jeu).

## Dans les jeux « solo »

La méthode la plus basique de triche est l'utilisation de « codes de triche » (en anglais cheat codes) ou de systèmes physiques qui remplissent le même rôle.
Un code de triche consiste généralement en un mot ou une phrase à écrire dans une boîte de dialogue, ou en une suite de touches à enfoncer n'importe quand pendant une partie. Activé, le code de triche provoque un effet sur le joueur, par exemple devenir invincible ou pouvoir passer à travers les murs, etc.
Ces codes de triche sont créés par les développeurs et cachés dans le jeu vidéo. Ils permettent de tester certains aspects du jeu facilement pendant la phase de développement du jeu. Par exemple, un développeur qui voudrait vérifier la trajectoire d'une roquette serait contraint, sans codes de triche, de trouver un lance-roquette et des munitions et il devrait analyser la trajectoire à l'œil nu à chaque fois qu'il tire. Avec des codes de triche, il pourrait utiliser un premier code pour avoir toutes les armes du jeu (dont le lance-roquette), un deuxième pour avoir des munitions en quantité illimitée, et un troisième qui affiche un trait bleu persistant le long de la trajectoire, ce qui simplifierait grandement les tests.
Dans les jeux de tir à la première personne :
* se rendre invincible (« mode Dieu » ou godmode en anglais) ;
* avoir toutes les armes ;
* munitions infinies ;
* charger directement un niveau précis ;
* tuer tous les ennemis ;
* traverser les murs (mode noclip) ;
* être invisible (mode fantôme) ;
* s'envoler.
Dans les jeux de stratégie en temps réel :
* invulnérabilité ;
* avoir toutes les technologies ;
* ressources infinies ;
* diminution des temps de construction ;
* dévoiler toute la zone de jeu (annulation du « brouillard de guerre »).

## Dans les jeux multijoueur

Alors que la triche dans les jeux solo est tolérée (vu que l'on y joue tout seul), la plupart des jeux multijoueur opposent directement les joueurs entre eux, et un joueur trichant dans une partie bénéficie donc d'un avantage par rapport aux autres joueurs. C'est pourquoi les tricheurs sont mal considérés par la communauté des joueurs en ligne.
Les développeurs d'un jeu ne fournissent aucune méthode de triche en multijoueur, ils cherchent au contraire à les contrer. Les codes de triche solo sont prévus pour ne pas fonctionner en multijoueur. Des méthodes de triche alternatives sont développées par certains joueurs.
Pourtant, sur certains jeux dont les serveurs multijoueur ne sont pas gérés par le studio, (comme le jeu Minecraft), les développeurs laissent les équipes techniques des serveurs choisir la politique concernant ces règles de triches. Certains choisissent de les interdire, mais d'autres les autorisent (« Serveurs anarchistes », ex: 2B2T).

### Fonctionnement

Il existe différentes méthodes utilisées par les logiciels de triche.
* Modification du code
    Le jeu est analysé par reverse-engineering. Il est ainsi possible de comprendre quel bout de code réalise quelle fonction précisément. En modifiant ce bout de code, le fonctionnement d'une partie du jeu est modifié. Ceci s'appelle généralement un "Exploit". Pour faire simple, il faut voir cette méthode de triche comme un patch illégal d'un exploit. Par exemple, un jeu retire des pièces d'or à un joueur à chaque fois celui-ci achète un objet ; en comprenant comment le jeu implémente cette fonctionnalité, il serait possible de modifier le comportement du jeu afin que le joueur gagne des pièces d'or à chaque fois qu'il achète un objet.
* Manipulation des données en mémoire
    Le jeu stocke les données dont il a besoin en mémoire, incluant (mais ne se limitant pas à) le niveau de vie du joueur, ses munitions, son niveau, son argent, le détails des objets qu'il possède, etc. En trouvant exactement où ces valeurs sont stockées, il est possible de les modifier. Par exemple, un joueur a 30 balles dans le chargeur de son arme ; en trouvant où ce nombre est stocké, sa valeur peut être fixée à 30, de telle sorte que quand le joueur tire avec son arme, le nombre de balles dans son chargeur ne diminue pas et reste à 30 ; il a donc des munitions illimitées. C'est surtout ce fonctionnement qui est ciblé par les anti-cheat dans les jeux en ligne.
* Modification du système
    Un jeu fait appel à diverses fonctionnalités du système d'exploitation de l'ordinateur du joueur. Plutôt que de modifier le jeu en lui-même, il est possible d'altérer le fonctionnement du système d'exploitation. Un bon exemple est le pilote de la carte graphique qui s'occupe du rendu sur l'écran du joueur. En temps normal, un objet qui est caché derrière un deuxième objet n'est pas affiché. En altérant le pilote de la carte graphique de la façon adéquate, l'objet caché sera tout de même affiché à l'écran. Cela permet de voir à travers les murs (wallhack).
* Interception et altération des paquets
    Quand un joueur effectue une action dans un jeu multijoueur (se déplacer, envoyer un message, etc.), le jeu transmet un paquet réseau au serveur du jeu, décrivant l'action effectuée. Puis le serveur retransmet le paquet à tous les joueurs en jeu, chaque jeu sur les autres ordinateurs prenant en compte l'action effectuée (déplacement du joueur, affichage du message, etc.). Il est possible d'intercepter ces paquets et de les modifier ; de cette façon, si un joueur effectue une action, le jeu transmettra un paquet aux autres joueurs, mais entre-temps le paquet ayant été modifié (selon l'endroit de modification), un ou plusieurs joueurs verront apparaître une action différente de celle qui s'est réellement produite. Prenons par exemple le principe du fonctionnement du cheat anti-aim : un joueur A (normal) et un joueur B (qui triche) s'affrontent dans une partie sur internet. Le joueur A voit le joueur B et lui tire une première balle. Le jeu envoie un paquet qui contient la trajectoire de tir, entre autres informations. Le paquet passe par le serveur, le serveur renvoie le paquet vers le joueur B. Juste avant d'arriver au joueur B, le paquet est intercepté par un logiciel de triche qui l'analyse. Le logiciel lit la trajectoire de la balle (qui est dirigée exactement sur B) et modifie la trajectoire pour que la balle aille à côté du joueur B, puis fait suivre le paquet jusqu'au jeu de B. Le jeu analyse le paquet et dessine la trajectoire de la balle, et le joueur B voit sur son écran la balle qui passe à côté. Ainsi, le joueur B dévie les balles adverses, et peut contre-attaquer.
    Dans certains jeux en ligne, les joueurs peuvent voir le Ping (latence en Français), Les tricheurs sont susceptibles de pouvoir modifier cette valeur par manipulation des paquets.

### Comportements et motivations

Selon les motivations et/ou la maturité, le comportement des tricheurs peuvent être classés en deux catégories : le tricheur ostentatoire et le tricheur discret.

#### Le tricheur ostentatoire

Le tricheur ostentatoire (ou « rage hacker ») est en général un (jeune) joueur en manque de reconnaissance ou immature. Il active généralement la totalité des options de cheat disponibles pour son jeu et essaie de gâcher au maximum la partie des autres joueurs.
Un des cas extrêmes de ce comportement est l'association (selon le jeu utilisé) d'un aimbot (ou auto-aim ; un programme de visée automatique des autres joueurs) avec un speedhack (un programme qui permet de courir plus vite) et d'une arme de corps à corps (comme un couteau) du jeu : guidé automatiquement par l’aimbot, le tricheur passe de cible en cible et « découpe » chaque ennemi au couteau, à une vitesse telle qu'il est très difficile à abattre. La précision de l’aimbot, couplée à la vitesse du speedhack, permet en général d’anéantir entièrement l'équipe adverse en une poignée de secondes à compter du début de la partie.
Le tricheur peut aussi, selon les jeux, utiliser une arme a distance (et à longue portée, comme un fusil de précision ou un railgun, voire une mitrailleuse) et « mitrailler » la zone, anéantissant les autres joueurs sans même qu'ils aient eu le temps de voir le coup arriver.
Si le jeu possède un chat vocal, il peut arriver que, grâce à un Soundboard, le tricheur diffuse des musiques en saturé ou des sons gênants.
Il arrive aussi que ce type de tricheur se manifeste en groupe, et dès que l'un est soupçonné, ils vont tout faire pour dissuader les coéquipiers que leur ami ne cheat pas, mais que celui qui l'a dénoncé.
Si aucun administrateur n'est présent pour bannir le tricheur, le serveur est dans la plupart des cas rapidement déserté, les joueurs honnêtes se mettant en mode « spectateur » pour observer le cheater, avant de quitter le serveur.

#### Le tricheur discret

Le tricheur discret (ou legit hacker) est beaucoup moins gênant, agissant de manière beaucoup plus subtile, mais tout aussi néfaste : le but du tricheur discret est d'obtenir le meilleur score possible sans être repéré, utilisant le cheat de manière raisonnée, prudente et masquée.
Avec toutes les technologies de triche disponibles, il est de plus en plus difficile de faire la différence entre un très bon joueur et un tricheur discret. D'autant plus qu'un très bon joueur, que personne ne soupçonne de tricher, peut très bien être un tricheur discret faisant très bien son travail...
Le tricheur discret peut par exemple utiliser un aimbot (programme de visée automatique) avec un programme de changement de FOV (Field of view (en) ; en français : « champ de vision ») très faible, pour viser les joueurs adverses automatiquement dès que le viseur est proche de sa cible (smooth aiming). Il ne vise pas la tête et n'utilise pas de wallhack ou d'ESP (un programme qui permet de voir à travers les murs). De plus, il désactivera son cheat au moindre soupçon de la part d'un autre joueur, pour le réactiver discrètement quelque temps plus tard.
Parmi l'une de ses nombreuses stratégies, le tricheur discret n'hésitera pas à utiliser des pratiques telles que la manipulation psychologique afin de convaincre ses coéquipiers ou son entourage qu'il ne triche pas. Certains joueurs de haut niveau ont été découverts (souvent par hasard ou à la suite d'une erreur bête du joueur en question) utilisant le cheat discret, notamment dans plusieurs jeux par équipe joués dans les tournois importants ou sur internet.
Dans certains jeux infestés de tricheurs (comme le FPS Team Fortress 2), il n'est pas rare de voir ce type de tricheur dire qu'il se bat contre ses confrères.

## Moyens mis en œuvre pour contrer la triche

Les développeurs des jeux multijoueurs sont conscients du problème de la triche, qui leur est préjudiciable, car nuisant à la qualité du jeu en ligne ou à leur business model, dans le cas de jeux free-to-play. Au fil des ans, plusieurs solutions ont été mises en place pour tenter d'arrêter les tricheurs.

### Système de contrôle chez le client

Plusieurs développeurs de jeu ont choisi cette solution. Elle consiste à faire télécharger côté client un programme de contrôle qui va tenter de détecter la présence d'un code de triche. Les anti-triches de ce type fonctionnent selon le même principe que celui d'un logiciel antivirus.
* Avantages :
** totalement fiable avec les logiciels de triche supportés ;
** faible risque d'erreur avec un joueur ne trichant pas ;
** dissuasif, dans le cas des anti-triche proposés par les développeurs des jeux car menaçant le plus souvent d'interdire au tricheur l'accès à tous les serveurs de jeu (par ex. en bannissant sa clé CD du jeu), contraignant le tricheur à racheter le jeu.
* Inconvénients :
** nécessite d'avoir une base de données de cheats à jour ;
** pour les logiciels anti-triche développés par des sociétés tierces (par exemple Punkbuster), nécessite d'installer le logiciel de contrôle même pour les joueurs honnêtes afin de pouvoir accéder au serveur de jeu.
Solutions clientes anti-triche les plus connues :
* BattlEye : système anti-triche tiers, utilisé notamment pour les jeux ARMA II, ARMA 2: Operation Arrowhead (en), ARMA III, DayZ, H1Z1, Ark: Survival Evolved, Planetside 2, Survarium, Conan Exiles, PlayerUnknown's Battlegrounds, Fortnite Battle Royale, Heroes and Generals ou Bless Online (en) ;
* Cheating-Death : une ancienne solution anti-triche développée par une communauté d'administrateurs de serveur et utilisée notamment par l'Electronic Sports League (ESL) dans ses tournois en LAN-party ;
* nProtect GameGuard : utilisé notamment dans les MMORPG asiatiques ;
* Punkbuster : logiciel tiers utilisé notamment pour les jeux Quake III Arena, Quake Live, Battlefield 1942, Call of Duty ou encore Battlefield 3, Battlefield 4 et aussi Battlefield Play4Free ;
* Valve Anti-Cheat (VAC) : développée par la société Valve notamment pour ses jeux Half-Life, Counterstrike ou Counter-Strike: Global Offensive ;
* Warden : qui concerne Diablo II (depuis le patch 1.11), StarCraft (depuis le patch 1.15), Warcraft et aussi World of Warcraft.

### Système d'analyse de comportement sur le serveur

Cette solution, très utilisée il y a plusieurs années, a été progressivement abandonnée en raison de sa fiabilité limitée.
* Avantages :
** ne nécessite rien chez le client ;
** pas de base de données à mettre à jour.
* Inconvénients :
** peu fiable car se basant sur des comportements (par exemple, la rapidité de déplacement du viseur) ;
** la plupart des cheats récents disposent d'options spécifiquement conçues afin de contourner ces protections ;
** bannissement d'un seul serveur uniquement ;
** des latences peuvent survenir et donc fausser l'analyse.
Solutions anti-triche les plus connues :
* HLGUARD Anti-Cheat, développé à l'origine pour Half-Life et ses nombreuses modifications.

### Surveillance humaine

L'œil humain reste l'outil le mieux adapté pour détecter les supercheries. Certains sites, comme celui de l'UAA pour le jeu Urban Terror, proposent de leur envoyer des démos de tricheurs en pleine action accompagnées de leurs identifiants uniques (représentatifs de leur clé CD) afin de constituer des listes entières de cheateurs à bannir.
Le système « Overwatch » de Counter-Strike: Global Offensive est aussi un système permettant aux joueurs qui ont signalé de potentiels cheaters de déterminer si ces signalements s'avèrent être exacts et prendre les mesures nécessaires grâce à des experts ou des joueurs, souvent bénévoles. Le système fonctionne avec un bout d'enregistrement vidéo censé montrer les actions suspicieuses du joueur suspecté de triche. Le verdict sera rendu à la fin de l'enregistrement, à charge d'experts de déterminer si oui ou non le joueur a triché.
* Avantages :
** fiabilité totale sur les cheateurs ostentatoires ;
** ne nécessite rien chez le client ;
** pas de base de données à mettre à jour.
* Inconvénients :
** fiabilité limitée sur les cheateurs discrets (dépendante des compétences de l'administrateur) ;
** risques d'erreurs si l'administrateur n'est pas assez compétent (bannir un tricheur qui n'en est pas un) ;
** nécessite des ressources humaines ;
** bannissement d'un seul serveur uniquement, ou propagation du bannissement limitée en utilisant les listes de bannissement ;
** point de vue souvent subjectif, ne permettant pas de juger le joueur de manière objective.