JeuWeb - Crée ton jeu par navigateur
Une discussion de plus sur les moyens de détecter les comptes multiples - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Une discussion de plus sur les moyens de détecter les comptes multiples (/showthread.php?tid=6024)

Pages : 1 2


Une discussion de plus sur les moyens de détecter les comptes multiples - php_addict - 05-03-2012

Edit Sephi-Chan : Ceci est une séparation de sujet. Ici, on discute des moyens de détecter les comptes multiples. Pour parler du jeu, ça se passe dans Jeu de stratégie pacifique.

(05-03-2012, 04:56 PM)mano72 a écrit : Contexte : médiéval fantastique celtique

Type de jeu : jeu de stratégie multijoueurs coopératif par navigateur, basé sur l'entraide et la coopération.

Rythme de jeu : la partie n'a pas de durée déterminée. Chaque joueur pourra y consacrer le temps qu'il souhaite. Compter en moyenne environ 5 à 10 min de connexion par jour pour un joueur assidu.

Type de public visé et contraintes d'âge : 12-60 ans, geeks et non-geeks.

Financement du jeu : le jeu est totalement gratuit dans sa première version, et sera peut être amené à proposer des options payantes dans un second jet dans le but principal de rentabiliser les frais de location du serveur.

Technologies utilisées : le jeu est développé avec PHP, MySQL et jQuery.

Membres de l'équipe et leur situation : je suis actuellement seul à travailler sur le jeu et je suis webmaster freelance. Je recherche à constituer une petite équipe de graphistes, rédacteurs, community managers, développeurs, testeurs etc...

Nombre de joueurs : plus ou moins illimité (à mesure de la taille de la carte, et la capacité du serveur, etc.).

Description générale et but du jeu

Le joueur incarne un dieu en charge de s’assurer du bon développement de sa civilisation tout en tenant compte du bon développement des civilisations voisines des autres joueurs.

Chaque joueur en début de partie choisis sa divinité parmi les quatre qui lui sont proposé (déité de l’eau, déité du feu, déité de l’air, déité de la terre), qu’il gardera tout au long de sa partie.

Une fois sa divinité choisie, il dispose alors d’une île composée d’un certain nombre de tuiles hexagonales (vues en 2D isométrie) imbriquées les unes aux autres, pour pouvoir y développer la civilisation dont il sera en charge.

Au rythme des naissances et donc de la croissance du peuple sur son île, le joueur devra :
- nourrir son peuple convenablement pour s’en assurer la survie et la bonne santé
- aider son peuple à coopérer avec les peuples des autres joueurs pour en assurer le bonheur et la prospérité

Le joueur devra pour suivre ces deux lignes directrices :
- entraîner ses villageois à obtenir diverses qualifications (paysans, bûcherons, mineurs, druides, diplomates)
- exploiter les ressources naturelles de son île en veillant à ne pas les épuiser, ni les gaspiller.
- construire de nouveaux bâtiments (habitations, fermes, scieries, carrières de pierre, auberges)
- accroître, à l’aide de pouvoirs divins, la surface habitable de son île et contribuer à en régénérer les ressources naturelles
- inviter d’autres joueurs sur son île et se faire inviter sur les îles des autres joueurs dans une optique de coopération donnant-donnant

Plus le joueur coopérera avec les autres, plus sa force divine augmentera rapidement et plus il lui sera aisé de progresser selon les deux lignes directrices qui lui sont proposées..

Coopération avec les autres joueurs

Lorsque le joueur se développe sur son île (ou sur celle d’un autre joueur), plus le pouvoir de l’élément de sa déité sur cette île augmente (eau pour la déité de l’eau, feu pour la déité du feu, etc.).

Pour qu’une île puisse apporter à ses habitants les conditions nécessaires (ressources naturelles, fertilité) à sa survie et a la prospérité de leur civilisation, les pouvoirs des quatre éléments doivent y être en équilibre (idéalement : pouvoir de l’élément eau = pouvoir de l’élément terre = pouvoir de l’élément air = pouvoir de l’élément feu).

Par exemple : si il y a une dominance de l’élément feu ou de terre, la terre sera peu fertile (sécheresse, terre aride). Par ailleurs, si il y a une dominance d’air ou d’eau, la terre se montrera également peu propice au développement des cultures (inondations, tempêtes).

Puisque chaque ressource naturelle de île est indispensable à la construction de bâtiments, aux cultures et donc au développement d’une civilisation saine et prospère, chaque joueur sera constamment en recherche de nouveaux alliers, dont les divinités lui apporteront le pouvoir d’un élément dont il manque. Pour qu’une coopération soit efficace il sera amené à partager ses terres, ses ressources et ses connaissances et user de diplomatie pour pouvoir se développer les terres des civilisations voisines et leur apporter du soutien en retour.

Classement des joueurs

Le classement d’un joueur évoluera constamment et se fera sur plusieurs critères, chacun relevant plus ou moins de la capacité de ce dernier à coopérer avec les autres :

- Nombre de joueurs invités sur son île et surface dont ils disposent
- Surface totale occupée par sa civilisation sur son île et sur celle des joueurs avec lesquels il coopère.
- Surface de son île


Jeu de stratégie pacifique

très intéressant, bravo très jolie description

tour par tour ou temps réel ?

si tout les jeu est basé sur la coopération il va falloir lutter contre les multi-comptes


RE: Jeu de stratégie pacifique - mano72 - 05-03-2012

Merci pour tes encouragements php_addict

Le jeu sera basé sur du temps réel.

La remarque que tu fais est très pertinente.

A ce que j'en comprends à ce jour, la méthode la plus efficace pour lutter contre les multi-comptes est d'interdire de s'inscrire 2 fois via la même IP (problème qui malgré tout peut être facilement contourné en réinitialisant sa box)

Existe t'il d'autres méthodes pour éviter ce genre de problèmes ?


RE: Jeu de stratégie pacifique - archANJS - 05-03-2012

Très bonne idée, j'aime beaucoup le concept Smile

Il n'existe pas vraiment de moyen ultime pour bloquer le multicompte. C'est plutôt une traque (incessante).

Tu enregistres sous forme de logs les rapports d'activités sensibles (la construction d'un bâtiment ne l'est pas, mais le don de ressources oui, par exemple), généralement les interactions entre joueurs. Tu enregistres aussi les données du joueur (email, mot de passe, pseudo, etc) qui pourraient être similaires. Tu peux aussi enregistrer les heures et IP de connexion. Par après, c'est juste de faire un module / système qui vérifie au préalable ces données et fait une préselection.

Ensuite, il te faudra (toi ou ton équipe) comparer les données et en tirer une conclusion. Par exemple, deux joueurs ayant un email, un pseudo et un mot de passe semblables (ex.: email_a_jp@hotmail.com & 2e_email_a_jp@hotmail.com, jeanpierre & jeanpierre2, le même mot de passe), qui s'envoient fréquemment des ressources.. Aucun doute que c'est un multi.

Après faut faire gaffe au multi familial ou aux personnes utilisant un accès Internet public.


RE: Jeu de stratégie pacifique - mano72 - 05-03-2012

Merci archANJS pour cette approche technique qui révèlent le fait qu'il est irréaliste d'envisager d'appliquer un système qui bloquerait automatiquement les joueurs utilisant plusieurs comptes pour jouer.

Cela me conforte par ailleurs dans l'idée que l'on puisse faire jouer plusieurs personnes partageant la même connexion internet favorisant ainsi le jeu en famille.




RE: Jeu de stratégie pacifique - Sephi-Chan - 05-03-2012

Je pense qu'il faut archiver toutes les actions : ça permet de repérer des périodes d'activités similaires entre plusieurs comptes. Même si certaines plages risques d'être naturellement utilisées régulièrement (autour de 12h et de 20h, par exemple), ça permettra de facilement faire correspondre l'activité de 2 comptes suspects.


RE: Jeu de stratégie pacifique - php_addict - 05-03-2012

(05-03-2012, 08:27 PM)Sephi-Chan a écrit : Je pense qu'il faut archiver toutes les actions

ah oui, dans TOUT les cas il faut tout archiver, soit pour surveiller les actions des utilisateurs, soit simplement pour debuggage du genre le jour où un joueur te dit : "mon pseudo est BOB, j'ai construit une ferme mais à la place cela m'a construit un pigeonnier"




RE: Jeu de stratégie pacifique - mano72 - 06-03-2012

(05-03-2012, 09:39 PM)php_addict a écrit :
(05-03-2012, 08:27 PM)Sephi-Chan a écrit : Je pense qu'il faut archiver toutes les actions

ah oui, dans TOUT les cas il faut tout archiver, soit pour surveiller les actions des utilisateurs, soit simplement pour debuggage du genre le jour où un joueur te dit : "mon pseudo est BOB, j'ai construit une ferme mais à la place cela m'a construit un pigeonnier"

Vos remarques me semble très pertinentes. Toutefois cela doit représenter un boulot de dingue de consulter les logs qui répertorient la moindre action des utilisateurs et de faire des recroisements pour analyser les dysfonctionnements et les fraudes.

Comment trouver un juste milieu entre générer :
- pas assez de log, au risque de passer des coquilles et des fraudes,
ET
- trop de log, au risque de se noyer dans des pages et des pages pages de logs et de se choper au final rien de plus qu'un sacré mal de crâne ?






RE: Jeu de stratégie pacifique - php_addict - 06-03-2012

moyen de détection automatisé, mais c'est clair que c'est chaud...


RE: Jeu de stratégie pacifique - atra27 - 06-03-2012

Suffit de ce coder un lecteur de log... qui va détecter les fraudes...

Par exemple pour detecter le multi:

On représente, via un objet, ou quelque chose d'autre, une liaison entre deux joueur.
Au début on initialise toutes les liaisons entre tous les joueurs du jeu avec un degré de multi égal a zéro.

Puis on parse toutes les actions du jeu depuis les logs:
Quand deux joueurs s'envoient des ressources: on augmente le degré de 1
Quand deux joueurs se connectent a plus ou moins 2 min d'intervalle, on ajoute 1
Quand deux joueurs s'envoie un message, on retire 1 (un multi ne s'enverra probablement jamais de message a lui meme sur son second compte)
Quand deux joueurs attaquent la meme cible souvent, on ajoute 1
Quand un joueur scanne, et que l'autre attaque, sans envois de message, on ajoute 5

A la fin, le script génère un classement, tu contrôle manuellement les joeurs qui on des liaisons avec un indice élevé.

Manuellement, tu peut comparer les IP (la meme, aux memes heures), les pseudos (atra, atrakeur, etc), les mails...
Bref tout ce qui peut l'être! Et enfin quand tu est bien sur de toi... tu bloque...

Pour le cheat, on peut appliquer le meme principe:
On inscrit le joueur avec un indice de 0

A chaque action frauduleuse (prix négatif, id incorrect), tu ajoute 1 a cet indice.

Enfin, quand il te prend l'envie d'ouvrir la chasse au cheat, tu regarde les 10 premiers au classement du plus haut indice (ORDER BY... LIMIT 10), tu verrifie manuellement les logs personnels des joueurs en question, et enfin si il y a cheat avéré, tu bloque!

On peut pousser le vice plus loin en intégrant deux systemes de logs:
- un log classique (actions sensibles uniquement)
- un log étendu (toutes actions)

Par défaut, les user sont en log classique, mais si leur indice dépasse un seuil (ou que l'admin coche la case correspondante dans son panel), on passe en log étendu...

Ainsi, tu limite considérablement la quantité de logs a verrifier manuellement, tout en étant assez large pour englober la majoritée des cheaters!

Personnellement, je ne bloquerais le cheater que si son comportement pose un probléme dans le jeu (déséquilibre?)
Il ne faut pas oublier qu'un tricheur, prend souvent le jeu très a coeur, et est donc plus enclin a acheter les éléments payants du jeu!)
Ainsi, la page la plus importante que tu dois garder a l'oeil, est celle du classement général de ton jeu! (un tricheur montera plus vite que les autres)

Je pense aussi qu'il peut est intéréssant, une fois le tricheur détécté, de s'amuser avec avant de le bloquer...
J'entend par la, chercher comment il fait, et corriger pour voir si il trouve une parade a la correction...
ça rend le méchant tricheur utile car il t'aide a trouver les problemes de ton jeu, et comme les bloquages par IP ne sont pas fiables (et il peut se recreer un compte), corriger le problème a la source est la seule vraie solution!

Un dernier conseil: rien ne remplace le jugement humain! un anti cheat automatique est a la fois moins efficace contre les vrai cheaters, mais aussi moins juste envers l'user lambda qui s'est simplement gouré en ajoutant un - ou des <> dans un message...


RE: Jeu de stratégie pacifique - Ter Rowan - 06-03-2012

(06-03-2012, 02:44 PM)atra27 a écrit : Quand deux joueurs s'envoie un message, on retire 1 (un multi ne s'enverra probablement

si si je l'ai déjà fait y a longtemps :p

sinon l'idée globale me parait pertinente, même si ça ne fournit que des indices et pas des certitudes