Il existe deux approches pour contrer les bots. Il s'agit de la protection côté client et de l'analyse côté serveur.
La protection côté client est l'approche la plus évidente - la force brute, dans un sens. Vous faites tous les efforts pour vous assurer que le client du jeu est pleinement légitime, n'a pas été falsifié et qu'aucun autre programme ne l'affecte. Maintenant, c'est un problème difficile et impossible à résoudre complètement. Mais de nombreux jeux essaient et ont du succès avec cette méthode. Je sais qu'il existe des solutions toutes faites pour la protection des clients et je vous suggère de les rechercher. La mise en œuvre vous-même est une tâche ardue.
En plus d'être moins que 100% efficace, la protection côté client a l'inconvénient d'être extrêmement agaçante pour vos joueurs. Habituellement, cela implique des choses comme la désactivation du changement de tâche alt-tab, des programmes antivirus, etc.
L'analyse côté serveur est moins intrusive. Dans cette approche, vous disposez d'un code serveur qui analyse les modèles de comportement des joueurs. Le plus souvent, les bots jouent manifestement différents. Par exemple, les joueurs humains ont un temps variable entre les actions (comme le tir), et cette fois obéit à une distribution en forme de cloche. Les robots primitifs auront un temps constant, ou seront répartis uniformément sur un certain intervalle. Fait amusant: en utilisant cette méthode, nous avons attrapé un joueur avec un robot mécanique - un appareil intelligent qui poussait les boutons de son clavier physique. Inutile de dire qu'aucune protection client ne peut attraper cela . Pourtant, cette analyse n'est pas parfaite. Des robots plus avancés tromperont vos systèmes, et plus vous implémenterez de contrôles, plus les robots deviendront avancés.
Pour une meilleure protection, vous pouvez combiner ces deux méthodes. La protection des clients rendra plus difficile le développement de robots, et l'analyse du serveur arrêtera les robots simples qui ont été développés rapidement. Mais quoi que vous fassiez, vous ne pouvez jamais arrêter complètement les bots. Eh bien, sauf si vous envoyez vos représentants au domicile des joueurs, pour superviser leur jeu et signaler les violations. (Ce qui n'est pas inconnu, au fait. J'ai certainement lu une histoire sur une société de poker en ligne envoyant des gens chez un joueur très prospère, pour confirmer qu'il jouait légitimement. Mais je n'arrive pas à le trouver maintenant.)
Il existe deux autres recommandations douteuses pour lutter contre les robots. Premièrement, cryptez votre trafic réseau. Je ne pense pas que ça va marcher. Avec votre client entre les mains d'un ennemi, le trafic peut être et sera décrypté ... ou votre propre client sera utilisé pour le cryptage. D'un autre côté, le chiffrement ajoute du retard, ce qui est vraiment mauvais pour un "tireur en temps réel". La deuxième recommandation est "il suffit de concevoir votre jeu autour de cela". Bien que cela semble être une bonne idée, je n'ai pas encore vu un seul jeu qui a réussi cela.