Hay dos enfoques para contrarrestar los bots. Son protección del lado del cliente y análisis del lado del servidor.
La protección del lado del cliente es el enfoque más obvio: la fuerza bruta, en cierto sentido. Realiza todos los esfuerzos para garantizar que el cliente del juego sea totalmente legítimo, que no haya sido manipulado y que ningún otro programa lo afecte. Ahora, este es un problema difícil e imposible de resolver por completo. Pero muchos juegos lo intentan y tienen cierto éxito con este método. Sé que existen algunas soluciones preparadas para la protección del cliente, y le sugiero que las busque. Implementar uno usted mismo es una tarea desalentadora.
Además de ser menos del 100% efectivo, la protección del lado del cliente tiene el inconveniente de ser extremadamente molesta para sus jugadores. Por lo general, implica cosas como deshabilitar el cambio de tareas de alt-tab, programas antivirus, etc.
El análisis del lado del servidor es menos intrusivo. En este enfoque, tiene un código de servidor que analiza los patrones en el comportamiento de los jugadores. Muy a menudo, los bots juegan demostrablemente diferente. Por ejemplo, los jugadores humanos tienen un tiempo variable entre acciones (como disparar), y esta vez obedece a una distribución de curva de campana. Los bots primitivos tendrán un tiempo constante o se distribuirán de manera uniforme durante algún intervalo. Dato curioso: usando este método, una vez atrapamos a un jugador con un robot mecánico , un dispositivo inteligente que presionaba los botones de su teclado físico. No hace falta decir que ninguna cantidad de protección del cliente puede captar eso . Aún así, este análisis no es perfecto. Los bots más avanzados engañarán a sus sistemas, y cuantas más comprobaciones implemente, más avanzados serán los bots.
Para una mejor protección, puede combinar ambos métodos. La protección del cliente dificultará el desarrollo de bots, y el análisis del servidor detendrá los bots simples que se desarrollaron rápidamente. Pero hagas lo que hagas, nunca puedes detener a los bots por completo. Bueno, a menos que envíe a sus representantes a las casas de los jugadores, para supervisar su juego y denunciar violaciones. (Lo cual no es desconocido, por cierto. Definitivamente he leído una historia sobre la compañía de póker en línea que envía personas a la casa de un jugador muy exitoso, para confirmar que estaba jugando legítimamente. Pero parece que no puedo encontrarlo ahora).
Hay dos recomendaciones más dudosas para luchar contra los robots. Uno, encripta el tráfico de tu red. No creo que esto funcione. Con su cliente en manos de un enemigo, el tráfico puede ser y será descifrado ... o su propio cliente será utilizado para el cifrado. Por otro lado, el cifrado agrega retraso, y eso es realmente malo para un "tirador en tiempo real". La segunda recomendación es "solo diseña tu juego alrededor de esto". Si bien esto parece una buena idea, aún no he visto un solo juego que lo haya logrado.