Si la gente quiere bot, no creo que realmente puedas detenerlos.
Por supuesto, puede implementar muchas medidas que hagan que el botteo sea más o menos doloroso. Pero solo puede hacer mucho antes de que su base de código se convierta en un desastre gigantesco que es muy difícil de mantener, propenso a errores y molesta a los usuarios legítimos. Mientras tanto, los botters siempre encontrarán una manera de derrotar sus contramedidas:
- Hay más de ellos que tú
- Tienen más tiempo libre en sus manos (debe dividir el tiempo entre el desarrollo real y la prueba de bot, pueden piratear su código de bot todo el día)
- A medida que crea salvaguardas extravagantes y desafiantes, los autores de bot se verán más alentados porque es divertido romper su protección de bot
- Si hay un mercado negro de personas que se benefician comercialmente de los bots, cuanto más difícil sea escribir un bot, más valiosos serán los bots de trabajo, por lo que incentivará el botting
Básicamente quedarás atrapado en una carrera armamentista con los botters, y según la lógica de los puntos anteriores, así como mi experiencia con tales juegos, no podrás mantenerte al día.
Algunos desarrolladores de juegos emplean medidas anti-trampas extremadamente agresivas: por ejemplo, Steam escaneará la memoria y el sistema de archivos para buscar hacks, y los delincuentes pueden ser castigados perdiendo cuentas por valor de cientos de dólares. Sin embargo, todavía hay bots y otros trucos para los juegos de Steam, y algunos incluso funcionan la mitad del tiempo. A diferencia de ellos, tiene una API abierta para el usuario y no tiene control sobre la computadora del usuario. Es una batalla cuesta arriba desde el principio.
El problema que está tratando de resolver es esencialmente una prueba de Turing: excepto que es una prueba de Turing muy fácil, porque no puede hacer trampa al requerir problemas de IA difíciles como el lenguaje. No importa cuántas heurísticas cree, sería trivial para un botter agregar un poco de aleatoriedad a la acción del bot para que imite casi exactamente a un humano. Ni siquiera sería muy difícil hacer que el bot lo vea jugar un poco y aprender a cronometrar acciones exactamente como usted. Luego, cuando prohibes el bot, el botter publica una gran protesta en el foro sobre cómo es solo un jugador dedicado (y tal vez en realidad es un falso positivo) y tu audiencia principal de jugadores hardcore se levantará en armas contra ti.
Haz que el juego sea demasiado divertido para bot
La razón principal por la que alguien usa un bot es porque hay una parte del juego que quieren omitir. Si disfrutaran el juego y lo encontraran divertido, no tendrían el bot jugando, lo jugarían ellos mismos.
Pero si el juego es tan aburrido, ¿por qué jugarlo? Presumiblemente, algunas partes del juego son aburridas y obligatorias para llegar a partes que son divertidas. Por ejemplo, en los MMO a todos les encanta subir de nivel, pero nadie quiere matar a 42,324 ratas venenosas de muertos vivientes para obtener el XP. Así que dejaron que el bot se muela y caiga para jugar la parte divertida.
Esto no es una crítica de usted o su juego, pero claramente al menos algunos jugadores encuentran tediosas algunas partes de su juego. Debería ver si puede reducir estas partes tediosas y considerar agregar decisiones más difíciles y significativas: los bots no son buenos para la estrategia profunda o el pensamiento lateral en comparación con la inteligencia humana, y además los humanos disfrutan tomando decisiones difíciles del juego.
A partir de su descripción, tengo la impresión de que este es un juego de navegador similar a Travian, donde hay una cola de compilación con un solo mejor orden de compilación y ciertas tareas de "mantenimiento" (como mantener en marcha las redadas agrícolas) que deben realizarse. Dices que no hay conflicto, pero en cualquier drama MMO y las pequeñas políticas son inevitables (IMO es la atracción principal), así que estoy seguro de que tus jugadores encontrarán formas de enfrentarse. Con este tipo de juegos, gran parte del tedio proviene de estas tareas de "mantenimiento": lo que los jugadores realmente quieren hacer es hacer alianzas y jugar el juego de la diplomacia con clanes rivales, el mantenimiento se convierte en una especie de impuesto donde hay que despertarse hasta una alarma en horas impares para poder entrar en esa parte diplomática divertida. Así que corta el tedio:
Este enfoque puede no funcionar siempre, desafortunadamente. No todos los jugadores tienen la misma tolerancia al tedio o el mismo concepto de diversión. Podrías tener una mecánica prominente que el 99% de tus jugadores disfruten, pero el 1% encuentra aburrida. ¿Qué pasa si el 1% comienza a escribir bots, arruinando la diversión para el 99%? Pero en última instancia, es una cuestión de grado. Nunca puedes eliminar los bots por completo, pero puedes minimizar el daño.
Botters socavados
Muchos de los efectos realmente negativos de los bots provienen de los autores que comercializan su trabajo. Si este es el caso para usted, simplemente podría competir con los bots. Muchos juegos en línea basados en tiempo real ya tienen características premium que permiten omitir el tiempo y la automatización (como las colas de compilación extendidas). Estos equivalen a un bot oficial sancionado por el desarrollador. Si tienes estos, y los tasas apropiadamente, los jugadores comprarán tu prima en lugar de comprar bots. La buena noticia es que usted está a cargo de la API, por lo que siempre tiene una gran ventaja en el desarrollo de la automatización de calidad para su propio juego, por lo que esta vez es una batalla perdida para los botters.
Esto no eliminará a los botters aficionados, ni a las personas que sienten que su prima no tiene una buena relación calidad-precio, por lo que nuevamente la efectividad de este enfoque depende de la situación.
Búscalos manualmente
Como dije anteriormente, lo que estás haciendo es esencialmente una prueba de Turing. Dado que la interacción con los humanos es considerada un desafío difícil para la prueba de Turing, puedes intentar aprovecharla.
Inspeccione manualmente los jugadores de nivel superior y vea si encuentra algo sospechoso. Es posible que incluso puedas escapar de vez en cuando sondeándolos de maneras restringidas solo a tu imaginación, para ver si puedes engañar al bot para que haga algo que no haría.
Si bien es difícil escribir un algoritmo que detecte los robots de manera confiable, no es tan difícil para un humano aprender a detectarlos. Creo que muchos juegos de navegador usan esta estrategia, y puede ser bastante efectiva. La desventaja es que o necesitas hacer un trabajo aburrido todo el tiempo, o debes pagar a los maestros del juego para que hagan una patrulla de bot regular.