Un Space Invaders en ECS Express Mode con anti-cheat server-side
Dejé un juego de Space Invaders corriendo en AWS y lo que más me costó no fue el juego. Fue que un líder de ranking con el servidor confiando en el score que manda el cliente se llena de tramposos en cinco minutos. Así que terminé construyendo un backend que recibe eventos de kills, no puntajes, y un anti-cheat de 8 reglas que recalcula el score del lado del servidor. Y después descubrí que, para…
Un jugador de Space Invaders corrió un juego en AWS, pero pronto se dio cuenta de que un líder de ranking estaba manipulando el sistema con un score generado por el cliente. Para combatir esto, el autor construyó un backend que solo acepta eventos de kills y recálcula el score en el lado del servidor. Para desplegarlo, utilizó ECS Express Mode, lo que le permitió evitar escribir treinta recursos de Terraform.
El problema clave era que el servidor confiaba en el score del cliente, lo cual no era una buena idea. La solución fue que el cliente envíe solo eventos de kills y que el servidor calcule el score. Esto requiere definir qué eventos son importantes y cómo hacer que el score sea verificable. El servidor valida el score de los eventos y rechaza el score si no coincide con el recalculado.
También hay reglas que el cliente no puede simular sin ser identificado, como un tiempo de juego mínimo y un límite de kills por segundo. El servidor es el único que suma el score, para que no se pueda manipular.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.