J'ai eu le droit aussi a bon nombre de bug user, avec certaines exploitations de bug qui sature le serveur en prime. (Mais ça, c'est pas le genre de détail qui les gènes :/)
Pour mettre fin au bug user, il n'y as qu'une seul solution: trouver tout les bugs, les comprendre et les corrigés (Et bien entendue, pendre haut et cour les tricheurs).
Personnellement, j'ai passé plusieurs dizaines d'heures de programmation (en fait, on compterais plutôt en jour) pour faire des algos permettant de détecter ces abus.
Après coup, une technique c'est montré plus efficace que d'autres, je vais essayer de l'expliquer briévement.
J'ai tout d'abord détourner mon ancien script de statistiques auquel j'ai ajouté à chaque entrée (et donc, à chaque page chargé) la totalité des variables GET/POST ainsi que leur contenu, et bien entendu, j'ai ajouter un affichage "par joueur".
Ensuite, j'ai mis en place un script qui jongle sur deux sauvegardes de la base de données (pour l'exemple, on appelleras la première "Lundi" et la seconde "Mardi"), et pour chaque joueur je sélectionne ses ressources/armées dans la base du Lundi, je calcul les temps nécessaire aux construction/production/recherche en fonction de leurs bonus du Lundi, puis je compare les ressources/armées avec la base "du Mardi". S'il apparait que le joueur pouvait construire que X unités, et qu'il en as plus que X alors je considérais le joueur comme suspect.
Avec cette dernière technique du dois pouvoir trouver une grande partie de tes bug-user, a noter que personnellement j'ai fait tourner l'algo sur mes sauvegardes de bases de données en remontant jusqu'a 2 mois dans le passé. (Avec des sauvegardes à l'époque tout les 4 ou 5 jours).
Maintenant que tu as ceux qui ont utilisé des bugs, il reste trois choses à faire:
1-Différencier ceux qui ont subis le bug involontairement et ceux qui l'ont provoqué volontairement pour bannir les bons.
2-Trouver dans quels conditions le bug est réalisé.
3-Le corrigé.
C'est la qu'intervient le système dévié des stats. Personnellement (mais tu peut adopter une autre tactique), j'ai commencé les analyses en prenant sur de grandes largeurs de temps (Entre une sauvegarde début Janvier et une début février par exemple), et j'ai ensuite affiner mes recherches pour trouver a peu prêt quand à eu lieu l'exploitation du bug.
Une fois que tu as ta courte période pendant laquel tu sais qu'une personne à tricher, tu parcourt toutes les données issus du système de stat pour ce joueur durant cette période et tu cherche tout comportement anormal (Forte répétition d'une action qui est censé avoir lieu que 2 ou 3 fois, valeur des variables GET/POST anormal etc...)
De cette façon, tu rempli à la fois le point 1 et 2 car tu découvre l'origine de la faille, et tu peut regarder pour chaque personne suspect si c'est juste arrivé par hasard ou si c'était volontairement provoqué. (En général, ceux qui provoques volontairement des bugs doivent faire beaucoup d'essai).
Pour la correction, c'est à toi de jouer, mais en général une fois qu'on connait le bug ce n'est plus un problème.
J'avais d'ailleurs fait un défi sécurité sur l'un des bugs qui ma le pourrie la vie.
Désoler pour le post un peu long, surtout que c'était pas vraiment le sujet à la base.
Sinon, la 2éme chose qui pourrit l'ambiance est les multis, mais j'ai pas encore la solution miracle...
PS: Pour l'algo de comparaison des bases de données, il faut le faire tourner uniquement en local sur son poste de travail. Selon le nombre de joueurs et de base que j'analysai à la fois, le script prenait entre 5 et 15 minutes de calculs.
Pour mettre fin au bug user, il n'y as qu'une seul solution: trouver tout les bugs, les comprendre et les corrigés (Et bien entendue, pendre haut et cour les tricheurs).
Personnellement, j'ai passé plusieurs dizaines d'heures de programmation (en fait, on compterais plutôt en jour) pour faire des algos permettant de détecter ces abus.
Après coup, une technique c'est montré plus efficace que d'autres, je vais essayer de l'expliquer briévement.
J'ai tout d'abord détourner mon ancien script de statistiques auquel j'ai ajouté à chaque entrée (et donc, à chaque page chargé) la totalité des variables GET/POST ainsi que leur contenu, et bien entendu, j'ai ajouter un affichage "par joueur".
Ensuite, j'ai mis en place un script qui jongle sur deux sauvegardes de la base de données (pour l'exemple, on appelleras la première "Lundi" et la seconde "Mardi"), et pour chaque joueur je sélectionne ses ressources/armées dans la base du Lundi, je calcul les temps nécessaire aux construction/production/recherche en fonction de leurs bonus du Lundi, puis je compare les ressources/armées avec la base "du Mardi". S'il apparait que le joueur pouvait construire que X unités, et qu'il en as plus que X alors je considérais le joueur comme suspect.
Avec cette dernière technique du dois pouvoir trouver une grande partie de tes bug-user, a noter que personnellement j'ai fait tourner l'algo sur mes sauvegardes de bases de données en remontant jusqu'a 2 mois dans le passé. (Avec des sauvegardes à l'époque tout les 4 ou 5 jours).
Maintenant que tu as ceux qui ont utilisé des bugs, il reste trois choses à faire:
1-Différencier ceux qui ont subis le bug involontairement et ceux qui l'ont provoqué volontairement pour bannir les bons.
2-Trouver dans quels conditions le bug est réalisé.
3-Le corrigé.
C'est la qu'intervient le système dévié des stats. Personnellement (mais tu peut adopter une autre tactique), j'ai commencé les analyses en prenant sur de grandes largeurs de temps (Entre une sauvegarde début Janvier et une début février par exemple), et j'ai ensuite affiner mes recherches pour trouver a peu prêt quand à eu lieu l'exploitation du bug.
Une fois que tu as ta courte période pendant laquel tu sais qu'une personne à tricher, tu parcourt toutes les données issus du système de stat pour ce joueur durant cette période et tu cherche tout comportement anormal (Forte répétition d'une action qui est censé avoir lieu que 2 ou 3 fois, valeur des variables GET/POST anormal etc...)
De cette façon, tu rempli à la fois le point 1 et 2 car tu découvre l'origine de la faille, et tu peut regarder pour chaque personne suspect si c'est juste arrivé par hasard ou si c'était volontairement provoqué. (En général, ceux qui provoques volontairement des bugs doivent faire beaucoup d'essai).
Pour la correction, c'est à toi de jouer, mais en général une fois qu'on connait le bug ce n'est plus un problème.
J'avais d'ailleurs fait un défi sécurité sur l'un des bugs qui ma le pourrie la vie.
Désoler pour le post un peu long, surtout que c'était pas vraiment le sujet à la base.
Sinon, la 2éme chose qui pourrit l'ambiance est les multis, mais j'ai pas encore la solution miracle...
PS: Pour l'algo de comparaison des bases de données, il faut le faire tourner uniquement en local sur son poste de travail. Selon le nombre de joueurs et de base que j'analysai à la fois, le script prenait entre 5 et 15 minutes de calculs.
"L’avenir ne peut être prédit mais les avenirs peuvent être inventés"
Denis Gabor.
Denis Gabor.