Desarrollo de una plataforma para juegos distribuidos en red

Luna Méndez, Miguel and Martínez Hortelano, Daniel (2018). Desarrollo de una plataforma para juegos distribuidos en red. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. de Sistemas Informáticos (UPM), Madrid.

Description

Title: Desarrollo de una plataforma para juegos distribuidos en red
Author/s:
  • Luna Méndez, Miguel
  • Martínez Hortelano, Daniel
Contributor/s:
  • Arévalo Viñuales, Sergio
  • Muñoz Fernández, Isabel
Item Type: Final Project
Degree: Grado en Ingeniería de Computadores
Date: 2018
Subjects:
Freetext Keywords: Videojuegos Redes de ordenadores
Faculty: E.T.S.I. de Sistemas Informáticos (UPM)
Department: Sistemas Informáticos
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (1MB) | Preview
[img] Archive (ZIP) - Users in campus UPM only
Download (944kB)

Abstract

Un juego en red es una aplicación que permite la participación en un mismo juego a varios jugadores situados remotamente. Típicamente, este tipo de juegos utilizan un servidor centralizado que recibe el movimiento de un jugador y lo propaga al resto de jugadores. Este tipo de arquitectura genera problemas como la dependencia de un servidor activo para mantener las partidas o las ventajas en términos de latencia para los jugadores más cercanos al servidor. Además se le da al servidor una carga muy grande de trabajo cuando soporta múltiples partidas, lo que implica un aumento en la latencia. El objetivo de este proyecto es el desarrollo de una plataforma que permita un juego en línea con una menor dependencia del servidor, de forma que las partidas se realicen con un sistema distribuido. Esto hace que las partidas en curso se mantengan activas aunque existan caídas del servidor y se eliminan los problemas de latencia que dependían del servidor. La estructura para esta plataforma de juego en red se compone de un proxy para un juego local desarrollado en Unity y un servicio de comunicación de grupos (GCS). Un grupo está formado por un conjunto de procesos, donde cada proceso representa un jugador en cada partida. El servicio de comunicación de grupos soporta un subservicio de membresía que controla que procesos pertenecen a un grupo y un subservicio de multicast fiable, que permite difundir el mensaje de un proceso al resto de procesos del grupo. El multicast fiable además asegura que todos los procesos en una partida van a recibir el mismo conjunto de mensajes. El acceso por parte de los procesos al servicio de membresía se realiza mediante Llamadas a Procedimientos Remotos (RPCs). Para corroborar que esta plataforma funciona correctamente se ha partido de un juego local desarrollado sobre el entorno Unity. El juego en red consiste en un videojuego de carreras de coches. Cada jugador mueve su coche mediante un proxy de Unity y la combinación del GCS se propaga dicho movimiento al resto de los jugadores remotos. Cuando un proxy de Unity recibe un movimiento de un coche perteneciente a un jugador remoto lo representa en la pantalla del jugador local. Es destacable el hecho de que los jugadores pueden de forma dinámica unirse y abandonar partidas. El control de los jugadores en una partida es responsabilidad del servicio de membresía del GCS. Abstract: An online videogame is an application that allows the participation in the same game to several players located remotedly. Typically, this kind of videogames use a centralized server that receives the movements of a player and propagates it to the rest of the players. This type of architecture generates problems such as the dependence of an active server to mantain the current games or the advantage in terms of latency for the closest players to the server. In addition, the server is given a very large load of work when it supports multiple games, which implies an increase in latency. The goal of this project is the developement of a platform that allows an online game with less dependence on the server, so the games are supported by a distributed system. This makes that the current games remain active even if there are server crashes, and the latency problems that depens on the server are eliminated. The structure of this online gaming platform consists of a proxy for a local game developed in Unity and a group communication service (GCS). A group is formed by a set of processes, where each process represents a player in each game. The group communication service supports a membership subservice that controls which processes belong to a group, and a reliable multicast subservice, which allows the message of one process to be spread to the rest of the group’s processes. The reliable multicast also ensures that all processes in a game will receive the same set of messages. Access to the processes of the membership service is done through Remote Procedure Calls (RPCs). To verify that this platform works correctly, it has started from a local videogame developed on the Unity environment. The online videogame consists of a videogame of car races. Each player moves his car using the game proxy and the combination of the GCS propagates that movement to the rest of the remote players. When a Unity proxy receives a movement from a car belonging to a remote player it represents it on the local player's screen. It is remarkable the fact that players can dynamically join and leave games. The control of players in a game is the responsibility of the membership service.

More information

Item ID: 52066
DC Identifier: http://oa.upm.es/52066/
OAI Identifier: oai:oa.upm.es:52066
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 17 Sep 2018 09:21
Last Modified: 03 Oct 2018 06:48
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM