Come evitare che gli hacker rovinino il gioco online
Prima di tutto,
non usate un sistema peer-to-peer per la comunicazione.
GTA V sembra fare così. Non c'è alcun motivo reale per cui un utente possa affermare di aver generato un carro armato, se non c'è alcun motivo per farlo, quindi è necessario eseguire tutti i calcoli delle caratteristiche rilevanti per il gioco sulla propria piattaforma di fiducia e non fare affidamento sulle affermazioni dell'utente.
Non fare affidamento sulla comunicazione dell'utente attraverso il tuo gioco
Per esempio, League of Legends aveva molti bug (pubblicamente noti) che potevano essere sfruttati solo inviando pacchetti speciali elaborati. "Ho messo questo oggetto in questo slot" senza che il sistema convalidasse se questo fosse possibile o meno. Fondamentalmente si basava sul fatto che le informazioni provenienti dall'utente fossero vere.
Questo causava un comportamento inaspettato in cui l'oggetto in quello slot speciale non aveva alcun cooldown e poteva essere attivato tutte le volte e alla velocità che si voleva.
Ora, alla parte successiva di cui la gente abusava.
Evitate di sfogliare il vostro gioco e di piazzare ganci
Quando potete inviare al server qualsiasi input vogliate, è possibile piazzare un bot - un programma appositamente creato che legge aree di memoria dal gioco - tra il gioco e il server che è in grado di reagire più velocemente di quanto un umano potrebbe mai fare. Poi genera l'input necessario per un risultato desiderato. Per esempio, può premere il pulsante per l'oggetto senza cooldown ogni volta che il gioco è pronto per un nuovo input (che sarebbe ogni immagine). Il che significa a 60 fotogrammi al secondo 30 volte (perché probabilmente deve essere sollevato una volta), assumendo che la logica di gioco sia legata al rendering.
Quindi avreste anche bisogno di proteggere il gioco da qualsiasi software che potrebbe avere accesso alla memoria del gioco. Questo non può essere fatto. Si può solo rendere tutto più difficile scansionando i programmi che accedono al vostro programma, ecc. Essenzialmente è un gioco del gatto e del topo.
Non eseguire in un sistema a cui l'utente ha accesso
Questo è l'unico modo sicuro per prevenire cheating/hacking, e sfortunatamente per essere completo, significa che nessun utente sarà in grado di giocare al gioco.
Perché non gli sarebbe permesso di vedere e inserire nulla.
Si potrebbe sempre mettere un bot davanti al computer e lasciare che prenda il controllo.
(Vedi "TASBot").