Responderé a su pregunta con una pregunta mía: ¿Por qué no vemos trampa desenfrenada en World of Warcraft? O cualquier otro MMORPG para ese asunto?
La respuesta es porque el fabricante del juego mantiene todo el lado del servidor del juego.
Si yo soy el cliente y yo estoy a cargo de la presentación de informes daño hecho al enemigo, o de mi ubicación, sí, por supuesto que puedo engañar y decirle al servidor que hice de 1 millón de daños.
Por otro lado, si el servidor realiza un seguimiento del estado y solo informo al servidor de los cambios de estado, todo lo que puedo hacer es decirle al servidor "Me moví hacia la izquierda" o "Disparé mi arma" < - anti-engaño está integrado en la arquitectura del juego
por supuesto, te traje hasta el punto de "acciones perfectas" - el caso sería un juego de acción, un juego de disparos, etc., donde podrían ser objetos identificado y la "acción perfecta" enviar. Y a eso yo diría: este tipo de trampa ya existe, de verdad. Y ha existido por muchos años. Así que no veo cómo algo cambia solo porque estos son juegos de JavaScript.
Solo recuerda que en la mayoría de los casos no puedes evitar por completo las trampas de todo tipo. Sin embargo, en esos casos, simplemente puede hacer trampa es muy difícil de disuadir a la mayoría de los kiddies script piratear su juego. No lo evitarás, pero puedes reducirlo significativamente. –
@J Lynch: ¿Qué tipo de trampas quieres evitar? ¿Qué pasa si escribo una IA más inteligente que un humano que juega tu juego? La respuesta de S.Mark es acertada: si solo envía las acciones al lado del servidor, entonces se detiene un ** lote ** de métodos de trampa muy habituales. Ahora el atacante tiene que programar una IA para vencer a tu juego. Tenga en cuenta que su pregunta se refiere específicamente a un tramposo que informa puntaje perfecto, y luego en el comentario a la respuesta de S. Mark usted parece cambiar de opinión y quiere protección contra cualquier tipo de trampa, que no es lo mismo. – SyntaxT3rr0r