He estado pensando en implementar el sigilo en un juego multijugador. Es un juego de estilo MOBA, así que piensa en League of Legends (LoL) y Heroes of the Storm (HotS). Varios clientes se conectan a un solo servidor, que transmite el estado del juego a todos los clientes. Los clientes envían sus datos de entrada al servidor, que pueden rechazarlos cuando encuentran comandos no válidos, lo que hace que la trampa sea imposible (bueno, en teoría).
Ahora, menciono estos juegos a propósito porque ambos implementaron sigilo de manera diferente. LoL tiene sigilo con dos estados posibles: eres completamente visible o completamente invisible. HotS, por otro lado, implementa el sigilo de tal manera que se puede ver por un brillo en el aire:
Creo que esta es una mecánica ordenada, ya que promueve / recompensa prestando atención a su entorno. Sin embargo, al ser un juego multijugador, me di cuenta de que podría resultar fácilmente explotable.
Cuando implementa el sigilo en la forma 'LoL', simplemente puede dejar de enviar coordenadas de jugador a los otros clientes. Cuando el personaje del jugador rompe el sigilo, el servidor puede transmitir la ubicación nuevamente. Sin embargo, con el modelo HotS, se puede ver un brillo en el aire donde se mueve el personaje. Esto significa que el servidor debe enviar la ubicación del jugador a los otros clientes. Lo que significa que los jugadores que cambian la textura o el modelo o incluso el código del juego en sí mismo podrían hacer que la mecánica de la capa sea inútil. Aquí hay un hilo en los foros de HotS al respecto.
Mi pregunta es si hay alguna forma de implementar el encubrimiento (con un 'brillo', al estilo HotS), sin tener el problema de que los jugadores astutos pueden modificar el juego (datos) y 'vencer al sistema'. ¿Es esto posible, y si no, cómo otros juegos multijugador con esta mecánica lidian con esto? ¿Solo el estilo de invisibilidad LoL es incontrolable?
Pensé en hacer que el servidor enviara ubicaciones falsas de 'capa' de vez en cuando, pero esto también perjudica a los jugadores justos que solo están prestando atención, por lo que no funcionará.