La réponse courte est que vous ne pouvez pas le faire. Tout ce qui fonctionne côté client, en particulier à partir des sources, peut être modifié pour déjouer vos tactiques. Si vous mettez en place un vérificateur côté client pour rechercher des modifications soudaines, un utilisateur peut simplement désactiver le vérificateur.
La bonne nouvelle est qu’en règle générale, il n’ya que très peu de tricheurs sur les jeux en mode solo. La seule exception majeure concerne les jeux qui ont de grandes communautés de "scores élevés sur youtube" comme Line Rider, où les joueurs se font concurrence sur YouTube.
Si vous visez cela ou si vous êtes trop têtu pour accepter que des personnes trichent dans le jeu ou gardent vous-même des scores élevés (ce qui est une forme de jeu multijoueur), vous devez alors effectuer tous les calculs côté serveur. . Oui, tout ce qui compte. Vous ne pouvez même pas répéter le calcul côté client pour essayer de donner le score à l'utilisateur, puis le "vérifier" avec le serveur car l'utilisateur peut simplement désactiver le contrôle et désactiver tout système garantissant qu'il y a des contrôles.
J'aimerais qu'il y ait une meilleure réponse à cette question, mais il n'y en a pas.
Cela dit, vous pouvez faire quelque chose pour rendre un peu plus difficile de tricher. Ils n'empêcheront personne sérieux de le faire et de publier une boîte à outils pour tromper, mais cela les ralentira:
- Réduisez et obscurcissez votre JS, ce qui rendra le code plus difficile à lire. Vous pouvez minimiser et trier de-obscurcir, mais vous ne pouvez jamais récupérer les bons noms de variable et de fonction, ni les commentaires.
- Cuire dans les valeurs avec une langue différente. Dans ce cas, vous pouvez utiliser PHP ou d'autres langages côté serveur pour gérer les variables d'installation statiques. Si la distance de saut est toujours supposée être de 2 espaces, vous définissez normalement une distance de saut pour l'objet joueur. Ne gérez pas cela avec PHP pour que la source JS se retrouve avec 2s sur tout le code dans un million d'emplacements. Cela a l’effet secondaire heureux de pouvoir également accélérer votre JS.
- Avec un peu de pratique, vous maîtriserez le mélange et vous pourrez même personnaliser votre JS pour chaque joueur. Ce qui est un autre moyen d'éviter la triche. Si le code de chaque joueur est différent d'une manière ou d'une autre, il est alors plus difficile d'écrire une triche qui peut faire partie d'une boîte à outils.
- Enfin, vous pouvez contrôler la source en fonction de l'identité du joueur. Dites leur adresse IP et / ou nom d'utilisateur. Vous savez quelle sera la version spécifique du joueur du JS. Vous pouvez créer une somme de contrôle et demander qu’elle soit identique à l’autre. Facile à désactiver, comme tout JS côté client, mais rend encore une fois un peu plus difficile de créer une boîte à outils.
Alors. Comme vous le voyez, ce n'est probablement pas la peine de suivre cette voie. C'est difficile. Nécessite beaucoup de pratiques de codage vraiment stupides, et est finalement encore relativement facile à vaincre. Vous devrez faire tous les calculs côté serveur pour éviter les tricheries. Ou laissez-vous aller et acceptez que la tricherie arrive.