¿Anti-Trucos para problemas y soluciones de MMO? [cerrado]

14

La mayoría de los juegos en línea sufren este problema y hay algunas compañías de software para cubrir esto, pero recientemente, por lo que he visto, la mayoría de las compañías están tratando de evitar que esos programas creen su propio sistema (tormenta de nieve con Warden, Aion con su propia cuenta, etc. ...) pero es un caso muy difícil prevenir tal ...

Solo quería decir que hice otro tema de preguntas como wiki de la comunidad específico para publicar aplicaciones y sus características y las ideas detrás de esta pregunta aquí no es enumerarlas sino saber más sobre cuáles fueron sus intentos, problemas en el camino y posibles soluciones , pieza de códigos si la aplicación y así sucesivamente.

¿Qué tipo de protección usan ustedes para (intentar) prevenir tales actos?

  1. ¿Software anti trampa? (indique qué, por qué y posibles problemas que enfrentó, por ejemplo, aion dejó de usar GameGuard en la etapa beta debido a una gran cantidad de problemas de compatibilidad y quejas de sus usuarios)
  2. Tu propio código? (¿qué tipo de verificación sueles ejecutar para asegurarte de que los jugadores de mala fe, por ejemplo, speedhack, verifiquen la nueva ubicación contra la velocidad + la última ubicación, etc ...)
  3. Ninguno, no me importa (¿alguna razón personal o aportación que quisiste compartir?)

¿Alguna pieza interesante de código relacionada con el problema que le gustaría publicar?

Siéntase libre de volver a trabajar mi texto, ¿mi inglés es genial? **

Premio
fuente
1
Etiqueta hecha Si espera que esto tenga una gran cantidad de respuestas, hágalo wiki comunitario. Permitirá que varias personas editen respuestas individuales en lugar de que las personas las repitan constantemente.
Jesse Dorsey
1
Para un ejemplo de cómo esto podría ser beneficioso. Mira esto: gamedev.stackexchange.com/questions/480/…
Jesse Dorsey
Gracias por el comentario y los enlaces, lo revisaré ahora y veré, en mi punto de vista, este tipo de pregunta para el desarrollo de juegos es un muy buen punto para discutir, pero la mayoría de los juegos MMO creo, así que no estoy seguro, también la comunidad es bastante pequeña en el momento y tenía miedo de ser rechazada por una pregunta así, así que no estoy seguro, gracias por crear la etiqueta :)
Prix

Respuestas:

22

Desafortunadamente, es realmente difícil evitar que las personas hagan trampa, por eso se creó un software como Punkbuster para tratar de atrapar a algunos.

Para un MMO, lo más importante que puede hacer es no confiar en nada que el cliente le envíe . El cliente no debería poder decirle a dónde se ha movido el jugador, cuánto daño le han hecho a quién, etc. En su lugar, debe enviar la entrada de control al servidor, validar que sea práctico (presionar el botón "ataque" 1000 veces en 1 segundo, por ejemplo, no es válido), luego actualice la simulación en el servidor. Luego enviarías las partes relevantes del nuevo estado del juego al cliente.

Mientras valida la entrada del usuario, también es posible buscar tendencias en su entrada. Si no permite macros, puede capturarlos aquí al notar que el usuario ha hecho clic en el mismo botón en las mismas coordenadas de píxel en intervalos perfectos de 1 segundo durante los últimos 30 minutos.

El cliente en sí es el lugar principal donde las personas pueden hacer trampa, por lo que programas como Punkbuster pueden reducir las trampas, los objetivos, etc. Aparte de eso, no confiar en el cliente y validar cualquier cosa que el cliente le envíe ayudará a reducir las trampas.

Sean James
fuente
Gracias por su contribución, espero ver a más personas haciendo sus aportes; De hecho, este es un problema muy difícil de contrarrestar ... También hay quienes toman medidas enérgicas para desactivar el motor anti-trampas y se llama desde allí ... lo que hace que las cosas sean aún más difíciles ... a menos que tenga un en línea GM para verificar las verificaciones de esa persona u otras personas como usted declaró. ¿Qué pensarías como esta pregunta para la wiki comunitaria? ¿Debo mantenerme como está o cambiar algo para que se ajuste a él?
Premio
Probablemente wiki de la comunidad a menos que esté buscando una respuesta específica.
Sean James
¿Algún detalle más sobre cómo funciona Punkbuster para una respuesta más completa?
Chris Lloyd el
Buena respuesta: no existe 'una solución para gobernarlos a todos': la mayoría de los juegos tienen múltiples 'vectores de ataque'. A menudo se trata de la evaluación de riesgos más que cualquier otra cosa, es decir, ¿cuál es el impacto en la comunidad si alguien puede engañar al sistema X, etc.
Zebrabox
Creo que la piratería es inevitable, incluso tenemos el programa más fuerte de anit-cheat. Hacer trampa está bien si está fuera de línea técnicamente pero no en línea. Jugar en línea es más sobre la equidad. ¿Es eso así?
David Dimalanta
8

Inicio sesión. Todo lo que sucede en el servidor debe registrarse, e idealmente todo lo que proviene del cliente. El cliente es inherentemente poco confiable, pero incluso el registro de datos no confiables puede ser esclarecedor.

Una vez que todo está registrado, la detección de trampas se convierte en una cuestión de análisis de datos. Algunos trucos serán obvios (valores fuera de rangos aceptables, por ejemplo, poder moverse entre puntos mucho más rápido de lo que normalmente permite el avatar), otros son más insidiosos (como los aimbots que permiten la focalización perfecta de píxeles dentro de plazos artificialmente cortos). Algunos son aún más difíciles de detectar (como los wallhacks), pero grabar tanto como sea posible permite la detección automática y manual. Hay varios artículos al respecto, pero en general los trucos se detectan muy fácilmente en la detección automática porque son tan predecibles / repetibles, exactamente como los jugadores humanos no lo son.

Dado que lo más probable es que no se pueda grabar absolutamente todo, es útil el registro por niveles. Por ejemplo, los informes de trampas por parte de los usuarios, o el registro básico simple que detecta la posibilidad de trampa (puntuación que está muy por encima de la curva estadística), sería suficiente para marcar un cliente / cuenta / clave de CD en particular para un registro más detallado, lo que podría luego se utilizará para demostrar, más allá de toda duda razonable, que se está utilizando un truco.

Lo que haces cuando detectas un truco es algo completamente diferente. La prohibición de cuentas después del hecho es buena, especialmente cuando tiene un mecanismo de detección automatizado que es lo suficientemente confiable. La prohibición temprana alerta a los tramposos de que están siendo detectados y también corre el riesgo de falsos positivos debido a mecanismos de detección no concluyentes. Prohibir demasiado tarde corre el riesgo de arruinar la experiencia del juego para otros. Esta es un área muy gris, y requiere que los desarrolladores hagan la llamada de juicio.

MrCranky
fuente
2

Asumiendo que todo el trabajo importante en su juego se está produciendo en el lado del servidor, debería haber poca o ninguna trampa posible. Si desea restringir la creación de macros o hacer que sea desagradable para las personas editar paquetes, haga que su programa explore periódicamente los módulos activos en su proceso. Si encuentra, por ejemplo, WpeSpy.dll, sabrá que tienen WPE conectado. Hazlo para las otras herramientas comunes. Esto se puede evitar, y es una carrera armamentista y una causa perdida, pero si su juego es relativamente pequeño, puede reducir fácilmente el número de personas que se divierten en un factor de diez ... y eso puede ser bueno suficiente para ti.

James Bellinger
fuente
Gracias por la contribución, ¿ha utilizado algún software anti-trampa o ha tenido este tipo de problema del que tuvo que ocuparse? Si es así, sería bueno saberlo.
Premio
2
No he usado ningún software anti-trampas de terceros, no. Sin embargo, cuando comencé a codificar un RPG en línea, mi servidor simplemente llamó 'ataque' cuando el cliente envió 'ataque', en lugar de poner la solicitud en una cola, cosas así. Esos son los más importantes para prevenir las trampas. Hacks de velocidad, haga todo el tiempo en el servidor para que obtengan poca ventaja, pero también envíe marcas de tiempo, y si obtiene demasiada deriva, sabrá que están usando uno. Marque su cuenta, pero no la patee de inmediato: la retroalimentación inmediata es una excelente manera para que alguien sepa lo que detecta su software.
James Bellinger el
1
Me gusta esta parte en la que but also send timestamps, and if you get too much drift, you'll know they are using one. Mark their account, but don't kick them immediately -- immediate feedback is a great way for someone to know what your software detects.estaba buscando implementar un sello de tiempo y advertir al sistema de los usuarios marcados, actualmente lo que he puesto al jugador en una lista en lo que estoy trabajando ahora es que si algunos tienen un alto uso de abuso, enviarán una alerta a un GM en línea para verificación ...
Prix