Especialidad de Programación

Objetivos generales

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 del 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 middleware como Ogre, PhysX o FMOD, 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)
  • Arquitectura software (5 créditos)
  • Pipeline de contenidos (3 créditos)
  • Programación gráfica (5 créditos)
  • Física (4 créditos)
  • Inteligencia artificial (5 créditos)
  • Técnicas de programación específicas (4 créditos)
  • Redes (4 créditos)
  • Ingeniería del software (4 créditos)
  • Videojuegos para dispositivos móviles (6 créditos)
  • Prototipado rápido de juegos (3 créditos)
  • Emprendimiento (1 crédito)
  • Proyecto de máster (12 créditos)

Programa detallado

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
  • Herramientas profesionales: Unreal Ed

Arquitectura software (5 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. Se desarrolla un primer juego completo sobre el que otras asignaturas irán incorporando funcionalidad adicional.

  • 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 un juego completo

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. Por su aplicación práctica en el pipeline de contenidos, se presta especial atención a la programación de extensiones para 3ds Max.

  • El pipeline de contenido gráfico: texturas, modelos y animaciones
  • Programación en MAXScript para 3ds Max
  • Edición y manipulación de audio digital

Programación gráfica (5 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. Se estudian así mismo técnicas de optimización específicas y se analiza en profundidad el motor gráfico Ogre que es el middleware seleccionado para los proyectos del máster.

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

Física (4 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 propuesto para los proyectos del máster.

  • Uso y desarrollo de motores físicos
  • PhysX
  • Simulador de vuelo y simulador de coches
  • Ragdolls, telas y fluidos

Inteligencia artificial (5 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.

  • 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 y bayesianas, lógica difusa, CBR.

Técnicas de programación específicas (4 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.

  • Dispositivos de entrada/salida: teclado y ratón, pad, WiiMote, PS Move y Kinect
  • 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
  • Inteligencia artificial en LUA
  • Audio orientado a videojuegos 3D
  • Librerías de renderizado de audio: OpenAL y FMOD

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

  • 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

Ingeniería del software (4 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 interdisciplinar. 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
  • Localización + QA
  • Diseño software
  • Desarrollo de MMOG
  • Gestión de servidores en juegos online
  • Proceso de cierre / mastering
  • Postmortem de juegos populares

Videojuegos para dispositivos móviles (6 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 iPhone, iPod, iPad
  • Juegos para Android
  • Realidad aumentada

Prototipado rápido de juegos (3 créditos)

Esta asignatura presenta tecnologías concretas, HTML 5 y Unity, que permiten el desarrollo rápido de videojuegos en 2D y 3D. El objetivo es aumentar el espectro de plataformas para las que el estudiante es capaz de desarrollar juegos, así como familiarizarlo con tecnologías que se están utilizando profesionalmente en modelos de negocio alternativos al desarrollo AAA.

  • Juegos 2D en HTML 5
  • Juegos 3D en Unity

Emprendimiento (1 crédito)

En esta asignatura se presentan las conocimientos y habilidades esenciales para emprender un proyecto independiente de desarrollo de videojuegos.

  • Fundar una empresa de videojuegos
  • Modelos de negocio en la industria del videojuego

Tesis de máster (12 créditos)

La tesis de máster consiste en el desarrollo de un videojuego 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 artistas de las otras especialidades del máster.


Los comentarios están cerrados.