Estoy desarrollando un juego de cartas simple, donde habrá un sistema de emparejamiento que te pondrá en contra de otro jugador humano. Este será el único modo de juego disponible, un 1vs1 contra otro humano, sin IA.
Quiero evitar las trampas tanto como sea posible. Ya he leído muchas preguntas similares aquí y ya sé que no puedo confiar en el cliente y tengo que hacer todas las verificaciones del lado del servidor. Tengo la intención de tener un servidor (de todos modos necesito uno para el emparejamiento) y tengo la intención de hacer algunas verificaciones del lado del servidor, pero si quiero verificar todo el lado del servidor, esto hace que mi servidor pueda realizar un seguimiento del estado de todos los juegos actuales y verifico cada acción, y no tengo el dinero / infraestructura para soportar ese servidor.
Mi idea es hacer que los clientes verifiquen y verifiquen algunas de las acciones realizadas por su oponente * y, si encuentran alguna acción ilegal, notifiquen la posible trampa al servidor y hagan que el servidor lo verifique. Esto aún requerirá que mi servidor haga un seguimiento de todos los juegos actuales, pero ahorrará recursos solo al verificar algunas cosas que no se pueden verificar en el lado del cliente (como el orden de las cartas en el mazo) y solo verificar otras cosas cuando realmente están mal.
* (¡solo aquellos que pueden verificar sin permitirse hacer trampa! por ejemplo: no pueden verificar si la carta jugada estaba en la mano porque necesitarán que sepan todas las cartas en la mano)
En resumen, mis preguntas son : ¿es este un enfoque viable? ¿realmente ahorraré recursos al hacer esto o la complejidad adicional en el servidor y el cliente para intercambiar estos mensajes no vale la pena? ¿Conoces algún juego que haya probado con éxito o sin éxito un enfoque similar?
Gracias a todos por leer y responder