• No se han encontrado resultados

Un framework para comunicación Peer-to-peer en juegos multiusuarios

N/A
N/A
Protected

Academic year: 2021

Share "Un framework para comunicación Peer-to-peer en juegos multiusuarios"

Copied!
46
0
0

Texto completo

(1)

Introducci´on Consistencia del estado del juego en arquitecturas P2P Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Un framework para comunicaci´

on Peer-to-peer en

juegos multiusuarios

Mart´ın Rosenfeld Facultad de Inform´atica. U.N.L.P.

21 de Diciembre 2009

(2)

Introducci´on Consistencia del estado del juego en arquitecturas P2P Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Contenidos

1 Introducci´on

2 Consistencia del estado del juego en arquitecturas P2P

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

3 Framework desarrollado

Dise˜no del framework

(3)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Juegos multiusuarios

Juegos multiusuarios

Juegos jugados por m´ultiples participantes en simult´aneo.

Juegos multiusuarios online o en red local.

Juegos casuales colaborativos

Juegos casuales (Ej.: http://www.kongregate.com). Juegos colaborativos.

Algunos requerimientos

Velocidad de respuesta.

Soporte para din´amica de colaboraci´on.

Jugabilidad.

(4)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Juegos multiusuarios

Juegos multiusuarios

Juegos jugados por m´ultiples participantes en simult´aneo.

Juegos multiusuarios online o en red local.

Juegos casuales colaborativos

Juegos casuales (Ej.: http://www.kongregate.com). Juegos colaborativos.

Algunos requerimientos

Velocidad de respuesta.

Soporte para din´amica de colaboraci´on.

(5)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Juegos multiusuarios

Juegos multiusuarios

Juegos jugados por m´ultiples participantes en simult´aneo.

Juegos multiusuarios online o en red local.

Juegos casuales colaborativos

Juegos casuales (Ej.: http://www.kongregate.com). Juegos colaborativos.

Algunos requerimientos

Velocidad de respuesta.

Soporte para din´amica de colaboraci´on.

Jugabilidad.

(6)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Juegos Peer-to-peer

Inter´es en arquitecturas Peer-to-peer.

Problemas

Dificultad para asegurar la consistencia del estado global del juego. Reusabilidad de las soluciones.

(7)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Consistencia del estado del juego

Estado del juego

Se define como toda la informaci´on relevante y variable de los

elementos que forman parte del juego.

Elementos: avatar, oponentes, items, proyectiles...

Atributos: posici´on, direcci´on, velocidad, energ´ıa, estado, vidas...

Requerimiento: vistas consistentes del estado del juego.

(8)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Consistencia del estado del juego

Estado del juego

Se define como toda la informaci´on relevante y variable de los

elementos que forman parte del juego.

Elementos: avatar, oponentes, items, proyectiles...

Atributos: posici´on, direcci´on, velocidad, energ´ıa, estado, vidas...

(9)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Consistencia en Cliente/Servidor

Simple.

Copia ´unica del estado del juego, almacenada en el servidor.

(10)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Consistencia en Peer-to-peer

Cada nodo ejecuta una copia id´entica del juego.

Una copia por nodo.

Las copias en cada nodo deben mantenerse consistentes.

→ no es simple.

(11)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Consistencia en Peer-to-peer

Cada nodo ejecuta una copia id´entica del juego.

Una copia por nodo.

Las copias en cada nodo deben mantenerse consistentes. → no es

simple.

(12)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Modelo de interacci´

on

Concepto de evento.

Detecci´on de evento.

Actualizaci´on de copia del estado del juego.

(13)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Problema de aseguramiento de consistencia en P2P

Retrasos en la red y otros factores pueden producir resultados indeseables.

(14)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

Sincronizaci´

on de eventos

Soluci´on

Dados los nodos del juego N1, N2,...., Nn que contienen copias id´enticas

del estado global del juego S. Si los nodos ejecutan la misma secuencia

ordenada de eventos (locales o remotos) E1, E2,...., En, entonces

formar´an copias id´enticas del estado global del juego S’.

→ consistencia.

(15)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

Sincronizaci´

on de eventos

Soluci´on

Dados los nodos del juego N1, N2,...., Nn que contienen copias id´enticas

del estado global del juego S. Si los nodos ejecutan la misma secuencia

ordenada de eventos (locales o remotos) E1, E2,...., En, entonces

formar´an copias id´enticas del estado global del juego S’.→ consistencia.

Necesidad de un algoritmo de sincronzaci´on.

(16)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

Sincronizaci´

on de eventos

Soluci´on

Dados los nodos del juego N1, N2,...., Nn que contienen copias id´enticas

del estado global del juego S. Si los nodos ejecutan la misma secuencia

ordenada de eventos (locales o remotos) E1, E2,...., En, entonces

formar´an copias id´enticas del estado global del juego S’.→ consistencia.

(17)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

Algoritmos de sincronizaci´

on - Clasificaci´

on

Algoritmos de sincronizaci´on conservadores

Ejecuci´on ”segura” de eventos.

Tiempo de sincronizaci´on.

Algoritmos de sincronizaci´on optimistas

Snapshot y rollback.

Tiempo y espacio del snapshot. Efecto de rollback en juegos.

(18)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

TimeWarp Synchronization - Algoritmo de sincronizaci´

on

(19)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

TimeWarp Synchronization - Algoritmo de sincronizaci´

on

optimista

(20)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

Misra Synchronization

Asumciones

Canales confiables. Canales FIFO.

(21)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

Misra Synchronization

Asumciones

Canales confiables. Canales FIFO.

Env´ıo de eventos con valor de reloj (timestamp) ascendente.

(22)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

Misra Synchronization

M´odulos Generador de eventos. Receptor de eventos. Ejecutor de eventos. while true do 1

while not (all queues not empty) do 2

wait; 3

end 4

event = event with min clock value; 5

execute event; 6

end 7

(23)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

Misra Synchronization

M´odulos Generador de eventos. Receptor de eventos. Ejecutor de eventos. while true do 1

while not (all queues not empty) do 2

wait; 3

end 4

event = event with min clock value; 5

execute event; 6

end 7

Algorithm 2: Misra Synchronozation

(24)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

Misra Synchronization

(25)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P

Misra Synchronization

Adaptaciones a Misra Synchronization

Misra Synchronization

Ejecuci´on no segura.

(26)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Adaptaciones

¿Qu´e ocurre cuando un usuario permanece ocioso?

Cola vac´ıa en todos los nodos del juego. Retraso en la ejecuci´on de eventos. Soluci´on: eventos nulos.

(27)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Adaptaciones

¿Qu´e ocurre cuando un usuario permanece ocioso?

Cola vac´ıa en todos los nodos del juego. Retraso en la ejecuci´on de eventos. Soluci´on: eventos nulos.

(28)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

(29)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Adaptaciones

Eventos que dependen del paso del tiempo.

Ej.: oponentes, proyectiles... Necesidad de sincronizaci´on. Soluci´on: eventos de tick.

(30)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Adaptaciones

Eventos que dependen del paso del tiempo.

Ej.: oponentes, proyectiles...

Necesidad de sincronizaci´on. Soluci´on: eventos de tick.

(31)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Adaptaciones

Eventos que dependen del paso del tiempo.

Ej.: oponentes, proyectiles... Necesidad de sincronizaci´on.

Soluci´on: eventos de tick.

(32)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Adaptaciones

Eventos que dependen del paso del tiempo.

Ej.: oponentes, proyectiles... Necesidad de sincronizaci´on. Soluci´on: eventos de tick.

(33)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Eventos de tick

(34)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

(35)

Introducci´on

Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado Casos de estudio Conclusiones y trabajo a futuro

Sincronizaci´on de eventos en juegos P2P Misra Synchronization

Adaptaciones a Misra Synchronization

Eventos de tick

(36)

Introducci´on Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado

Casos de estudio Conclusiones y trabajo a futuro

Dise˜no del framework Decisiones de implementaci´on

Framework desarrollado

Definici´on de framework.

¿Qu´e permite el framework?

Comunicaci´on Peer-to-peer entre los nodos de un juego. Soluci´on al problema de consistencia, basado en el algoritmo de sincronizaci´on Misra Synchronization.

Caracter´ısticas.

Framework de caja blanca. Framework aplicable a juegos. Implementado en C++.

(37)

Introducci´on Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado

Casos de estudio Conclusiones y trabajo a futuro

Dise˜no del framework

Decisiones de implementaci´on

Eventos

Unidad de ejecuci´on.

(38)

Introducci´on Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado

Casos de estudio Conclusiones y trabajo a futuro

Dise˜no del framework

Decisiones de implementaci´on

Decisiones de implementaci´

on

Componente Bootstrap Server.

Protocolo de comunicaci´on TCP para propiedades de los canales de

comunicaci´on.

(39)

Introducci´on Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado

Casos de estudio Conclusiones y trabajo a futuro

Dise˜no del framework

Decisiones de implementaci´on

Decisiones de implementaci´

on

Componente Bootstrap Server.

Protocolo de comunicaci´on TCP para propiedades de los canales de

comunicaci´on.

Mecanismo de timing (reloj global).

(40)

Introducci´on Consistencia del estado del juego en arquitecturas P2P

Framework desarrollado

Casos de estudio Conclusiones y trabajo a futuro

Dise˜no del framework

Decisiones de implementaci´on

Decisiones de implementaci´

on

Componente Bootstrap Server.

Protocolo de comunicaci´on TCP para propiedades de los canales de

comunicaci´on.

(41)

Introducci´on Consistencia del estado del juego en arquitecturas P2P Framework desarrollado

Casos de estudio

Conclusiones y trabajo a futuro

Casos de estudio

Destructor

Space Shooter

(42)

Introducci´on Consistencia del estado del juego en arquitecturas P2P Framework desarrollado

Casos de estudio

Conclusiones y trabajo a futuro

Casos de estudio

Destructor Space Shooter

(43)

Introducci´on Consistencia del estado del juego en arquitecturas P2P Framework desarrollado Casos de estudio

Conclusiones y trabajo a futuro

Conclusiones y resultados obtenidos

Soluci´on totalmente descentralizada para asegurar la consistencia.

Adaptaci´on de ”Misra Synchronization” para juegos.

Performance y jugabilidad de los juegos.

Soluci´on reusable. Aplicaci´on en dos casos de estudio.

(44)

Introducci´on Consistencia del estado del juego en arquitecturas P2P Framework desarrollado Casos de estudio

Conclusiones y trabajo a futuro

Trabajo a futuro

T´ecnicas de agregaci´on y compresi´on de paquetes.

Detecci´on de nodos ca´ıdos.

T´ecnicas de localidad de inter´es.

(45)

Introducci´on Consistencia del estado del juego en arquitecturas P2P Framework desarrollado Casos de estudio

Conclusiones y trabajo a futuro

Federico Balaguer. Alicia D´ıaz.

Compa˜neros de LIFIA.

(46)

Introducci´on Consistencia del estado del juego en arquitecturas P2P Framework desarrollado Casos de estudio

Conclusiones y trabajo a futuro

Referencias

Documento similar

This paper proposes a peer-to- peer based solution, called Peer-to-Peer Home Agent Network, in order to discover a close Home Agent.. The proposed solution is simple, fully

En cada antecedente debe considerarse como mínimo: Autor, Nombre de la Investigación, año de la investigación, objetivo, metodología de la investigación,

All levels of school leadership have a role in promoting and sustaining such a climate and practices of cultural responsivity in schools that facilitate all students' learning

Se ha trazado como Objetivo General desarrollar un framework que permita realizar juegos sobre J2ME para dispositivos móviles que se comuniquen vía Bluetooth; y como

Con el análisis desarrollado en este capítulo se puede llegar a la conclusión de que es necesario para definir una DSSA un ambiente de desarrollo, una arquitectura base, un framework

selecciona el botón “Saltar Presentación” de la vista de “Presentación” o cuando finaliza el tiempo de ejecución de la animación de presentación de la

Se utilizó Java como lenguaje de programación, PostgreSQL 8.3 como servidor de aplicaciones, el framework Hibernate para el acceso a datos, el framework Seam para la unión entre

Descripción: Prueba la funcionalidad de configuración del componente Button en cuanto a diseño mediante imágenes para ajustarse a las necesidades del cliente. Condiciones