Anti-Cheat for MMO issues and solutions? [fermé]


14

La plupart des jeux en ligne souffrent de ce problème et il existe des sociétés de logiciels pour couvrir ce problème, mais récemment, d'après ce que j'ai vu, la plupart des sociétés tentent d'éviter que ces programmes ne créent leur propre système (blizzard avec gardien, aion avec leur propre vérification, etc. ...) mais il est très difficile d'empêcher de tels ...

Je voulais juste dire que j'ai fait un autre sujet de question en tant que wiki communautaire spécifique pour publier des applications.Ce sont les fonctionnalités et les idées derrière cette question ici ne sont pas de les énumérer, mais plutôt d'en savoir plus sur vos tentatives, les problèmes en cours de route et les solutions possibles. , morceau de codes si application et ainsi de suite.

Quel type de protection utilisez-vous pour (essayer) d'empêcher de tels actes:

  1. Logiciel anti-triche? (veuillez indiquer les raisons, les problèmes et les problèmes que vous avez rencontrés, par exemple, aion a cessé d'utiliser GameGuard au stade bêta en raison d'un grand nombre de problèmes de compatibilité et se plaint de leurs utilisateurs)
  2. Votre propre code? (quel type de vérification exécutez-vous habituellement pour vous assurer des joueurs de mauvaise foi, par exemple speedhack, vérifier le nouvel emplacement par rapport à la vitesse + dernier emplacement, etc ...)
  3. Aucun, je m'en fiche? (une raison personnelle ou une contribution que vous aimeriez partager?)

Un morceau de code intéressant lié au problème que vous souhaitez publier?

N'hésitez pas à retravailler mon texte mon anglais inst that great? **


1
Tag fait. Si vous vous attendez à ce que cela ait une grande quantité de réponses, veuillez en faire un wiki communautaire. Il permettra à plusieurs personnes de modifier des réponses individuelles au lieu de les répéter constamment.
Jesse Dorsey

1
Pour un exemple de la façon dont cela pourrait être bénéfique. Découvrez ceci: gamedev.stackexchange.com/questions/480/…
Jesse Dorsey

Merci pour le commentaire et les liens, je vais le vérifier maintenant et voir, à mon avis, ce genre de question pour le développement de jeux est un très bon point de discussion mais la plupart pour les jeux MMO je crois donc je ne suis pas sûr, aussi le la communauté est assez petite au moment et j'avais peur d'être négativé pour une telle question pour commencer donc je ne suis pas sûr, merci d'avoir créé le tag :)
Prix

Réponses:


22

Malheureusement, il est vraiment difficile d'empêcher les gens de tricher, c'est pourquoi un logiciel comme Punkbuster a été créé pour essayer d'attraper certains d'entre eux.

Pour un MMO, la plus grande chose que vous puissiez faire est de ne pas faire confiance à ce que le client vous envoie . Le client ne doit pas être en mesure de vous dire où le joueur s'est déplacé, combien de dégâts il a infligés à qui, etc. 1000 fois en 1 seconde, par exemple, n'est pas valide), puis mettez à jour la simulation sur le serveur. Vous renverriez alors les parties pertinentes du nouvel état du jeu au client.

Pendant que vous validez la saisie des utilisateurs, il est également possible de rechercher des tendances dans leur saisie. Si vous n'autorisez pas les macros, vous pouvez les attraper ici en remarquant que l'utilisateur a cliqué sur le même bouton aux mêmes coordonnées de pixels exactes à des intervalles de 1 seconde parfaits au cours des 30 dernières minutes.

Le client lui-même est le principal endroit où les gens peuvent tricher, donc des programmes comme Punkbuster peuvent réduire les wallhacks, les aimbots, etc. À part cela, ne pas faire confiance au client et valider tout ce qui vous est envoyé par le client aidera à réduire la tricherie.


Merci pour votre contribution, j'espère voir plus de personnes faire leur entrée; En effet, c'est un problème très difficile à contrer ... Il y a aussi ceux qui sévissent contre le jeu pour désactiver le moteur anti-triche et il est appelé depuis ce qui rend les choses encore plus difficiles ... à moins que vous n'ayez un GM vérifiera cette personne ou d'autres vérifications comme vous l'avez indiqué. que penseriez-vous de cette question pour le wiki communautaire? devrais-je garder tel quel ou changer quelque chose pour l'adapter;
Prix

Probablement un wiki communautaire à moins que vous ne cherchiez une réponse spécifique.
Sean James

Plus de détails sur le fonctionnement de Punkbuster pour une réponse plus complète?
Chris Lloyd

Bonne réponse - il n'y a pas «une seule solution pour les gouverner tous» - la plupart des jeux ont plusieurs «vecteurs d'attaque». Souvent, il s'agit avant tout d'évaluer les risques, c'est-à-dire quel est l'impact sur la communauté si quelqu'un peut tromper le système X, etc.
zebrabox

Je crois que le piratage est inévitable, même avec le programme anti-triche le plus puissant. La tricherie est acceptable si hors ligne techniquement mais pas en ligne. Jouer en ligne est plus une question d'équité. Est-ce vrai?
David Dimalanta

8

Enregistrement. Tout ce qui se passe sur le serveur doit être enregistré, et idéalement tout ce qui vient du client. Le client est intrinsèquement non fiable, mais même la journalisation de données non fiables peut être éclairante.

Une fois que tout est enregistré, la détection de triche devient une question d'analyse des données. Certains tricheurs seront évidents (des valeurs hors des limites acceptables, par exemple pouvoir se déplacer entre des points beaucoup plus rapidement que l'avatar ne le permet normalement), d'autres sont plus insidieuses (comme les aimbots permettant un ciblage parfait des pixels dans des délais artificiellement courts). Certains sont encore plus difficiles à détecter (comme les wallhacks), mais l'enregistrement autant que possible permet une détection automatique et manuelle. Il existe divers articles à ce sujet, mais généralement les tricheurs sont très facilement repérés dans la détection automatisée car ils sont tellement prévisibles / répétables, exactement comme les joueurs humains ne le sont pas.

Comme l'enregistrement absolument tout est irréalisable, une journalisation à plusieurs niveaux est utile. Par exemple, des rapports de tricherie par les utilisateurs, ou une simple journalisation de base qui détecte la possibilité de tricherie (score qui sont bien au-dessus de la courbe statistique), serait suffisant pour signaler un client / compte / clé CD particulier pour une journalisation plus détaillée, ce qui pourrait être ensuite utilisé pour prouver hors de tout doute raisonnable qu'une triche est en cours d'utilisation.

Ce que vous faites lorsque vous détectez une fraude est une tout autre affaire. L'interdiction de compte après coup est bonne, surtout lorsque vous disposez d'un mécanisme de détection automatisé suffisamment fiable. L'interdiction précoce avertit les tricheurs qu'ils sont détectés et court également le risque de faux positifs en raison de mécanismes de détection non concluants. Interdire trop tard risque de ruiner l'expérience de jeu pour les autres. Il s'agit d'une zone très grise, et les développeurs doivent faire leur jugement.


2

En supposant que tout le travail important dans votre jeu se déroule côté serveur, il devrait y avoir peu ou pas de triche possible. Si vous souhaitez restreindre la macro ou la rendre désagréable pour les utilisateurs à modifier des paquets, demandez à votre programme de rechercher périodiquement des modules actifs dans son processus. Si vous trouvez par exemple WpeSpy.dll, vous saurez qu'ils ont WPE attaché. Faites-le pour les autres outils courants. Cela peut être contourné, et c'est une course aux armements et une cause perdue, mais si votre jeu est relativement petit, vous pouvez très facilement réduire le nombre de personnes qui se trompent d'environ un facteur dix ... et cela peut être bien assez pour toi.


Merci pour la contribution, avez-vous utilisé un logiciel anti-triche ou avez-vous eu ce problème de type dont vous avez dû vous occuper? si c'est le cas, ce serait bien d'en entendre parler.
Prix

2
Je n'ai utilisé aucun logiciel anti-triche tiers, non. Cependant, lorsque j'ai commencé à coder un RPG en ligne, mon serveur a simplement appelé «attaque» lorsque le client a envoyé «attaque», au lieu de placer la demande dans une file d'attente, des choses comme ça. Ce sont les plus importants pour prévenir la tricherie. Accélérez les hacks, faites tout le chronométrage sur le serveur afin qu'ils n'obtiennent que peu d'avantages, mais envoyez également des horodatages, et si vous obtenez trop de dérive, vous saurez qu'ils en utilisent un. Marquez leur compte, mais ne les lancez pas immédiatement - une rétroaction immédiate est un excellent moyen pour quelqu'un de savoir ce que votre logiciel détecte.
James Bellinger

1
J'aime cette partie sur laquelle but also send timestamps, and if you get too much drift, you'll know they are using one. Mark their account, but don't kick them immediately -- immediate feedback is a great way for someone to know what your software detects.je cherchais récemment à implémenter un système d'horodatage et d'avertissement des utilisateurs marqués, actuellement ce que j'ai mis le lecteur sur une liste sur laquelle je travaille maintenant, c'est que si certains ont une utilisation abusive élevée, il enverra une alerte à un GM en ligne pour vérification ...
Prix
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.