He estado trabajando (de vez en cuando) en un pbbg que es bastante antiguo. Si alguna vez has jugado Carnage Blender, entonces tienes la idea.
Si no, es una idea simple que se ha hecho mucho: a un jugador se le asigna un cierto número de "puntos" cada día, y gasta esos puntos para atacar a otros jugadores. Los puntos se acumulan con el tiempo, hasta cierto límite.
El sistema de puntos está diseñado para evitar que los triunfadores superen por completo a los jugadores casuales.
En el caso de la licuadora de carnicería, un sistema CAPTACHA evita que un usuario "juegue" el sistema con un bot o un script diseñado para usar todos sus puntos cada día con un mínimo esfuerzo. De vez en cuando se muestra un CAPTCHA aleatorio, y si no se pasa, el usuario será suspendido por una hora.
Lo que me pregunto es cómo hacer que esto sea más fácil de usar para mi juego. Reconozco que debo evitar un mal comportamiento como este, y podría fácilmente adoptar el mismo enfoque CAPTCHA, pero ¿existe una alternativa más amigable para el usuario?
La investigación inicial descubrió ASIRRA por Microsoft, pero el ambiente esponjoso / lindo no funciona bien con mi tema de juego previsto.
ACTUALIZACIÓN
Lo que más me interesa son alternativas al CAPTCHA estándar de "deletrear esta palabra". Quiero tratar de mantener el juego lo más ininterrumpido posible para los buenos jugadores.
He visto lo que llamo CAPTCHA de uso único, como preguntarle a un usuario "¿qué es cinco más seis menos dos?" Pero esto requeriría demasiado esfuerzo compilar una base de datos de preguntas lo suficientemente grande como para frustrar a los usuarios maliciosos. Especialmente porque el CAPTCHA está destinado a usarse con tanta frecuencia.
ACTUALIZACIÓN # 2
Como Joe Wreschnig señaló en su respuesta, tener un sistema CAPTCHA para limitar que los bots jueguen más rápido que los humanos es un poco redundante si los turnos son limitados por día. No expliqué mi sistema de puntos al pie de la letra, y fue mi culpa. En realidad, se acumulan 10 o 20 puntos cada pocos minutos, y terminan en 200. Por lo tanto, un jugador muy competitivo podría regresar cada pocas horas y usar sus puntos. Quiero recompensar a aquellas personas a las que les gusta tanto mi juego que regresan con tanta frecuencia. Si les impido jugar hasta el día siguiente cuando obtengan sus puntos, estaría rechazando a los jugadores que de otra forma estarían disfrutando de mi juego web. Esto evita que un jugador gaste puntos constantemente mientras le da algunos puntos cada pocos minutos.
Esto está abierto al abuso.
fuente
Respuestas:
"¿Hay una alternativa más amigable para el usuario?"
¿Una alternativa más fácil de usar con qué fin? ¿Cuál es el captcha diseñado para lograr en su sistema?
Parece que está diseñado para evitar bots, bajo la premisa de que los bots pueden jugar "más rápido" que los jugadores normales. Pero también ha limitado la cantidad de acciones que un usuario puede tomar por día, lo que logra el mismo objetivo. Entonces el captcha parece redundante.
Te animo a que mires los frentes alternativos de Kingdom of Loathing . Utiliza un sistema similar de turnos por día, y tiene varios frontends alternativos populares como KoLmafia , que en muchos sentidos no se pueden distinguir de "botar" el juego. La mayoría de los jugadores sienten que estos se suman al juego, en lugar de eliminarlo, incluso para jugadores casuales. Facilitan las acciones por lotes, automatizan algunas de las partes más lentas y ofrecen más opciones para la interfaz de usuario en el juego.
Si ya tienes controles en tu juego para asegurarte de que las IA no pueden simplemente jugar más rápido que los humanos, y al tener turnos por día, tienes ese control, entonces te sugiero que intentes fomentar la automatización de tu juego, como si tu diseño fuera equilibrado, solo puede mejorar la experiencia del jugador.
fuente
Nunca me molestaría en jugar un juego que requiera captchas: son realmente una práctica terrible que debería evitarse.
Tu juego parece tener problemas más profundos que eso de todos modos: idealmente, un juego no debería dar ninguna ventaja a un bot estúpido, por lo que sería inútil usar un bot estúpido en primer lugar. Si no puede lograrlo, ese es un problema de diseño que no tendrá una solución real, solo soluciones alternativas más o menos válidas.
Con "bot estúpido" me refiero a bots que no toman ninguna decisión significativa y en su lugar simplemente "cultivan" (eso es lo que sucede aquí). Los bots inteligentes (como los aim-bots o los juegos de ajedrez) son un asunto completamente diferente.
Aún así, suponiendo que te sientas cómodo con la idea de hacer un juego con fallas de diseño, todavía hay espacio para mejoras.
Acepte el hecho de que no puede detener un bot realmente determinado y, en cambio, concéntrese en lo único que puede hacer: hacer que sea inútil usar un bot. Si las personas no tienen ninguna razón para usar un bot ... no los usarán (y si lo hacen de todos modos, no importará).
Una posible solución es permitir un inicio de sesión por semana en lugar de uno por día. Si las personas se olvidan de iniciar sesión durante más de una semana, es poco probable que estén realmente interesados en jugar de todos modos, por lo que no usarán bots para seguir ganando créditos. Si, por otro lado, hay alguien tan jodido que hace un bot que se conecta una vez a la semana y luego regresa tres meses después para atacar a personas al azar, bueno, acabas de encontrar a alguien tan decidido que de todos modos te habría descifrado, lo que sea sistema que eligió (a menos que elija un sistema no defectuoso, por supuesto).
pd: ¡no cometas el error de poner más esfuerzo en solucionar defectos de diseño y luego resolverlos en primer lugar!
fuente
No prohibiría un CAPTACHA fallido durante una hora, eso parece duro, simplemente evitaría que avancen hasta que completen con éxito el CAPTACHA y permitan que se muestre una nueva imagen de CAPTACHA.
También solo mostraría el captcha si realizaban solicitudes demasiado rápido, almacenaba un DateTime en cada solicitud y luego lo comparaba con la siguiente solicitud, si es inferior a 2-4 segundos, muestra el CAPTACHA, de lo contrario, deje ellos se van. Tendrá que determinar qué intervalo razonable es para su juego, servidor y ancho de banda.
También puede hacer un CAPTACHA "forzado" cada X veces que se realiza una acción, esto evitará incluso un script automatizado con un
pause
incorporado para que no active el límite de tiempo CAPTACHA.fuente
Si los jugadores gastan puntos para atacar a otros jugadores y los puntos son limitados, me parece que el abuso obvio es crear varias cuentas.
Si logras limitar con éxito a las personas a una sola cuenta, entonces el problema con los bots para mí sería que, bajo tu sistema, las personas pueden despedirlos cuando están dormidos o en el trabajo.
Entonces, dadas las limitaciones: (1) ninguna ventaja para los bots (2) recompensa a las personas por iniciar sesión varias veces al día
Me parece que lo ideal es limitar el número de acciones que pueden usar durante un día a un número razonable.
Por ejemplo, podría decidir que alguien podría iniciar sesión razonablemente varias veces durante un período de 8 horas y ajustar el sistema de manera adecuada. O alguien podría verificarlo antes de ir a la escuela / trabajo por la mañana, verificarlo cuando lleguen a casa, verificarlo nuevamente después de la cena y verificarlo antes de acostarse.
Determine qué está haciendo su usuario 'ideal' y luego haga que el sistema de puntos lo recompense.
Construiría un sistema que recompensara gastar una gran cantidad de puntos de una sola vez. Para hacer esto, tendría una tasa de recarga variable en los puntos. Cada vez que gastas puntos, el tiempo de recarga para obtener el siguiente punto aumenta ... así que si un bot gasta puntos tan rápido como los obtiene, tomará más y más tiempo obtener el siguiente, mientras que si una persona gasta todo En el momento en que acumularon durante la noche antes de salir de la casa por la mañana, los habrán recuperado para cuando lleguen a casa del trabajo / escuela (8-12 horas más tarde).
fuente
En un juego, recomendaría reemplazar "captcha" por "mini-juego de rompecabezas". La diferencia es el nivel de diversión involucrado. Realmente hay pocas razones para un captcha en un juego, a menos que hayas probado un minijuego personalizado y que todavía esté siendo botado. En cuyo caso, haga falta tácticas más inteligentes.
fuente
Según lo sugerido por Tchalvak, iría a la ruta del 'minijuego de rompecabezas', sin embargo, recompensaría algunos puntos por pasarlo para hacerlo más fácil de usar
fuente