JeuWeb - Crée ton jeu par navigateur
Anti-triche - 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 : Anti-triche (/showthread.php?tid=4319)

Pages : 1 2 3 4


RE: Anti-triche - Blarg - 01-09-2009

Si l'état du combat était enregistré en BDD à chaque étape, ce «hack» de ton jeu serait impossible. Il faudrait que ton script vérifie où en est le joueur avant d'accepter sa requête (était-il en combat à la dernière requête?). Ainsi, même si il tente de revenir sur la page d'avant, ton script saura où en était rendu le combat et ne se laissera pas berner aussi facilement. Ça pourrait être bêtement un champ booléen «en_combat» d'ajouté à chaques perso, couplé à une table qui liste les combats en cours (un champ joueur et un champ monstre). Si le champs «en_combat» est == TRUE, mais que le joueur fait une requête hors contexte tu pourras ignorer cette demande et renvoyer la page de combat au point où il en était rendu.

Je te conseille de réviser comment est conçu ton jeu, car si cette faille est présente ici, elle l'est fort probablement ailleur aussi.

C'est un peu comme si en gagnant un combat, on chargait directement depuis le navigateur la page «victoire.php» qui donne de l'expérience et de l'or. Qu'est-ce qui empêche le joueur de recharger continuellement cette page pour gagner des niveaux et de l'argent sans péril?


RE: Anti-triche - Gabriel - 01-09-2009

"Ça pourrait être bêtement un champ booléen «en_combat» d'ajouté à chaques perso, couplé à une table qui liste les combats en cours (un champ joueur et un champ monstre). Si le champs «en_combat» est == TRUE, mais que le joueur fait une requête hors contexte tu pourras ignorer cette demande et renvoyer la page de combat au point où il en était rendu."

C'est ce sur quoi je viens de me lancer ==> j'ai créer un champ "tricheur" dans ma BDD. Au début du combat je part du principe que le joueur est un tricheur (pas très classe mais ça marche très bien)

Lorsque le combat se termine, et qu'il clique sur "retour au jeu", je met "tricheur = FALSE"

Donc si il quitte le combat en plein milieu, le booléen reste TRUE et quand il arrive sur la page principale => Paf il est renvoyé dans le combat avec un malus en vie pour la peine !

Je pense que ce système devrait calmé plus d'un tricheur car le malus en vie est conséquent Smile


RE: Anti-triche - Yoda54 - 01-09-2009

Un orage, une micro-coupure électrique qui reboote l'ordi et pan! un malus conséquent alors que l'on a pas tenté de tricher...Ce n'est qu'un sentiment personnel mais si une telle chose m'arrive dans un jeu, je vais voir ailleurs.


RE: Anti-triche - Sephi-Chan - 01-09-2009

Idem.


Sephi-Chan


RE: Anti-triche - Blarg - 01-09-2009

Idéalement, il faudrait que ce soit impossible de tricher. Je ne crois pas non plus que de punir les tricheurs soit la bonne solution: le système que je t'ai suggéré te permettrai d'empêcher cette forme de triche.

Si un joueur quitte en plein combat, en se reconnectant, il devrait se trouver exactement dans la position où il se trouvait en quittant: si il était en combat contre trois goblins d'un un est mort et un deuxième est à 50% de vie, le joueur devrait se trouver au même point.


RE: Anti-triche - wild-D - 01-09-2009

(01-09-2009, 11:44 AM)Yoda54 a écrit : Un orage, une micro-coupure électrique qui reboote l'ordi et pan! un malus conséquent alors que l'on a pas tenté de tricher...Ce n'est qu'un sentiment personnel mais si une telle chose m'arrive dans un jeu, je vais voir ailleurs.

je dis pas que je ferais pas pareil ^^

mais perso je vois pas en quoi le principe de culpabilité implicite serait si mauvais (le délire du "on est innocent tant qu'on a pas prouvé le contraire" y a des situations ou j'ai aucun problème à ce qu'on lui torde le cou; surtout quand on se doute que y a des joueurs qui profitent du système pour frauder).
franchement une micro-coupure tu vas pas en avoir 15 par jours normalement; donc en gros 1 combat perdu sur XYZ à cause de ça, alors que ça permet de limiter bcp plus les tentatives volontaires de déconnexion sauvage. Me semble que la balance des intérêts est plutot favorable. Principe de primauté de l'intérêt génral sur un intérêt individuel (c'est effectivement chiant pour ceux qui ont des connections pourraves; ou qui se retrouve dans les cas particuliers "faux-tricheurs").

reste que là, l'exemple se prête facilement à arrondir les angles:
- un mec qui est en train de largement gagner: il a aucun réel intérêt à quitter le combat; si il quitte le combat c'est surement pas volontairement.(trad: neutralisation du flag quand le joueurs est en train de gagner largement)
- avoir un seuil de tolérance pour les vrai accidents, 1 déco sur 10 combat, ou sur 100 ou autre....

et le plus évident, étant d'avoir un système résilient (càd enregistrement à chaque action de l'état du combat) comme le suggère blarg:
- si tu reprends le combat où il en était... ça signifie que la tentative de déco/triche à pas marché. En fait ça a été sans effet sur le combat, non ? Donc autant que la sanction soit proportionnelle au gain possible: gain potentielle d'une déco sauvage avec nouveau système: 0; sanction en cas de déco sauvage détectée = x*0 ^^ bref me semble que y a plus de réelle raison à sanctionner. (enfin tu peux toujours garder un petit compteur pour le plaisir Big Grin)


RE: Anti-triche - Yoda54 - 01-09-2009

Les raisons qui peuvent amener à une déconnexion sont nombreuses, cela n'arrivera évidemment pas tous les jours mais c'est une possibilité qu'il faut à mon avis prendre en compte.

Sinon, le "on est innocent tant qu'on à pas prouver le contraire" est à mon sens tout sauf un délire (et heureusement la base de notre droit national).
Que le principe de primauté de l'intérêt général prime sur l'intérêt particulier dans un jeu vidéo, je suis tout à fait d'accord avec toi. Mais dans le cas présent, avec la solution qui a été proposée, quel risque y a-t-il pour l'intérêt général? Tu le dis toi-même dans ton dernier paragraphe: aucun. Seul l'intérêt particulier peut donc être affecté et pas toujours à bon escient, ce qui est à mon avis une mauvaise chose.


RE: Anti-triche - Ter Rowan - 02-09-2009

oui enfin ...

d'une, en tant que joueur, si je suis accusé de triche alors que ce n'est pas le cas par un algorithme bidon, je considère surtout que le concepteur du jeu est un branque et je me barre du jeu, considérant la qualité du programme équivalente sur toutes ses parties, je crains des bug ailleurs (sans côté le caractère qui s'y mêle) D'autant plus que en simple utilisateur du web, j'utilise les boutons précédent suivant et raffraichir (y a pas que précédent qui peut provoquer des failles..)

de deux, en tant que membre du forum, j'estime que si on est capable de faire ce que tu decris wild-d (a savoir identifier qui est en train de gagner) c'est que quelque part on est capable de garder coté serveur qui gagne qui perd, du coup on est capable de faire ce que disent les camarades à savoir contrôler côté serveur l'état exact des combats. Donc on est capable d'éliminer une faille de sécurité, sans avoir à culpabiliser qui que ce soit

Et finalement, peu importe la moralité tricheur / anti tricheur, réaliser côté client des contrôles voire des calculs qui ne sont pas aussi réaliser côté serveur, c'est une erreur de conception


RE: Anti-triche - wild-D - 02-09-2009

(02-09-2009, 12:34 AM)Ter Rowan a écrit : de deux, en tant que membre du forum, j'estime que si on est capable de faire ce que tu decris wild-d (a savoir identifier qui est en train de gagner) c'est que quelque part on est capable de garder coté serveur qui gagne qui perd, du coup on est capable de faire ce que disent les camarades à savoir contrôler côté serveur l'état exact des combats. Donc on est capable d'éliminer une faille de sécurité, sans avoir à culpabiliser qui que ce soit

Et finalement, peu importe la moralité tricheur / anti tricheur, réaliser côté client des contrôles voire des calculs qui ne sont pas aussi réaliser côté serveur, c'est une erreur de conception

comme tu le dis si bien, tu as besoin d'un contrôle coté serveur indispensable. Tu ne fais donc pas confiance au joueur et le considère comme tricheur tant que tu n'as pas pu confirmer le contraire ^^ (tu ne le considère pas comme innocent mais coupable en premier lieu)

pour ce qui est des jugements à 2 balles sur la fiabilité des joueurs je pense que la plupart ici ne sont pas meilleur que moi (c'est même ce qu'on rabache tous la plupart du temps"toujours vérifier" ce qui vient du client). Donc pas la peine de jouer les offusquer face à mon discours. Perso je songe de plus en plus que c'est plus honnête de carrément poser le postulat de la culpabilité "a priori" comme ligne de conduite et de conception donc dès le départ.

dans un cas comme dans l'autre l'idéal est la résorption complète de la faille. Seule la démarche change, et finalement cette solution à pas que du mauvais si ce n'est d'heurter brutalement la sensibilité "Liberté, Égalité, Fraternité":

1) parce que un désavantage/sanction fera bcp plus facilement réagir le joueur pour rapporter le cas (avec le risque extrême de départ); pourquoi rapporter un bug qui avantage si on est pas honnête ?

2) l'évolution désagréments max -> désagrément min et une évolution bien plus facile à accueillir
que la situation pas de désagrément (même pour les tricheurs... ce qui peut laisser un arrière goût désagréable aux autres) -> désagrément min.

3) on vise toujours l'objectif zéro faille, donc éviter de condamner des innocents (ce qui est limite plus motivant que d'éliminer la chasse au "voleur" )


RE: Anti-triche - Yoda54 - 02-09-2009

(02-09-2009, 12:28 PM)wild-D a écrit : tu as besoin d'un contrôle coté serveur indispensable. Tu ne fais donc pas confiance au joueur et le considère comme tricheur tant que tu n'as pas pu confirmer le contraire ^^ (tu ne le considère pas comme innocent mais coupable en premier lieu)
Je répondrai par un adage très simple qui se vérifie tous les jours et pas uniquement dans le monde du jeu on-line: "la confiance n'exclue pas le contrôle".

Citation :pour ce qui est des jugements à 2 balles sur la fiabilité des joueurs je pense que la plupart ici ne sont pas meilleur que moi (c'est même ce qu'on rabache tous la plupart du temps"toujours vérifier" ce qui vient du client). Donc pas la peine de jouer les offusquer face à mon discours.
Personnellement, je continuerai à m'offusquer devant les discours disant qu'un joueur est par principe un tricheur.
Par ailleurs, personne ici n'est venu juger ta façon de penser, il serait donc de bon ton de t'en abstenir toi-même surtout de la façon peu cordial dont tu le fais.

Citation : Perso je songe de plus en plus que c'est plus honnête de carrément poser le postulat de la culpabilité "a priori" comme ligne de conduite et de conception donc dès le départ.
C'est une solution qui a ses avantages et ses inconvénients comme toutes les autres. A mon sens, son principal inconvénient est de créer un sentiment de suspicion et de défiance permanent qui n'est pas propice au développement d'une communauté.

Citation :dans un cas comme dans l'autre l'idéal est la résorption complète de la faille. Seule la démarche change, et finalement cette solution à pas que du mauvais si ce n'est d'heurter brutalement la sensibilité "Liberté, Égalité, Fraternité":
Comme je viens de le dire, cela a des avantages et des inconvénients, je trouve simplement que les inconvénients, qui ne consistent pas uniquement à 'heurter la sensibilité "Liberté, Egalité, Fraternité"' (dont je ne comprends absolument pas la signification d'ailleurs) sont trop importants par rapport à ce que cela apporte.

Citation :1) parce que un désavantage/sanction fera bcp plus facilement réagir le joueur pour rapporter le cas (avec le risque extrême de départ); pourquoi rapporter un bug qui avantage si on est pas honnête ?
Heureusement, il y a beaucoup plus de gens honnêtes que de gens malhonnêtes et malgré ta vision noire des choses, il y a aussi des joueurs qui traquent les failles pour les signaler aux concepteurs. Si toute faille possible est sanctionnée à partir du moment où elle est découverte, les tricheurs tenteront tout de même le coup, parce que l'on empêchera jamais un tricheur de tricher; en revanche, le joueur honnête qui pourrait t'amener un soutien en cherchant des failles ne le fera pas car il risque de se faire pénaliser alors que son intention est louable. Au bout du compte, tu obtiens donc l'effet inverse de celui que tu recherches.

Citation :2) l'évolution désagréments max -> désagrément min et une évolution bien plus facile à accueillir
que la situation pas de désagrément (même pour les tricheurs... ce qui peut laisser un arrière goût désagréable aux autres) -> désagrément min.
Contrairement à ce que tu as l'air de penser, ne pas considérer systématiquement le joueur comme un tricheur ne signifie pas qu'il n'y a pas de contrôle et les sanctions adéquates en cas de tricherie avérée. Dans le cas cité dans ce thread, la sanction intervient que la tricherie soit avérée (volonté de quitter un combat sur le point d'être perdu) ou non (problème technique ou paternel qui répète pour la troisième fois de couper l'ordinateur pour aller se coucher et qui vient le faire lui-même sans préoccupation pour les activités ludiques du fiston Smile).

Citation :3) on vise toujours l'objectif zéro faille, donc éviter de condamner des innocents (ce qui est limite plus motivant que d'éliminer la chasse au "voleur" )
Tout à fait, donc pourquoi prendre le risque de condamner des innocents lorsque la faille est comblée et que les tricheurs potentiels n'en tireront aucun bénéfice?