Esistono due approcci per contrastare i robot. Sono protezione lato client e analisi lato server.
La protezione lato client è l'approccio più ovvio - la forza bruta, in un certo senso. Fai tutti gli sforzi per assicurarti che il client di gioco sia pienamente legittimo, che non sia stato manomesso e che nessun altro programma lo influenzi. Questo è un problema difficile e impossibile da risolvere completamente. Ma molti giochi ci provano e hanno un certo successo con questo metodo. So che esistono soluzioni già pronte per la protezione dei clienti e suggerisco di cercarle. Implementarne uno da soli è un compito scoraggiante.
Oltre ad essere meno efficace al 100%, la protezione lato client ha lo svantaggio di essere estremamente fastidioso per i tuoi giocatori. Di solito implica cose come disabilitare il cambio di attività alt-tab, programmi antivirus, ecc.
L'analisi lato server è meno invadente. In questo approccio, hai del codice server che analizza i modelli nel comportamento dei giocatori. Molto spesso, i robot giocano in modo dimostrabile diverso. Ad esempio, i giocatori umani hanno un tempo variabile tra le azioni (come sparare) e questa volta obbedisce a una distribuzione a campana. I robot primitivi avranno un tempo costante o distribuiti uniformemente su un certo intervallo. Curiosità: usando questo metodo, una volta abbiamo catturato un giocatore con un robot meccanico , un dispositivo intelligente che premeva i pulsanti sulla sua tastiera fisica. Inutile dire che, non quantità di protezione client può prendere quella . Tuttavia, questa analisi non è perfetta. Più robot avanzati inganneranno i tuoi sistemi e più controlli implementerai, più robot avanzati diventerebbero.
Per la migliore protezione, è possibile combinare entrambi questi metodi. La protezione del client renderà più difficile lo sviluppo di bot e l'analisi del server fermerà i bot semplici che sono stati sviluppati rapidamente. Ma qualunque cosa tu faccia, non puoi mai fermare del tutto i robot. Bene, a meno che non invii i tuoi rappresentanti nelle case dei giocatori, per supervisionare il loro gioco e segnalare violazioni. (Il che non è inaudito, a proposito. Ho sicuramente letto una storia sulla compagnia di poker online che manda persone a casa di un giocatore di grande successo, per confermare che stava giocando legittimamente. Ma non riesco a trovarlo ora.)
Ci sono altre due raccomandazioni dubbie per combattere i robot. Uno, crittografa il tuo traffico di rete. Non penso che funzionerà. Con il tuo client nelle mani di un nemico, il traffico può essere e sarà decrittografato ... o il tuo client verrà utilizzato per la crittografia. D'altra parte, la crittografia aggiunge ritardo, e questo è davvero un male per uno "sparatutto in tempo reale". La seconda raccomandazione è "basta progettare il tuo gioco attorno a questo". Mentre questa sembra un'idea sana, devo ancora vedere un singolo gioco che è riuscito a gestirlo.