El crecimiento en los últimos años en la popularidad de los juegos y la cantidad de jugadores disponibles para jugar online, ha provocado el interés en arquitecturas peer-to-peer para el desarrollo de juegos multiusuarios. Sin embargo, el desarrollo de juegos peer-to-peer es difícil. Aunque ofrecen flexibilidad y escalabilidad, el desarrollo de estos juegos no es aún una disciplina madura.
El primer problema se encuentra en el desarrollo de un mecanismo para asegurar la consistencia del estado global del juego entre los peers de la red. El estado del juego es lo que los usuarios perciben en sus terminales al interactuar con el juego. Por lo tanto, asegurar la consistencia es necesario para lograr que los jugadores perciban el mismo juego en sus terminales. Además, los juegos imponen ciertas restricciones, como es la velocidad de respuesta. Esta indica que las acciones realizadas por los usuarios deben verse reflejadas en todos los nodos en el menor tiempo posible, de modo que el juego permanezca jugable.
La dificultad en el desarrollo de estos juegos aumenta debido a la falta de soluciones reusables. Muchos de los trabajos actuales no están diseñados para ser reusables, sino que son soluciones ad hoc para juegos particulares. Es por ello que el desarrollador de juegos peer-to-peer debe programar la totalidad de la funcionalidad. Esto provoca que el tiempo de desarrollo y la complejidad aumenten.
En este trabajo se presenta el desarrollo de un framework que provee comunicación peer-to-peer entre los nodos de un juego. Se analizan distintas alternativas para lograr la consistencia del estado global del juego, y se propone un mecanismo basado en el algoritmo de sincronización ”Misra Synchronization”. El desarrollo del framework facilita la tarea del desarrolador de juegos, permitiendo el reuso de diseño y de código.
Se presentan dos casos de estudio en los cuales el framework desarrollado fue aplicado, y se describen las conclusiones obtenidas.