UCM

Máster en
desarrollo de videojuegos

Objetivos

Esta es la especialidad con más solera en el máster. Nuestro objetivo es especializar a ingenieros en Informática en la programación profesional de videojuegos. Partiendo de la base de que los estudiantes llegan al máster con formación previa en programación orientada a objetos en C++ y en las principales áreas de la Informática (ingeniería del software, redes, inteligencia artificial, informática gráfica), nos dedicamos a estudiar específicamente las técnicas aplicadas en cada una de esas áreas en la construcción de videojuegos comerciales. El programa se complementa con nociones de arte y diseño, con el objetivo de proporcionar a los estudiantes una visión integradora del proceso de producción de videojuegos.

Se estudian las técnicas de programación utilizadas en el desarrollo de videojuegos AAA, así como aquellas específicas para videojuegos destinados a plataformas móviles. Un elemento central del máster es el desarrollo en equipo de un videojuego para PC, utilizando el motor Unreal Engine 4, donde se ponen en práctica los contenidos estudiados en el máster, se desarrollan habilidades de trabajo en un grupo multidisciplinar, y se construye un juego acabado que servirá como carta de presentación de los estudiantes a la hora de postularse a un puesto de trabajo en las empresas del sector.

Al terminar esta especialidad, los estudiantes estarán preparados para buscar trabajo en la industria del videojuego como programadores de gameplay, programadores de engine gráfico, programadores de IA, programadores de física o programadores de herramientas.


Programa

Diseño de videojuegos

4 créditos

Pipeline de contenidos

3 créditos

Producción

2 créditos

Motores de videojuegos

8 créditos

Técnicas de programación específicas

6 créditos

Redes

4 créditos

Arquitectura software

6 créditos

Programación gráfica

6 créditos

Física

3 créditos

Inteligencia artificial

4 créditos

Videojuegos para dispositivos móviles

2 créditos

Proyecto de máster

12 créditos

Programa detallado

Motores de videojuegos (8 créditos)

Esta asignatura se centra en el estudio de los dos motores de referencia en el ámbito profesional del desarrollo de videojuegos. Primero se trata Unity 3D que tiene una arquitectura más limpia y permite introducir los conceptos de manera más sencilla. Después se trata Unreal Engine 4 que es el motor que se usa en los proyectos del máster. Unreal se compila desde su código fuente en C++ y se anima a los estudiantes a entenderlo y extenderlo.

  • Desarrollo de juegos en Unity 3D
  • Desarrollo de juegos en Unreal Engine 4

Profesores: Marco Antonio Gómez, Ismael Sagredo, Federico Peinado

Diseño de videojuegos (4 créditos)

Esta asignatura, además de una introducción histórica al mundo de los videojuegos, presenta la teoría fundamental del diseño de videojuegos y cómo aplicarla al desarrollo de niveles con herramientas profesionales.

  • Introducción histórica al diseño de videojuegos
  • Mecanismos
  • Documento de Concepto
  • Mecánicas
  • Interfaces

Profesores: Juan de Miguel

Arquitectura software (6 créditos)

En esta asignatura se estudia el esqueleto de un videojuego profesional programado en C++, explorando las soluciones arquitectónicas más usadas en la industria junto con las técnicas de C++ necesarias para su implementación. Además, se profundiza en la arquitectura e implementación de Unreal Engine 4.

  • Repaso de C++
  • C++ a gran escala y técnicas avanzadas
  • Arquitectura de videojuegos dirigida por datos
  • Bucle principal
  • Gestión de entidades
  • La arquitectura de Unreal Engine 4

Profesores: Marco Antonio Gómez, Pedro Pablo Gómez, Carlos León, Juan Antonio Recio, Gonzalo Flórez

Pipeline de contenidos (3 créditos)

En esta asignatura se pretende que el alumno tome contacto con los distintos tipos de contenido audiovisual que se integran en un videojuego, y así mismo con las herramientas más utilizadas en su creación, prestando especial atención a la gestión de animaciones en 3ds Max y su incorporación en Unreal. Se incluye así mismo un módulo sobre audio digital.

  • El pipeline de contenido gráfico: texturas, modelos y animaciones
  • Edición y manipulación de audio digital

Profesores: Jaime Sánchez, José Cuesta

Programación gráfica (6 créditos)

Tras un repaso a los conceptos fundamentales de la informática gráfica, esta asignatura se concentra en describir cómo se aplican estos conceptos en motores gráficos concretos desarrollados específicamente para la implementación de videojuegos, en particular se revisan Unity 3D y Unreal Engine. Se estudian así mismo técnicas de optimización específicas.

  • Fundamentos y APIs Gráficas
  • Framebuffer, transformaciones y proyecciones
  • Iluminación, texturas y modelado
  • Organización y ordenación espacial
  • El mundo de las consolas. Pipeline de contenidos
  • Efectos especiales: niebla de guerra, glows, ...
  • Hardware gráfico
  • Programación de shaders: Cg, HLSL
  • Programación gráfica en Unity 3D y Unreal Engine

Profesores: Marco Antonio Gómez, Pedro Pablo Gómez, Segundo Esteban, Guillermo Bañuls

Física (3 créditos)

Esta asignatura se dedica a la programación de comportamientos físicos en los juegos. Se estudian tanto los principios en los que se basan los motores de física como el uso concreto de los motores profesionales, con especial atención a PhysX que es el middleware de física de referencia. Se hace también un repaso al tratamiento de la física en Unreal Engine.

  • Uso y desarrollo de motores físicos
  • PhysX
  • Ragdolls, telas y fluidos
  • Física en Unreal Engine

Profesores: Antonio Sánchez, Iñaki Hernández

Inteligencia artificial (4 créditos)

En esta asignatura se cubren las técnicas que en el desarrollo profesional de videojuegos se consideran como inteligencia artificial, y que en general están bastante alejadas de lo que en Informática se suele estudiar bajo el mismo nombre. Se estudian las técnicas específicas de cada tipo de juego y se cubren también contenidos avanzados de aprendizaje automático. La mayoría de estas técnicas se ejemplifican sobre Unreal Engine.

  • Introducción, tipos de juegos y arquitectura
  • Representación del entorno y A*
  • Programación del comportamiento: FSM, BTs, Reglas
  • Percepción
  • Sistemas basados en localización
  • Aprendizaje automático, algoritmos genéticos, redes neuronales.

Profesores: Belén Díaz, Fernando Zazo, Javier Lucas

Técnicas de programación específicas (6 créditos)

En esta asignatura se cubren técnicas de programación específicas del desarrollo de videojuegos que no se suelen incluir en el curriculum de los estudios de Informática por su especificidad a este tipo de desarrollos.

  • Dispositivos de entrada
  • Ejecución de juegos bajo Windows: carga de recursos, autorun, distintas instancias, rendimiento, new y delete, depuración
  • Justificación, tipos y características de los lenguajes de script. LUA
  • Audio orientado a videojuegos 3D
  • Bibliotecas de renderizado de audio: OpenAL y FMOD
  • Analíticas en videojuegos: Unity 3D y Unreal

Profesores: Marco Antonio Gómez, Pedro Pablo Gómez, Jaime Sánchez, Juan Antonio Recio

Redes (4 créditos)

Tras un repaso a los conceptos básicos de redes modernas, esta asignatura se ocupa de las técnicas específicas que se emplean en los juegos en red, introduciendo primero los conceptos en juegos multijugador sobre redes locales para tratar luego los problemas específicos de los juegos masivos a través de Internet. Se revisan también los mecanismos que incluye Unreal Engine para el desarrollo de juegos multijugador.

  • TCP/IP e introducción a juegos en red
  • Programación con sockets
  • Resolución de problemas de conectividad: Firewalls, NAT
  • Desarrollo de juegos en red multijugador: diseño de la capa de lobby, optimización de rendimiento
  • Tolerancia a problemas de red en Internet: pérdida de paquetes, retardos, jitter

Profesores: David Llansó, Juan Antonio Recio

Producción (2 créditos)

El desarrollo industrial de videojuegos conlleva, desde el punto de vista de la Ingeniería del software, una serie de problemas específicos propios de la coordinación de un equipo multidisciplinar. En esta asignatura se presentan los problemas específicos y las soluciones empleadas, con especial atención a las metodologías ágiles que se recomiendan para el desarrollo del proyecto del máster.

  • Proceso de desarrollo y deliverables
  • Organización del equipo
  • Planificación y metodologías ágiles
  • Scrum
  • Kanban

Profesores: José Raluy

Videojuegos para dispositivos móviles (2 créditos)

En esta asignatura se analizan las plataformas móviles más populares para el desarrollo de juegos, las propietarias de Apple y las basadas en Android, presentando los lenguajes y APIs más utilizados profesionalmente, y presentando técnicas de programación que promueven el desarrollo multi-plataforma para estos dispositivos. Se incluyen así mismo técnicas de reconocimiento de marcadores y realidad aumentada.

  • Desarrollo multi-plataforma para dispositivos móviles
  • Juegos para iOS
  • Juegos para Android
  • Realidad aumentada

Profesores: Jorge Gómez, Rubén Fuentes

Tesis de máster (12 créditos)

La tesis de máster consiste en el desarrollo de un videojuego en Unreal Engine 4 que alcance una fase beta (feature-complete), e incluya al menos un nivel completo. El juego se desarrollará en equipos de 3 o 4 programadores con la colaboración de diseñadores, en la elaboración del concepto y diseño de niveles, artistas y productores de las otras especialidades del máster.

Tutores: Pedro Pablo Gómez, Fernando Zazo, Javier Lucas, David Llansó