D'autant plus que si le jeux est petit et communautaire tu peux instaurer un système de délation pour permaban pour les cheaters.
Pour comprendre, il faut s'interesser au comment du pourquoi -
- certains cheats ne demandent aucun echanges de donnees du client vers le serveur : c'est dans cette categorie qu'on retrouve les wallhacks (ressources gpu / vram, etc.), aimbot (ram, pixels, etc.) et consorts. On peut rendre ca plus dur difficile (relocate en permanence, etc.) mais il n'y a pas de parade miracle. Aucune archi client/serveur ou host/peers ne permet de resoudre cela car ce n'est pas a ce niveau que se situe la faille. Au mieux on peut essayer de detecter une performance du joueur hors du commun sur les stats de jeu
- dans les modes non competitifs avec bcp de joueurs (typiquement mmo pve), bcp des donnees ne sont pas validees par le serveurs pour des raisons de logistique (charge serveur, cout, bande passante, etc.). Ce sont ces donnees uniquement qui sont attaquables et Ici on trouve les flyhacks, teleport, speedhack, etc. C'est considere comme une solution acceptable, car le fait qu'un joueur triche ne modifie pas l'experience de gameplay des autres (non competitif) et on peut toujours infliger des sanctions par la suite si on detecte des abus a posteriori
- la ou c'est vraiment important, c'est pour les modes de jeu competitifs, i.e. du pvp generalement en arenes plus petites (petits groupes de joueurs : champs de bataille restreint dans un fps, un moba, un match mmo pvp, etc.). Dans cette situation, c'est la que le plus de validation serveur est necessaire. Restent tous les cheats de la premiere categorie (aimbots, etc.), mais generalement les jeux recents valident toutes les donnees de gameplay, notamment les deplacements
- Reste le cas particulier du pvp de masse (e.g. les RvR ou McM des MMOs), qui sont un peu un hybride de tout ca
Bref, il faut retenir qu'il est toujours possible de tricher, qqsoit l'architecture choisie. Certains hacks sont purement cote client ; quant aux actions de gameplay, celles non validees par l'autorite serveur sont les plus vulnerables. Choisir la bonne archi sert surtout a rendre plus difficile certains types de triche.
Le 30 décembre 2016 à 12:21:06 florent6262100 a écrit :
Si son système (utiliser par la plupart des jeux) ne permettais pas de cheaté, comment tu explique qu'il y a autant de cheater dans les jeux ? Comment tu explique que par exemple GTA (qui utilise ce système) a autant de mecs qui ce téléportent ?
Et pourquoi il doivent justement développé des anti cheat pour contrer ça ?Parce que ce système est cheatable ni plus ni moins, perso dans les vieux mmorpg utilisant ce système, j'ai jamais vue personne ce téléporter
Bah je vois pas comment c'est possible, si le client envoie uniquement une action ("se déplacer vers le nord-ouest" par exemple) à partir de là un speedhack ou un teleport hack est impossible à développer.
Après je ne parlais pas des cheat côté client, je parlais bien uniquement des cheats permettant de se déplacer plus vite/se téléporter/tuer tous les joueurs de la map en une fraction de seconde etc etc.
- certains cheats ne demandent aucun echanges de donnees du client vers le serveur : c'est dans cette categorie qu'on retrouve les wallhacks (ressources gpu / vram, etc.), aimbot (ram, pixels, etc.) et consorts. On peut rendre ca plus dur difficile (relocate en permanence, etc.) mais il n'y a pas de parade miracle. Aucune archi client/serveur ou host/peers ne permet de resoudre cela car ce n'est pas a ce niveau que se situe la faille. Au mieux on peut essayer de detecter une performance du joueur hors du commun sur les stats de jeu
Effectivement !
Par contre on peut faire un jeu où le cheat n'apporte presque rien ou un jeu qui fait appel à l'intelligence en temps réel du joueur.
Par exemple, dans world of warships, n'importe quel bon joueur peut esquiver des tirs d'aimbots en anticipant et en tournant son bateau au bon moment (un tir prend entre 1 et 10 seconde pour atteindre sa cible). Dans ce jeu, aucun cheat ne permet d'avoir un niveau compétitif.
Je pense aussi qu'un jeu qui a une bonne courbe de progression sans frustrations n’attirera pas les cheaters.
C'est exactement ça LGV, Rien n'est infaillible, un cheat est toujours possible, il faut juste le restreindre au maximum
Quand a ça lokilok, ce n'est pas possible pour du mmo, ça voudrait dire avoir une simu serveur, qui va gérer la physique et renvoyer la position au joueur, c'est une conso hallucinante, c'est bien pour du petit jeu, ou alors du jeu par match de X personnes (genre fps etc)
Et pour le reste, vous faites des généralités, vous parlez de compète etc, alors que c'est juste un petit rpg, sans bien de but de triche, la seule triche qui serait "utile" a un cheater, c'est:
Mois le client en sait/fait, moins t'aura de problèmes.
Si j'étais toi, j'écouterai les conseils de LGV...
Quand a ça lokilok, ce n'est pas possible pour du mmo, ça voudrait dire avoir une simu serveur, qui va gérer la physique et renvoyer la position au joueur, c'est une conso hallucinante, c'est bien pour du petit jeu, ou alors du jeu par match de X personnes (genre fps etc)
Sinon, tu peux faire la simulation sur le client et le serveur (si c'est possible), le client envoie seulement ses actions, le serveur notifie les autres client et envoie une confirmation au premier client (et envoi tout les x temps des données pour effectuer des corrections sur les simulations des clients).
Par contre ca peut être complexe à implémenter.
Sachant que je suis entrain de dev un serveur thirdparty, je n'ai aucune simu derrière, donc je ne peux pas quoi qu'on en disent ...
Actuellement je suis entrain de mettre en place le système de spawn des mobs, assez complexe a expliquer mais en gros, je stock les spawns dans la DB
Ensuite je créer une liste dans le serveur et j'y fait spawn les mobs (avec leurs pos, id, charid, etc ...) pour pouvoir envoyer chaque entité autour de chaque joueur
voilà voilà
Alors, En arrivant au spawns, je suis tomber sur un problème que je n'avais pas assez anticiper.
Comment check si le joueur est dans la zone du mob, si la position du joueur est sur une autre appli ?
Erf !
Du coup, au lieux de faire deux appli distinctes, j'en ai tout simplement fait une sur plusieurs threads !
ça ne m'a pas pris beaucoup de temps a implanter le serveur de position sur le serveur normal (ayant utilisé la même architecture), je le passerait sur un autre thread plus tard, je vais d'abord m'occuper des spawns de mobs
Je vais jouer avec les threads sur l'appli, histoire de faire quelque chose sans lagspikes (pointes de lag/micro freezes)
Bien joué ça
Ton journal de dev est toujours aussi interessant à suivre.
Merci
Là je viens de mettre en place le système de spawn des mobs coté serveur.
J'ai mis au point un système qui fait que si il y a un joueur présent dans la zone ça spawn les mobs
Je m'explique:
Dans une boucle qui s'exécute toutes les 3 secondes (pour éviter le flood)
Un joueur est proche de la zone ?
Oui > (1)
Non > Supprime les mobs si ily en a au bout de X temps (n'est pas encore implanté)
(1) Les mobs de cette zone sont spawns ?
Oui > On envoie les données à tous les joueurs proches de cette zone
Non > On spawn les mobs et on envoie les données à tous les joueurs proches de cette zone
Et actuellement je fait la réception des données coté client, qui va spawn les mobs
Le serveur s'occupe maintenant du spawn des mobs !
N'oubliez pas que vous pouvez tester le jeu (quand le serveur est ouvert évidemment), avec ces bugs etc !
Je suis actuellement entrain de convertir les mobs, pour qu'il soit gérer par le serveur plutôt que par le client !
Sympa tu avances
Je viens de mettre à jour ton jeu mais je pense que le serveur n'est pas ouvert, préviens moi sur skype quand c'est ouvert que je passe un coup
PS : Tu n'es pas tout seul sur ton topique je continu à lire tes actualités
Merci
Oui le serveur est fermer vue que je bosse dessus, je vais faire une mise a jour de ce qu'il y a actuellement et je met le serveur en route pour 19:45 environ ;)
Okay, alors voulant créer le système de dégats (donc via serveur et non local comme avant), je doit d'abord faire le système d'items (via serveur aussi)
Tout ça étant déjà fait sur le proto, j'ai déjà la base même si la plupart de mes codes ne servent plus a rien
Voilà, donc j'ai déjà ajouter le set de fermier de base + l'épée grossière de base + 3 boucliers histoire d'avoir de quoi tester niveau stats !
Système de dégâts fait !
Avec prise en compte des stats, s'il vous plait
Pour l'instant il n'est pas parfait, mais j'ai déjà la solution au problème qui peux ce poser
Actuellement il fait:
Je vais replacer le 1 par "Le joueur envois sont état d'attaque au serveur, et attend X secondes avant d'appliquer les dégats"
Ce qui fait que les attaques ne seront plus cheatable, car actuellement si on envois l'événement en trichant, on peux faire du dégats sans cooldown
Mais là, n'oublions pas que c'est un PROTO, et que donc rien n'est parfait, mon but c'est que ça fonctionne avant de renforcer tout le bordel (biensûr, ce qui demande de GROSSES modifs, je ne les mets pas en attente, je le fait direct ...)
Voilà, Si quelqu'un lis encore, voilà ce que j'ai fait
je lis.
Le 30 décembre 2016 à 13:17:05 Auteur blacklisté a écrit :
D'autant plus que si le jeux est petit et communautaire tu peux instaurer un système de délation pour permaban pour les cheaters.
Mauvaise idée. Sur la plupart des jeux en ligne, on se fait traiter de cheater dès qu'on est bon et qu'on commence à battre la plupart des gens.