Comment protéger votre tireur en ligne en temps réel contre les robots potentiels


14

Je cherche à créer un jeu de tir multijoueur de haut en bas. Bien que j'aie lu sur différents sujets, je peux les voir, j'ai de vrais défis à relever, mais je suis tout à fait prêt.

Une chose que je ne peux pas comprendre, c'est comment suis-je censé protéger le jeu des gens qui essaient de créer des robots?

Ce que je veux dire, c'est que, pour autant que je sache, il est impossible de protéger le trafic réseau de manière à ce que les joueurs ne puissent pas créer des programmes qui écoutent ce qui se passe et le comprennent.

Donc, ce qui m'inquiète, c'est que les gens peuvent créer des robots qui écoutent l'emplacement actuel des joueurs rivaux, et envoyer des communications qui imitent comme si le joueur tirait à l'endroit "parfait" exact pour gagner ce match.

Alors, quel genre de techniques sont utilisées pour protéger les jeux en temps réel contre de tels robots?

Je voudrais également mentionner que j'ai essayé de rechercher des discussions (car cela ressemble à quelque chose avec lequel beaucoup de gens ont du mal), mais je n'ai rien trouvé spécifiquement à ce sujet, uniquement dans le cadre de questions plus larges sur le réseautage dans les jeux en temps réel . Si j'aurais dû chercher plus fort, n'hésitez pas à me mettre à ma place :)


Punkbuster, hehe .. Il y a une raison pour laquelle il existe une application tierce qui détecte les applications tierces et les modifications :)
James

Pourquoi vous inquiétez-vous si les gens créent des robots? Peut-être que vous pouvez contourner cela, donc ce n'est tout simplement pas un problème.
Beska

@James Punkbuster est horrible. Beaucoup d'autres ont eu de mauvaises expériences en essayant de jouer à de nouveaux jeux lorsqu'ils sortent. Obtenez constamment un coup de pied pour une erreur punkbuster, pas amusant.
AttackingHobo

@Beska: aussi cool que cela puisse paraître, j'ai besoin de convaincre sérieusement que les bots ne détruiront pas le jeu pour les joueurs non-bot. Je suis sûr qu'un jeu pourrait être conçu où les bots ne gâcheraient pas l'expérience. Je suis certain que pour la plupart des jeux multijoueurs en ligne, il n'est pas trivial de rendre la mécanique du jeu à l'épreuve des bots.
deft_code

@AttackingHobo Tout ce que je voulais dire, c'est qu'il y a des entreprises entières qui ne font que tenter de trouver une solution à ce problème. PunkBuster n'est qu'un des logiciels les plus connus qui tentent de faire cela, bon ou mauvais :)
James

Réponses:


8

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.


1
Je doute que vous ayez trouvé un gars avec un robot mécanique. C'était probablement un bot logiciel qui émulait un clavier matériel pour les entrées.
AttackingHobo

2
Non, un véritable robot mécanique. L'auteur nous a envoyé des photos. Malheureusement, ils sont déjà supprimés du serveur (c'était en 2007!), Vous devrez donc me croire sur parole.
Nevermind

Merci pour la réponse. Je suppose que le chiffrement pourrait «élever un peu la barre» et protéger de nombreux pirates informatiques. Mais un véritable chiffrement des communications serait-il pratique dans les jeux à temps critique tels que les tireurs, ou même les MMO?
Zaky German

Aucun des jeux sur lesquels j'ai travaillé n'a utilisé de cryptage, sauf la séquence de connexion, donc je ne sais pas à quel point cela affecte le décalage. Cela dépend de l'algorithme de chiffrement, je suppose.
Nevermind

2

Je ne m'attendrais pas à ce que les grands joueurs parlent de ce qu'ils font pour protéger leurs jeux. Moins les gens savent ce qu'ils font, plus il est difficile pour les gens de contourner ce problème. Je pense qu'une partie de ce que fait Steam est de rechercher certaines applications en cours d'exécution qui sont sur une liste noire.

Personnellement, j'essaierais de crypter et de brouiller la communication autant que possible entre les machines communicantes, il pourrait être utile de lire sur la façon dont https / ssl fonctionne pour obtenir des idées. Si les hôtes devaient générer des clés publiques / privées aléatoires et n'envoyer la partie publique qu'à d'autres clients, quelque chose ne pourrait pas facilement intercepter et modifier le contenu des packages envoyés, bien que si vous avez accès au client machine alors rien n'est complètement sécurisé.

Vous devrez également vous assurer que l'exe client n'est pas altéré.


1

Concevez votre jeu de sorte que le travail d'équipe et les décisions intelligentes soient plus importants que de pouvoir viser parfaitement. Il devient exponentiellement plus difficile de créer des robots décents.


Je pense que les jeux qui dépendent du travail d'équipe et de la préparation, et les jeux qui dépendent des compétences de twitch pur ont leur place. Je ne pense toujours pas que quiconque devrait adapter ses choix de conception de jeu aux obstacles techniques
Zaky German

@Zaky: J'ai une fois prototypé un jeu de style vers où, lors d'une mort subite, l'écran se remplissait lentement d'un fluide SPH. Ça avait l'air vraiment cool jusqu'à ce que le jeu soit mort. Je pense que de nombreuses décisions de conception de jeux sont prises par des obstacles techniques.
deft_code

@deft_code Je voulais dire la conception de jeux comme dans la mécanique de jeu, pas la conception artistique ou graphique
Zaky German

Mon utilisation de SPH est autant un mécanisme de jeu que la mort aqueuse des vers. Je change juste la façon dont l'eau interagit avec le jeu.
deft_code

0

Et posez-vous la question la plus importante de savoir si cela en vaut la peine. Les tricheurs et les embouteilleurs peuvent faire 2 choses:

  1. détruire le jeu pour eux-mêmes. Ils ne peuvent pas jouer sans le bot, ils perdent rapidement de l'intérêt et partent parce que ce n'est pas amusant.
  2. détruire le jeu pour les autres. Ils deviennent trop puissants grâce à leur bot, ce qui vous coûte des clients. Ceci est généralement accompagné d'un seul joueur contrôlant plusieurs robots à partir du même ordinateur physique (ou utilise beaucoup plus d'ordinateurs qu'un seul joueur peut contrôler manuellement).

Bien sûr, les deux ne s'excluent pas mutuellement.

Habituellement, alors le plus gros problème est 3+ (comme un être humain peut avec la formation utiliser 2 claviers ou autres périphériques d'entrée en même temps, mais pas plus car il n'a que 2 mains) des clients à partir des mêmes adresses IP (ou MAC) adresses) agissant à l'unisson direct, exécutant des commandes à quelques millisecondes les unes des autres. Donc, si vous détectez par exemple 5 clients provenant de la même adresse IP donnant tous des commandes à un taux anormalement élevé et à une coordination anormalement étroite, vous avez probablement trouvé votre botter. Habituellement, ce sera le plus dommageable dans les scénarios pvp où cette armée de bots peut dominer un engagement contre un nombre similaire de toons contrôlés par l'homme en raison de sa coordination et de sa vitesse plus élevées. Dans les scénarios pve, le jeu est généralement limité (sauf qu'il permet à une seule personne d'entraîner plusieurs toons à des niveaux élevés plus rapidement,

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.