Donnybrook: 1.000 jugadores simultáneos en una misma partida

Donnybrook: 1.000 jugadores simultáneos en una misma partida
Facebook Twitter Flipboard E-mail

El título de este post es espectacular, ¿eh? lo he cogido tal cual de Blogamers (gracias Miguel Angel!). El post me llamó la atención enseguida: En un estudio llevado a cabo entre Microsoft Research, la Universidad de San Diego y la Universidad Carnegie Mellon están investigando una tecnología (Donnybrook) que permitiría jugar online unas 1.000 personas a la vez.

Me bajé el documento que han publicado sobre la investigación y me pareció muy interesante, ya que explica los problemas actuales de los juegos en red y qué están haciendo para solucionarlos. Y además llevo una semana dándole si parar a la demo beta del Call Of Duty 4, así que tengo muy fresco esto del juego online. Por esta vez, y sin que sirva de precedente, me he empollado el documento y os lo voy a resumir, eliminando tecnicismos.

Y digo sin que sirva de precedente porque el documentillo contiene joyas como esta fórmula, que os prometo que he intentado entender:

...dónde âij es la desviación de puntería del jugador i al jugador j, siendo el ángulo entre el vector de avance del jugador i y el vector de dirección del jugador i al jugador j. Flipas.

Bueno, cachondeos aparte, lo que me resultó interesante de la noticia es que dicen que lo han probado con Quake 3, y que las pruebas son buenas porque así lo dicen los jugadores. Para los que jugamos en red habitualmente, incluso si no estáis en el mundillo de la informática y las redes, está muy bien como cultura general. Vamos por partes.

¿Cómo funciona un juego en red? Los juegos en red pueden ser basados en servidor o peer-to-peer. La tendencia es que sean peer-to-peer, ya que tiene menos costes de mantenimiento. En un juego peer-to-peer tipo FPS, y desde el punto de vista de la red y el ancho de banda, el programa envía periódicamente información sobre la posición de su jugador a todos los demás participantes del juego. Normalmente cada 50 milisegundos. Así cada participante tiene en su máquina una réplica de los demás jugadores. Por ejemplo en una partida de esas de Call Of Duty 4 en las que entramos 12 personas a lo loco, mi consola está enviando datos sobre dónde estoy y qué hago a los otros 11 individuos unas 20 veces por segundo, para que puedan matarme (virtualmente) a gusto.

¿Y cual es el problema? Las redes domésticas actuales, las ADSLs y demás, tiene un ancho de banda limitado, y mucho más limitado de subida de datos (la información que yo envío). Si no se pueden enviar todos los paquetitos de información por la red vemos el famoso efecto lag. Siguiendo el ejemplo del CoD4, si mi ADSL no da a basto para enviar información a todos, los enemigos me ven ir a saltos por el escenario. Como si yo tuviera un teletransportador portátil al que se le están acabando las pilas. La verdad es que los juegos modernos están muy trabajados, y aunque muchos eliminan el efecto visual feo del lag, se nota que a veces disparo mucho a un tío pero no se cae. Eso es porque a su consola/ordenador no le están llegando mis disparos, o porque su posición real no es la que veo yo en pantalla, ya que la que hay en pantalla está desactualizada. Bueno, también puede ser porque yo soy muy malo...

La posible solución La gente detrás de Donnybrook ha cogido tres buenas ideas y la han llevado a la práctica con Quake 3. Consiste en: * Atención establecida (focus set), basado en la idea de que los jugadores tienen límites en aquello en lo que pueden prestar atención. * Acuerdo rápido por parejas (pairwise rapid agreement), insistiendo en que la interacción entre jugadores debe ser constante e inmediata. * IA guiable (guidable AI), para evitar inconsistencias que eliminen realismo al juego. Nada de teletransportadores, vaya.

La atención establecida se basa en que el ser humano que juega tiene una atención limitada. O sea, que normalmente sólo estás prestando atención al tío al que estás apuntando. El sistema consiste en calcular, de forma estimada, la cantidad de atención que estás prestando a los demás jugadores. Luego esta información se envía a los demás jugadores, mientras que tú recibes los valores de la cantidad de atención que los demás tienen puesta en tí. Entonces, tu consola/ordenador reserva más ancho de banda para aquellos jugadores que te están prestando más atención, y deja un ancho de banda limitado a aquellos jugadores que no te están mirando.

Lo interesante de este efecto es que funciona: por mucha gente que haya en la partida, para cada jugador sólo son importantes aquellos otros jugadores en los que se tiene centrada su atención. Para el resto de jugadores sólo es necesario un ancho de banda mínimo para garantizar la integridad de la partida, pero no demasiado detallado.

La idea del acuerdo rápido por parejas se refiere a la interacción entre jugadores. Interacción es cuando un jugador (writer, en el documento) afecta a otro (target). Por ejemplo cuando alguien me dispara y me baja la salud en el juego. La idea que explica el documento es que se establezca una comunicación directa y dedicada entre ambos jugadores de forma que el writer sea el que inmediatamente actualiza el estado del target. Luego el target actualiza su propio estado y lo notifica a los demás.

La mejora en este punto está en que el jugador que inicia la acción tiene más control sobre ella, y no depende del ancho de banda general de la partida, ni de su consumo para/con los demás jugadores que no sean el target. En caso de producirse una inconsistencia (que la acción no pueda realizarse), el target notifica al writer y ya está; la cosa queda entre ellos dos.

Dado que se está hablando siempre de reservar más ancho de banda para aquello en lo que se está prestando atención o aquello con lo que se está interactuando, ¿qué pasa con el resto de la partida?. Si se hiciera igual que ahora, es decir, enviando información sobre la posición y movimiento/acción del jugador, el resultado sería insuficiente, ya que los envíos de datos son infrecuentes.

La IA guiable soluciona este problema, y consiste en no enviar información absoluta de la posición, sino una guía o predicción de actuación, que defina cómo debe actuar la réplica hasta la siguiente actualización. La predicción contiene básicamente dos parámetros: posición y dirección hacia donde se mira. Así, entre actualización y actualización, en el caso del Call Of Duty, los jugadores lejanos a mí no tendrían datos exactos constantemente sobre qué hago y quién me mata. Sólo tendrían una predicción de dónde estaría antes de la siguiente actualización. Impresionante.

Conclusión Muchos pensarán (yo lo hice), que estos sistemas falsean las partidas, ya que consisten en dedicar más ancho de banda a unos aspectos y menos a otros. Simplemente eliminan parte del realismo. Pero el objetivo de la investigación se basa en medir cómo de divertido resulta esto para los jugadores. Las mediciones sobre las pruebas en Quake III son sobre cómo de divertido resulta comparándolo con cómo sería jugar en un entorno con mucho ancho de banda, sin Donnybrook, etc. Parece ser que el éxito fue total, ya que los jugadores, después de probar Quake III en distintas condiciones, preferían jugar con Quake III y Donnybrook activado porque les resultaba más divertido.

Bueno, salvo uno que prefería jugar con Quake III, con muy poco ancho de banda y sin Donnybrook. En sus palabras, "es que le recordaba a cuando jugaba a Quake I con un model de 28,8k"

La conclusión que saco yo es que algún día sí será posible eso que tanto ansiamos algunos: que las partidas online a los FPS empiecen a ser batallas campales de verdad. Guerras entre ejércitos enormes en escenarios enormes. Aunque claro, cuando llegue ese momento, seguro que echamos de menos los 6 vs 6 que tanto nos gustan ahora.

Vía | Blogamers y Microsoft Research (pdf)

Comentarios cerrados
Inicio