La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Descubriendo la sincronización detrás de los juegos multiplayer Lucas Guaycochea – Javier Luiso 10 y 11 de Diciembre – Hotel Panamericano - Buenos Aires.

Presentaciones similares


Presentación del tema: "Descubriendo la sincronización detrás de los juegos multiplayer Lucas Guaycochea – Javier Luiso 10 y 11 de Diciembre – Hotel Panamericano - Buenos Aires."— Transcripción de la presentación:

1 Descubriendo la sincronización detrás de los juegos multiplayer Lucas Guaycochea – Javier Luiso 10 y 11 de Diciembre – Hotel Panamericano - Buenos Aires

2 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Índice Introducción Un sistema distribuido La Sincronización Solución desarrollada Usos de la plataforma

3 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Índice Introducción Un sistema distribuido La Sincronización Solución desarrollada Usos de la plataforma

4 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Introducción Juegos Multiplayer (I) Un juego multijugador o multiplayer es aquel donde al menos dos participantes desarrollan el juego en el mismo mundo virtual y existe interacción entre ellos.

5 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Introducción Juegos Multiplayer (II) Los jugadores pueden: Jugar en un mismo dispositivo (PC, consola). Jugar en distintos dispositivos: dentro de una misma red local. conectados a Internet.

6 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Introducción El Desafío El principal desafío es que en cada dispositivo, donde se lleva a cabo el juego, se perciba la misma realidad virtual. Los resultados de las acciones de cada jugador deben percibirse de la misma manera por todos. Las acciones deben comunicarse entre los participantes del juego. No debe degradarse la interacción de cada jugador en su dispositivo, manteniendo la fluidez del juego.

7 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Introducción Sistema Distribuido Un juego multiplayer tiene las características de un sistema distribuido. “Un conjunto de computadoras independientes que se presentan a sus usuarios como un sistema único y coherente” [1] En este caso, el juego, el mundo virtual, es el que se presenta como único a cada participante en cada dispositivo.

8 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Índice Introducción Un sistema distribuido La Sincronización Solución desarrollada Usos de la plataforma

9 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Características Dispositivos interconectados en una red. La comunicación se realiza mediante el envío de mensajes. Las latencias de la comunicación no deben degradar notoriamente la performance respecto de un sistema centralizado. Existen distintos modelos de comunicación o arquitecturas.

10 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Arquitecturas Los distintos tipos son: – Cliente/Servidor – Peer-to-peer – Híbridas

11 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Cliente/Servidor Esquema Arquitectura Cliente - Servidor

12 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Cliente/Servidor Características Nodos clientes que requieren servicios de un nodo servidor. [1] El servidor concentra el principal procesamiento del sistema. Las interacciones son sólo entre cada cliente con el servidor.

13 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Cliente/Servidor Características en los juegos… Nodos clientes que requieren servicios de un nodo servidor. [1] Clientes envían acciones de los jugadores y consumen información para evolucionar el mundo virtual. El servidor concentra el principal procesamiento del sistema. El servidor mantiene y evoluciona el estado del juego. Procesa las acciones de los clientes y difunde el nuevo estado. Las interacciones son sólo entre cada cliente con el servidor. Cada jugador se entera de las acciones de los demás ( o sus resultados) a través del servidor.

14 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Peer-to-peer Esquema Arquitectura Peer-to-peer

15 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Peer-to-peer Características Los nodos son todos iguales, no se diferencian entre ellos. El procesamiento es compartido entre todos los nodos. Todos los nodos se conectan entre ellos.

16 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Peer-to-peer Características en los juegos … Los nodos son todos iguales, no se diferencian entre ellos. Cada nodo mantiene una réplica del estado del juego. El procesamiento es compartido entre todos los nodos. No existe un punto central de procesamiento. Cada nodo procesa todas las acciones y evoluciona su copia del juego. Todos los nodos se conectan entre ellos. Cada nodo comunica a todos los demás las acciones realizadas por el jugador local.

17 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Arq. Híbrida Esquema Arquitectura Híbrida

18 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Arq. Híbrida Características Nodos clientes conectados a un nodo servidor. Nodos servidores interconectados entre ellos. El procesamiento principal se concentra en el grupo de servidores.

19 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Arq. Híbrida Características en los juegos … Nodos clientes conectados a un nodo servidor. Clientes envían acciones de los jugadores y consumen información para evolucionar el mundo virtual. Nodos servidores interconectados entre ellos. Los servidores se comunican entre ellos las acciones de los jugadores que tienen conectados. El procesamiento principal se concentra en el grupo de servidores. Cada servidor procesa las acciones y evoluciona el estado del juego.

20 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Análisis de los modelos Los modelos vistos pueden analizarse según: Su escalabilidad Latencia de las acciones Su robustez El manejo de la consistencia Su seguridad ante trampas (cheating) Motivos comerciales

21 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Escalabilidad En C/S, el servidor puede saturarse, se convierte en cuello de botella. En el modelo híbrido, la carga puede distribuirse entre los servidores. En P2P, cada nodo puede saturarse en presencia de muchos peers.

22 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Latencias El modelo C/S presenta mayores latencias. En P2P, la comunicación de acciones es directa.

23 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Robustez El servidor presenta un único punto de falla. En P2P, la caída de un nodo no afecta al resto. En arquitecturas híbridas, ante la caída de un servidor otro toma su lugar.

24 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Consistencia En C/S, es sencillo, fácil de implementar. En P2P, se requieren mecanismos especiales de sincronización.

25 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Seguridad En C/S, es sencillo controlar y detectar a los cheaters. En P2P, es más difícil detectar y evitar a los cheaters. Existen mecanismos más complejos para hacerlo.

26 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Motivos Comerciales C/S permite: – Dar control a la empresa productora. – Autenticar usuarios legales – Actualizar las copias clientes – Cobrar por uso de los servidores P2P, permite jugar sin la intervención de la empresa productora.

27 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Un sistema distribuido Consecuencias Múltiples participantes dentro de un mismo mundo virtual. Acciones que afectan al mundo, originadas en múltiples nodos. El orden en que se ejecuten dichas acciones determina hacia donde evoluciona el juego. La necesidad de establecer un orden único para ejecutar las acciones requiere incorporar un mecanismo que permita sincronizar los distintos dispositivos participantes.

28 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Índice Introducción Un sistema distribuido La Sincronización Solución desarrollada Usos de la plataforma

29 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires La Sincronización La sincronización es la base de los juegos multiplayer. Hace posible que los participantes jueguen “juntos” dentro de un mismo mundo virtual y que este sea percibido de manera consistente por todos.

30 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires La Sincronización

31 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires La Sincronización Las acciones de cada jugador generan eventos que tendrán su incidencia en el mundo virtual. Para una evolución consistente los resultados de las acciones deben ser vistos en el mismo orden por todos los participantes. Sincronizar se trata de decidir cuando es consistente ejecutar un evento.

32 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires La Sincronización Tipos de soluciones Conservativa Previenen la inconsistencia verificando que los eventos se ejecuten sólo cuando sea seguro hacerlo. Optimista Ejecutan los eventos al disponer de ellos. Cuando se detecta una inconsistencia se intenta corregirla deshaciendo las últimas operaciones realizadas.

33 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires La Sincronización Soluciones conservativas Lockstep Synchronization: El servidor ejecuta una acción en un instante de tiempo luego de recibir los comandos de todos los participantes. [2] Bucket Synchronization: El servidor espera un cierto tiempo antes de actualizar el estado del mundo virtual. Muchos RTS utilizan este mecanismo, esperando al participante “mas lento”.

34 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires La Sincronización Soluciones optimistas Time Warp Synchronization (TWS): En cada ciclo se guarda una captura del estado del juego, para poder restaurarlo si llega a ser necesario. SI esto sucede, se generan “anti-mensajes” para deshacer las acciones que se tornaron inválidas. Trailing State Synchronization (TSS): Se mantienen dos copias del estado del juego, tomadas en diferentes momentos. “Volver para atrar” es tomar la copia más antigua y volver a ejecutar todas las acciones nuevamente.

35 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Índice Introducción Un sistema distribuido La Sincronización Solución desarrollada Usos de la plataforma

36 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Solución Desarrollada Punto de partida Tenemos un motor gráfico para el desarrollo de simuladores El motor gráfico permite: – Modelar mundos virtuales. – Crear un escenario tridimensional. – Instalar objetos gráficos. – Dar comportamiento a los objetos gráficos. – Visualizar el escenario a través de una o más cámaras en diferentes ventanas. – Evolucionar los comportamientos en el tiempo. – Realizar consultas y obtener reportes de eventos del mundo virtual.

37 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Solución Desarrollada Metas Fijadas Desarrollar simuladores distribuidos. Aprovechar el motor gráfico. Abstraer al desarrollador de la distribución respecto a la actividad sobre el motor gráfico.

38 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Solución Desarrollada Ideas No introducir cambios en el motor gráfico. Encapsular el motor gráfico dentro de una plataforma. Desarrollar una capa encargada de la distribución sobre el motor gráfico. Proveer a la aplicación usuaria la misma interfaz que provee el motor gráfico.

39 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Solución Desarrollada Diseño general

40 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Arquitectura distribuida Organización lógica de los participantes Mecanismo de sincronización Solución Desarrollada Decisiones de diseño

41 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Solución Desarrollada Arquitectura Distribuida Adoptamos una arquitectura P2P: – Evitamos la necesidad de realizar sistemas que precisen un servidor especial para los aspectos gráficos. (Escalabilidad y Robustez) – Los simuladores estarán en una red local. (Seguridad) – El tiempo de respuesta es fundamental (Baja Latencia)

42 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Solución Desarrollada Organización lógica Usamos contextos de ejecución. – Representan la simulación de un mundo virtual particular. – Se establecen subgrupos de peers. – Son independientes entre sí. – Un nodo puede participar en dos o más simultáneamente.

43 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Solución Desarrollada Sincronización (I) Resolvemos la sincronización para garantizar la consistencia en cada nodo. Sincronizamos SÓLO las acciones que afectan al modelado del mundo virtual. Visualización, reportes y consultas se resuelven localmente en cada nodo. Utilizamos un mecanismo conservador. Para asegurar un orden temporal de las acciones, nos basamos en un algoritmo propuesto por Chandy y Misra [3].

44 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Solución Desarrollada Sincronización (II) El mecanismo de sincronización consta de 4 tareas o procesos: 1.Detecta las acciones locales, les incluye una marca de tiempo, y las difunde a los demás participantes. 2.Recibe las acciones de los demás participantes. 3.Ordena temporalmente las acciones locales y remotas. 4.Ejecuta las acciones de manera ordenada.

45 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Solución Desarrollada

46 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Solución Desarrollada Sincronización (III) Consideraciones importantes: – Cuando hay inactividad de un jugador, la primer tarea también debe enviar “acciones nulas”. – En cada nodo se implementó un reloj que marca el paso del tiempo de manera discreta. – Periódicamente los relojes se sincronizan con uno que es elegido como referencia o líder. – Localmente, la evolución del modelo en intervalos de tiempo también se ordena entre las demás acciones.

47 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Índice Introducción Un sistema distribuido La Sincronización Solución desarrollada Usos de la plataforma

48 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Usos de la plataforma Simulador para entrenamiento de tripulaciones de tanques de guerra argentinos. Ejercicios de uno o más vehículos. Ejercicios dirigidos por un instructor externo. Un instructor puede dirigir varios ejercicios simultáneamente. Simulador de vuelo en varias pantallas. La visión del piloto se muestra utilizando 2 o más proyectores. Demo: Pac–Tank ©

49 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Usos de la plataforma

50 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Referencias [1]. Tanenbaum, A., V. Steen, M.: Distributed Systems, Principles and Paradigms. Prentice Hall, Lugar (2002) [2]. Cronin, E., Filstrup, B., Jamin, S.: Cheat-Proofing Dead Reckoned Multiplayer Games. In Proc. ADCOG 2003, January 2003 [3]. Chandy K.M., Misra J.: Distributed Simulation: A Case Study in Design and Verfication of Distributed Programs. IEEE Transactions on Software Engineering, Vol. SE-5, No. 5, September 1979. []. Luiso, J., Guaycochea, L., Abbate, H.: Simuladores de entrenamiento distribuidos: Plataforma de desarrollo para ocultar los aspectos de la distribución. In Proc. WAVI 2010.

51 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires ¿ Preguntas ?

52 10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Muchas Gracias por su atención ! Lucas Guaycochea Javier Luiso


Descargar ppt "Descubriendo la sincronización detrás de los juegos multiplayer Lucas Guaycochea – Javier Luiso 10 y 11 de Diciembre – Hotel Panamericano - Buenos Aires."

Presentaciones similares


Anuncios Google