# Trucco (videogiochi)

Un trucco (spesso chiamato cheat, dall'inglese "imbrogliare") in un videogioco è una tecnica che permette di barare, ovvero ottenere degli effetti benefici normalmente impossibili su uno o più partecipanti.
I giocatori che ricorrono a tali mezzi sono detti cheater (tradotto in italiano "imbroglione").
Ne esiste la possibilità in molti videogiochi, sia in giocatore singolo (utilizzabili o meno a discrezione del giocatore) che in multigiocatore (proibiti perché contro l'etica sportiva e vietati dal regolamento, a meno che influenzino ugualmente tutti i giocatori). Esistono anche dei software in grado di prevenire e bloccare il loro utilizzo; un esempio è PunkBuster.

## Utilizzo

Ad esempio, in un gioco di corse automobilistiche un trucco può permettere di far correre la propria vettura più velocemente di quella degli avversari. Oppure in un gioco di guerra un trucco può fornire munizioni infinite al proprio fucile, rendere il giocatore invulnerabile al fuoco nemico o consentire la visione del proprio avversario attraverso il muro.
L'utilizzo di trucchi nel completamento del gioco aiuta a superare situazioni difficili, ma abbassa al tempo stesso il grado di sfida del gioco. Esistono tuttavia anche trucchi "equi", ossia che hanno effetto su tutti i giocatori (es. aumentando la velocità di tutte le vetture); essi vengono utilizzati per cambiare lo stile di gioco.

## Tipologia

Un trucco può essere messo intenzionalmente a disposizione dal programma a chi ne conosce il codice segreto (cheat code), oppure può essere ottenuto sfruttando in modo antisportivo un bug (errore di gioco) del programma (ad esempio il bunny hopping), o ancora può essere ottenuto con un programma esterno.

### Codici

Molti videogiochi permettono di inserire codici (in inglese cheat code) alfanumerici o altre sequenze di input segrete che abilitano nuove funzionalità, che possono andare dal rifornimento di armi ed energia, allo sblocco di veicoli e personaggi nascosti, all'immortalità (god mode) e al volo (talvolta in modalità noclip, che permette di passare attraverso gli oggetti); la modalità di gioco con uno o più trucchi attivi è anche detta cheat mode. Si tratta di funzionalità predisposte volontariamente dallo sviluppatore del gioco, spesso in origine per facilitare la fase di test del gioco prima della sua pubblicazione, e poi mantenute anche come parte integrante del prodotto finito.
I cheat code possono assumere diverse forme: talvolta si tratta di sequenze di tasti direzionali e bottoni da inserire nella schermata dei titoli (a volte con conferme visive o sonore), oppure sequenze di tasti alfanumerici (che possono formare parole di senso compiuto o meno) da premere in qualunque momento durante il gioco, o ancora da inserire all'interno della riga di comando o della casella di chat, quando presente all'interno dell'interfaccia utente del gioco. Talvolta, prima di poter immettere i codici, è necessario "abilitarli" aggiungendo dei parametri alla riga di comando di avvio del programma (ad esempio nomegioco.exe -cheats 1).
È difficile scoprire i cheat code da soli, ma per una certa categoria di giocatori riuscire a trovarli è proprio una delle sfide interessanti offerte dal gioco. Generalmente riviste e siti internet specializzati in videogiochi pubblicano raccolte di codici scoperti e inviatigli dai lettori.
Un esempio di codice celebre è una combinazione di tasti denominata codice Konami, presente in parecchi titoli della casa giapponese Konami: fra i tanti Gradius, Contra, Pro Evolution Soccer 98.

### Trainer

Oltre ai cheat code implementati dai programmatori, esiste anche la possibilità di barare utilizzando dei modificatori di memoria o trainer (dall'inglese "allenatore"), componenti esterni e indipendenti che possono essere hardware o software. Se attivi in contemporanea al gioco stesso, abilitano i trucchi automaticamente oppure su richiesta del giocatore, ad esempio alla pressione di tasti specifici.
Questi modificatori si basano su una mappa della memoria controllata dal processo del videogioco, nella quale modificano a piacimento i valori contenuti, all'insaputa del processo stesso. Questa operazione è complessa e rischiosa, in quanto è possibile danneggiare l'immagine in memoria del processo stesso modificando dati necessari al corretto funzionamento, perdendo così i progressi effettuati durante la partita. Lo sviluppatore del trainer di solito è indipendente dai produttori e non ha accesso diretto al codice sorgente del gioco, perciò per modificare la memoria effettua una ricerca con progressivo raffinamento: tutto sta nell'individuare il valore che si vuole modificare, ed effettuare ricerche progressive che seguano passo a passo il cambiare del suddetto valore, fino ad intercettare la cella di memoria che inequivocabilmente ci interessa.
Un esempio: in una partita ad un gioco di guerra si inizia con 100 punti di energia. Attivando il modificatore di memoria, e scelto il processo relativo al gioco, si cercano tutte le celle di memoria che hanno come valore 100 (i punti di energia). In questo momento il modificatore di memoria sarà in grado di rintracciare un certo numero di celle di memoria con quel valore, ma non si è ancora certi di quale sia quella che veramente contiene i punti di energia, per cui è ancora troppo presto per provare a manipolarne il valore. Si procede quindi per esclusione: si torna al gioco (lasciando il modificatore attivo), si continua la partita fino a riscontrare una perdita di un certo numero di punti, ad esempio scendendo a 95. Si torna al modificatore di memoria, e si raffina la precedente ricerca inserendo il nuovo valore di energia: il numero di celle il cui valore era 100 e ora è 95 diminuisce. E così via, si continua il processo fino ad intercettare una sola variabile che contiene sempre un valore identico al nostro livello di energia: a questo punto si è certi di aver trovato la variabile giusta. I modificatori a questo punto permettono di assegnare un nuovo valore alla cella di memoria e - di solito - di proteggere la cella da eventuali modifiche successive da parte del software: in questo modo l'energia continuerà a restare al massimo. Questa procedura è volatile in quanto, una volta chiuso il videogame, la memoria del computer viene ripulita, e se alla prossima partita vorremo avere ancora l'energia fissata al massimo valore si dovrà ripetere tutta la procedura qui descritta.
I modificatori di memoria software possono generalmente essere utilizzati solo sulla piattaforma di un personal computer, e si trovano gratuitamente su Internet alla voce "trainer", mentre quelli hardware, per le console, sono generalmente venduti in negozi specializzati (vedi Action Replay). Un classico esempio di modificatore di memoria per personal computer è Cheat Engine.

### Bot

Nel gioco online esistono metodi chiamati bot (contrazione da robot), ovvero programmi esterni al gioco che emulano il comportamento umano, attraverso i quali si evita al giocatore di compiere delle azioni (ripetitive e non) che gli permettono di conseguire dei vantaggi a seconda dello scopo del bot stesso. L'intervento umano non è richiesto per la loro esecuzione. Possono essere distinti in due grandi categorie: macro, ovvero dei bot molto semplici che normalmente eseguono una combinazione di tasti da tastiera o simulano il movimento del mouse secondo degli schemi predefiniti, o in contrapposizione ad essi dei veri e propri bot dotati di intelligenza artificiale i quali sono in grado di apprendere e di rispondere a vari input del gioco stesso anche senza aver predefinito precedentemente uno schema. Quest'ultimi data la loro versatilità ed anche performance, in quanto molto spesso lavorano a livello di memoria, sono i preferiti dai cheater, anche se sono più complessi da sviluppare.
Tra gli esempi possiamo citare, per il famoso gioco FIFA 16, Ultimate Team nel quale i bot del tipo autobuyer, ovvero una categoria di bot che hanno lo scopo di conseguire dei crediti attraverso dei metodi di compravendita (plusvalenza), influenzano in maniera massiccia l'andamento del mercato stesso. Ciò rende molto spesso difficile l'acquisto a prezzi vantaggiosi dei giocatori / item agli esseri umani. Ciò deriva da alcuni aspetti chiave:
* la velocità di esecuzione (ordine di grandezza corretto in questo caso è di millisecondi per i bot e di secondi per gli umani);
* la possibilità di eseguire codice in multithreading;
* non ultimo il fattore chiave che un bot per la sua stessa natura non ha bisogno di fare delle pause e quindi può operare in un tempo indefinito in maniera continuativa.

## Utilizzo e rimedi nella modalità multigiocatore

I trucchi nei giochi e/o nella modalità multigiocatore online sono considerati antisportivi e il loro utilizzo può essere bandito direttamente dalle case produttrici; per tutelare i giocatori puliti i programmatori ricorrono all'inserimento di un software anti-cheat nel videogioco.
Gli anti-cheat più basilari (come HradBa di Vietcong) si limitano a bandire permanentemente da un server il giocatore sorpreso ad utilizzare un cheat in base al suo indirizzo IP, ma cambiando IP o utilizzando un altro cheat è possibile ingannare l'anti-cheat e rientrare nel server.
Esistono poi degli anti-cheat più evoluti (come Punkbuster o il Valve Anti-Cheat) in grado di bandire l'IP, l'account, la CD Key del gioco acquistato dal giocatore (costringendolo a comprare una nuova copia per continuare a giocare online) da tutti i server, e altri perfino i codici hardware del cheater (come i seriali degli HD o delle CPU).
Questi potenti anti-cheat, oltre a registrare le violazioni, tramite il server prendono degli screenshot della visuale del giocatore ogni tot minuti per un controllo manuale ed eseguono ricerche tra tutti i file nella cartella del gioco, registrandone la dimensione in kB, il nome e il numero esatto per sapere se il gioco è stato modificato; dopodiché tutte le violazioni (grazie anche a siti affiliati all'anti-cheat, come PunksBusted per Punkbuster) vengono spedite alla casa produttrice che provvede a escludere dal gioco il cheater identificato. In più c'è la possibilità di caricare una lista dei nickname dei giocatori già banditi (se il giocatore rientra con lo stesso nick viene buttato fuori per presunto cheat) per evitare che, ricomprato il gioco, possano riutilizzare il loro account.