Si les gens veulent botter, je ne pense pas que vous puissiez vraiment les arrêter.
Vous pouvez bien entendu mettre en œuvre de nombreuses mesures qui rendent la mise en bouteille plus ou moins pénible. Mais vous ne pouvez faire que tant de choses avant que votre code ne devienne un gigantesque gâchis difficile à entretenir, sujet aux erreurs et gênant les utilisateurs légitimes. En attendant, les botteurs trouveront toujours le moyen de vaincre vos contre-mesures:
- Il y en a plus que toi
- Ils ont plus de temps libre (vous devez diviser le temps entre le développement réel et la vérification des bogues, ils peuvent pirater leur code de bots toute la journée)
- Lorsque vous créez des sauvegardes extravagantes et difficiles, les auteurs de bot seront encouragés car il est amusant de casser la protection de votre bot
- S'il y a un marché noir de personnes qui tirent des profits commerciaux de bots, plus vous aurez du mal à écrire un bot, plus les bots de travail auront de la valeur, alors vous inciterez le botting
Vous serez fondamentalement pris au piège dans une course aux armements avec les botteurs, et basé sur une logique allant dans le sens des points ci-dessus, ainsi que sur mon expérience avec de tels jeux, vous ne pourrez pas suivre le rythme.
Certains développeurs de jeux utilisent des mesures anti-triche extrêmement agressives: par exemple, Steam analysera la mémoire et le système de fichiers pour rechercher des piratages, et les contrevenants pourraient être punis par la perte de comptes valant des centaines de dollars. Pourtant, il y a encore des robots et d'autres hacks pour les jeux Steam, et certains d'entre eux travaillent même la moitié du temps. Contrairement à eux, vous avez une API largement ouverte à l'utilisateur, sans aucun contrôle sur l'ordinateur de l'utilisateur. C'est une bataille difficile depuis le début.
Le problème que vous essayez de résoudre est essentiellement un test de Turing: sauf qu'il s'agit d'un test de Turing très facile, car vous ne pouvez pas tricher en exigeant des problèmes d'intelligence artificielle tels que la langue. Peu importe le nombre d'heuristiques que vous créez, il serait trivial pour un botter d'ajouter un peu de hasard à l'action du bot pour qu'il imite presque exactement un humain. Il ne serait même pas très difficile que le bot vous regarde un peu, et apprenne à chronométrer des actions exactement comme vous. Ensuite, lorsque vous bannissez le bot, le botter publie une énorme énonciation sur le forum, expliquant qu'il n'est qu'un joueur dévoué (et qu'il est peut-être un faux positif) et que votre public cible de joueurs hardcore se soulèvera contre vous.
Rendre le jeu trop amusant pour bot
La principale raison pour laquelle un utilisateur utilise un bot est qu’il souhaite ignorer une partie du jeu. S'ils appréciaient le jeu et le trouvaient amusant, ils ne le laisseraient pas jouer par le bot, ils le joueraient eux-mêmes.
Mais si le jeu est si ennuyeux, pourquoi le jouer du tout? Vraisemblablement, certaines parties du jeu sont ennuyeuses et obligatoires pour accéder à des parties amusantes. Par exemple, dans les MMO, tout le monde aime monter de niveau, mais personne ne veut tuer 42 324 rats empoisonnés mort-vivants pour obtenir le XP. Alors, ils laissent le bot jouer et viennent jouer le rôle amusant.
Ce n'est pas une critique de vous ou de votre jeu, mais clairement, au moins certains joueurs trouvent certaines parties de votre jeu fastidieuses. Vous devriez voir si vous pouvez réduire ces parties fastidieuses et envisager de prendre des décisions plus difficiles et plus significatives: les robots ne sont pas doués pour la stratégie en profondeur ou la pensée latérale par rapport à l'intelligence humaine et, en plus, les humains aiment prendre des décisions difficiles en matière de jeu.
D'après votre description, j'ai l'impression qu'il s'agit d'un jeu par navigateur similaire à Travian, où il existe une file d'attente de construction avec un seul ordre de construction unique et certaines tâches de "maintenance" (telles que la poursuite des raids agricoles) qui doivent être effectuées. Vous dites qu'il n'y a pas de conflit, mais dans tout drame MMO et toute politique mesquine est inévitable (l'OMI c'est l'attraction principale), je suis sûr que vos joueurs trouveront le moyen de se prendre la tête. Avec ces sortes de jeux, l'ennui provient en grande partie de ces tâches de «maintenance» - ce que les joueurs veulent vraiment faire est de faire des alliances et de jouer le jeu de la diplomatie avec des clans rivaux, la maintenance devient alors une sorte de taxe où il faut se réveiller jusqu’à une alarme aux heures impaires pour pouvoir entrer dans cette partie diplomatique amusante. Alors coupez l'ennui:
Cette approche peut ne pas toujours fonctionner, malheureusement. Tous les joueurs n’ont pas la même tolérance à l’ennui ou le même concept de plaisir. Vous pourriez avoir un mécanicien de premier plan que 99% de vos joueurs apprécient, mais le 1% le trouve ennuyeux. Et si le 1% commençait alors à écrire des bots, ruinant le plaisir pour le 99%? Mais finalement, c'est une question de degré. Vous ne pouvez jamais supprimer complètement la mise en bouteille, mais vous pouvez minimiser les dégâts.
Bouteilles Undercut
Une grande partie des effets vraiment négatifs des bots provient des auteurs qui commercialisent leurs travaux. Si tel est le cas pour vous, vous pouvez simplement rivaliser avec les robots. De nombreux jeux en ligne basés sur le temps réel possèdent déjà des fonctionnalités haut de gamme permettant le saut de temps et l'automatisation (telles que les files d'attente de construction étendues). Cela équivaut à un bot officiel sanctionné par le développeur. Si vous en avez et que vous leur attribuez un prix approprié, les joueurs achèteront votre prime au lieu d’acheter des robots. La bonne nouvelle est que vous êtes en charge de l'API. Vous disposez donc toujours d'un avantage considérable pour développer une automatisation de qualité pour votre propre jeu. Cette fois, c'est une bataille perdue pour les botteurs.
Cela n'éliminera pas les botteurs amateurs ou les personnes qui estiment que votre prime n'est pas d'un bon rapport qualité-prix. L'efficacité de cette approche dépend donc à nouveau de la situation.
Les chercher manuellement
Comme je l'ai dit ci-dessus, ce que vous faites est essentiellement un test de Turing. Étant donné que l’interaction avec les humains est considérée comme un défi difficile au test de Turing, vous pouvez en tirer parti.
Inspectez manuellement les joueurs de haut niveau et voyez si vous trouvez quelque chose de suspect. Vous pourrez peut-être même vous en sortir en les sondant de temps en temps d'une manière limitée à votre imagination, pour voir si vous pouvez tromper le bot pour qu'il fasse quelque chose qu'il ne ferait pas.
Bien qu’il soit difficile d’écrire un algorithme détectant les bots de manière fiable, il n’est pas si difficile pour un humain d’apprendre à les repérer. Je pense que beaucoup de jeux sur navigateur utilisent cette stratégie et elle peut être assez efficace. L'inconvénient est que, soit vous devez faire beaucoup de travail ennuyeux tout le temps, soit vous devez payer les maîtres du jeu pour effectuer une patrouille régulière.