¿Cómo manejan / deberían los MMO manejar la desconexión durante PvP?


20

En un MMO (ni siquiera necesariamente un MMORPG), ¿cuáles son algunas técnicas para lidiar con jugadores que se desconectan en medio de PvP?

En particular, ¿cómo evita afectar negativamente a las personas que se desconectan debido a problemas de red (o incluso de la vida real), sin afectar negativamente a las personas que los involucran?

Y, lo que es más importante, ¿cómo se asegura de que la desconexión no se pueda utilizar como método de trampa?

Respuestas:


15

Tuvimos este problema con algunos CCG en línea en los que trabajé. La mejor solución que he visto:

1) Los jugadores DEBEN conectarse al servidor, no entre ellos directamente, y NUNCA debe pasar las direcciones IP de los oponentes en los datos que transmite a los jugadores. Esto evita los ataques de denegación de servicio en los que un jugador obliga a su oponente a desconectarse para ganar.

2) Conexión caída = pierdes, el oponente gana. Debemos suponer que si cayó, fue una caída para evitar cierta pérdida.

3) Desconecta el intento de reconectarse por un período de tiempo, de modo que un pequeño inconveniente neto no te obligue a perder sin culpa tuya. Idealmente, el tiempo es suficiente para permitir que alguien se vuelva a conectar si accidentalmente pateó el cable, pero lo suficientemente corto como para que el oponente no se frustre y se quede dormido mientras espera. Creo que encontramos que entre 45 y 60 segundos se sintieron bien.

4) Permitir a los jugadores informar a sus oponentes. Este es un requisito general para evitar que alguien encuentre una forma molesta de su política. Como, tal vez ser tan verbalmente abusivo que el oponente cae solo para salir de allí, o desconectarse y reconectarse continuamente para estirar la duración del juego, o obstaculizar para evitar una pérdida, o lo que sea. No puede detener TODO mal comportamiento, pero puede incluir un mecanismo en el juego para informarlo y luego dejar que su departamento de atención al cliente se encargue del resto.


13

MMORPG RuneScape popular utiliza un temporizador de 1 minuto. Cuando te desconectas, tu personaje permanece en el mundo durante un minuto completo, vulnerable a los ataques y demás.


1
Lo mismo para DAoC. Funciona muy bien, ya que si no haces esto, las personas pueden desconectarse para evitar peleas. Solía ​​haber un comando "Quit To Desktop" / qtd en DAoC que hacía que la gente se cerrara instantáneamente, y se eliminó debido a esto.
Ólafur Waage

8

Tuve que abordar este problema una vez en un juego de carreras en línea donde los jugadores que perdían a menudo apagaban sus consolas para evitar que la pérdida apareciera en sus registros. Sin embargo, se aplica muy bien para cualquier situación PvP.

Mi solución fue así:

  1. Al comienzo del partido, una vez que todos los jugadores se hayan unido y el juego esté por comenzar, calcule cuál sería el resultado si nuestro jugador pierde el partido. En nuestro juego de carreras, 'perdido' significa 'llegó en último lugar' y el resultado habitual sería 'menos N puntos del rango de los jugadores'.

  2. Guarde el resultado en una ubicación segura (Savegame, tabla de clasificación, área de datos en línea, etc.).

  3. Junto con el resultado, almacene una bandera 'GameStarted'. Esto solo significa que el juego ha comenzado. Lo necesitaremos más adelante.

  4. Cuando el juego se complete, calcule el resultado real y aplíquelo a la puntuación / estadísticas de los jugadores. Desmarca la bandera 'GameStarted'. Este es el proceso normal de finalización del juego.

  5. Sin embargo, si el jugador se desconecta, tira de su cable o se apaga, eventualmente volverán al menú de juegos. En el código del menú, verificamos el indicador 'GameStarted'. Si está configurado, estamos seguros de que hemos detectado una desconexión en el juego de antes. Luego podemos aplicar el resultado almacenado a la puntuación / estadísticas de los jugadores. Será lo mismo que si el jugador perdiera el juego. También es una buena idea poner una alerta informando al jugador de lo que está sucediendo. Luego, una vez que vea que hay consecuencias por desconectarse a mitad del juego, verá que el comportamiento comienza a cambiar.


Eso es bastante astuto. Obviamente, no puede aplicarse igualmente bien a todos los tipos de juegos, pero el concepto de calcular las posibles consecuencias por adelantado es agradable.
Kylotan

1
Sin embargo, bastante duro para la desconexión accidental, podría usar una solución en esa área.
Kzqai

5

Creo que la única forma de lograr esto sería una cuestión de la estructura de tu juego. Hay dos formas de hacer que la trampa sea menos deseable: castigo o recompensa. Entonces, si no quieres un castigo adverso, piensa en formas de recompensar al jugador que no cayó.

En lugar de que la recompensa de PvP sea el botín del cuerpo del conquistado (lo que hace que dejar caer una cosa muy mala) haga que ganar otorgue alguna recompensa como exp., Oro o algo completamente diferente (¿Puntos? Clasificación?). Si uno de los jugadores es expulsado, el jugador restante recibe la recompensa y el jugador que fue expulsado no gana nada pero no pierde nada. A menos que sea un sistema de clasificación, en cuyo caso el jugador que se vaya podría perder algunos puntos de clasificación.


Ese es un análisis único, me gusta.
Kzqai

Esto podría ser explotado por dos jugadores que se conocen. Pueden repetir esto tantas veces como quieran, porque el perdedor no tiene penalidad.
hasta el

5

Lineage II lo hace así:

  • No puedes salir del cliente del juego durante una pelea: cualquier pelea comienza, sin importar si atacaste, atacaste o sanaste a un compañero de equipo que está peleando y estás en "posición de pelea", que dura 15 segundos después de la última acción. se hizo.
  • Si de todos modos te desconectas o tu juego se bloquea, tu personaje permanece en el juego durante esos 15 segundos antes de desaparecer. Incluso continúa atacando automáticamente lo que sea que estaba atacando, pero sin usar habilidades, lo mismo que lo haría si fuera AFK.
  • Sin embargo, hay una manera de desconectarse instantáneamente, volviendo a conectarse a la misma cuenta con otro cliente. La comunidad considera esto como un límite de trampas cuando se hace en PvP, y algunas herramientas de trampa tienen la opción de usarlo también, por lo que no se usa mucho allí. Sin embargo, al morder demasiado para masticar PvE, algunas personas todavía usan este truco para evitar muertes innecesarias (aunque hay elementos en el juego que permiten casi lo mismo, a saber, los "pergaminos bendecidos de escape").
  • Reconectarse a una zona marcada con PvP (tierra del castillo durante un asedio, por ejemplo) y algunas áreas específicas de jefes épicos no instanciados mueve al personaje a la ciudad más cercana (zona segura). Por lo tanto, desconectarse allí para evitar "perder" conlleva una penalización para su equipo, lo que significa que las normas sociales del juego lo desaconsejan.

Personalmente, lo haría de manera similar, solo permitiría a los jugadores predefinir las acciones que su personaje está tomando en la desconexión (quedarse y luchar, correr a la zona segura más cercana evitando el aggro, usar un desplazamiento regular de escape, usar un desplazamiento bendito de escapar, ...) y hacer que los personajes persistan en el mundo del juego incluso si el jugador no está conectado.


¡Agradable! ¡Me gusta! :)
Haga clic en Aceptar el

3

El que se desconectó morirá una vez que sea apuñalado lo suficiente, y el otro será acreditado por el asesinato. Cualquier cosa más indulgente será explotada.

En general, hay un temporizador de 1 a 5 minutos antes de que su cuerpo abandone el mundo.


3

No hay forma de determinar qué causó la desconexión (¿se cortó la alimentación? ¿Lancé furiosamente mi máquina contra una pared?), Por lo que solo puede suponer que el usuario está intentando (o intentaría) hacer trampa y hacerlos vulnerables por X minutos


3

La forma en que EVE Online maneja esto es la siguiente:

  • La nave comienza a engancharse 15 segundos después de la desconexión. Si la urdimbre está revuelta, la nave no se deformará. (La nave de tu personaje comenzará a "escapar" después de 15 segundos, a menos que esté "atrapada" por otro jugador)

  • El temporizador PVP (tiempo hasta que el jugador "huye" mientras está en combate PvP) se establece en 3 minutos. (Esto es para contrarrestar una serie de otros temporizadores).

  • El temporizador de la APN permanece en 1 minuto, pero la nave se deforma después de 15 segundos a menos que la APN revuelva la deformación.

  • Cuando un barco tiene el objetivo bloqueado por el jugador, debe cambiar al temporizador pvp (para contrarrestarlo usando el temporizador de 1 minuto si se desconecta en circunstancias en las que no es objetivo hasta que se establece el temporizador).



2

Si tienes una forma de modelar los patrones habituales de los jugadores en la batalla, puedes enviarlos a un modo AI hasta que se vuelvan a conectar o la batalla termine, lo que ocurra primero. Pero no les des ninguna recompensa (exp, artículos, etc.) por la batalla a menos que regresen en X cantidad de tiempo.


0

Implementaría algún tipo de histéresis. Puedes usar la zanahoria y el palo. Pero elegir cuál usar se puede basar en el historial (también puede hacer un análisis de su conexión y "habilidad para ganar" actual y usar eso). Es como lo harías en persona con suerte. Modelo simple:

  • Si soy "malo" y yo DC obtengo el palo. Ahora estoy más mal.
  • Si soy "malo" y completo, no obtengo el palo, pero tampoco recibo la recompensa. Ahora estoy más cerca de ser bueno.
  • Si soy "bueno" y soy DC, no obtengo el palo, pero tampoco recibo la recompensa. Ahora estoy más cerca de ser malo.
  • Si soy bueno y completo obtengo la recompensa. Ahora estoy más bien.

Puedes abusarlo sí. Pero hacerlo podría requerir más esfuerzo que solo morder la bala. (Si tomara 2 DCs para ser malo, por ejemplo, técnicamente podría deshacerse de la mitad de sus pérdidas. Pero mitiga algunos abusos y, en el caso de jugadores menos inteligentes, todos los abusos).

De acuerdo con esto, significa que los marcadores no sumarán el 100%. Ya que puede DC mientras está bien y no registrar una pérdida. Pero el otro buen jugador puede registrar una victoria. Además, no sumar el 100% significa que 2 jugadores pueden cooperar apagando al jugador DC para acumular victorias.

Por lo tanto, no es infalible, pero el análisis bayesiano agregado de gamestate + conexión probablemente podría detectar el funkiness y hacer que este esquema sea a prueba de balas. (Puede derrotar el análisis bayesiano, pero los humanos no son buenos para hacer esto y las matemáticas están fuera del alcance de la mayoría de las personas, sin mencionar la inversión de tiempo para "preparar" una pelea para que DC esté bien).


Hmmm Puedo ver un problema no rectificable ... Si el "mal" ganador podría quejarse de no obtener su "victoria" a menos que haga que el esquema esté documentado abiertamente. Lo que, por supuesto, invita a la intromisión. Posible solución: Ocultar las recompensas hasta el final de una "temporada" que al menos consolida el problema ... pero puede llevar a que los jugadores "malos" caigan de la "inversión" de tiempo perdido. ¿Ganar-ganar?
Negro
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.