Programación gráfica Código:  B2.505    :  6
Consulta de los datos generales   Descripción   La asignatura en el conjunto del plan de estudios   Campos profesionales en el que se proyecta   Conocimientos previos   Información previa a la matrícula   Objetivos y competencias   Contenidos   Consulta de los materiales de los que dispone la asignatura   Informaciones sobre la evaluación a la UOC   Consulta del modelo de evaluación  
Este es el plan docente de la asignatura para el segundo semestre del curso 2023-2024. Podéis consultar si la asignatura se ofrece este semestre en el espacio del campus Más UOC / La universidad / Planes de estudios). Una vez empiece la docencia, tenéis que consultarlo en el aula. El plan docente puede estar sujeto a cambios.

Los motores integrados de videojuegos, como puede ser Unity, nos proporcionan un entorno de trabajo a partir del cual llevar a cabo en desarrrollo de nuestros proyectos. Sin embargo, el código que generamos son básicamente scripts que el motor se encarga de gestionar y ejecutar intermanente. En ningún momento nuestro código fuente se está compilando directamente en formato ejecutable. A su vez, el grado de abstracción que proporcionan oculta algunos de les aspectos básicos de la representación de elementos gráficos en pantalla o de la gestión de la entrada. Sin embargo, un buen desarrollador de videojuegos deberías ser capaz de crear un proyecto sin la necesidad de este tipo de herramientas, en caso que sea requerido.  Por ejemplo, mediante el uso de sistemas gráficos abiertos como puede ser OpenGL.

Esta asignatura se propone enseñaros como crear un videojuego cuando no nos apoyamos de un motor como puede ser Unity. Solo con un compilador de C/C++, un editor de texto y las bibliotecas adecuadas esta tarea. A fin de cuentas, así es como se desarrollaban los videjuegos antes de la existenca de entornos integrados de trabajo. Desde la perspectiva docente, esto nos permite ver como funciona a todo nivel interno, entrando en la "caja negra". Desde la perspectiva de desarrollador, esto nos será útil de cara a disponer de un grado de independencia tecnológica en nuestros proyectos.

Concretamente, en los primeros compases nos basaremos en la biblioteca "raylib", desarrollada con un objectivo claramente educativo para facilitar la comprensión de todos los conceptos básicos asociados al uso de OpenGL. Esto es muy importante, ya que se trata de un sistema gráfico muy complejo, con una gran curba de aprendizaje. Una vez dominadas las bases, entonces sí que nos adentraremos plenamente en la programación con OpenGL 3.3 Core.

Amunt

Esta asignatura corresponde al bloque asignaturas comunes de la especialización de programación avanzada, cursada durante el tercer semestre del máster.

  • Programación gráfica
  • Motores 2D y 3D
  • Programación de efectos visuales

Si bien en todas ellas se trabaja de un modo u otro con aspectos vinculados a la visualización de los elementos gráficos de un videojuego en pantalla, esta proporciona la visión principal, enfocada en el uso de sistemas gráficos como OpenGL.

Amunt

Principalmente, las vinculadas al desarrollo de videojuegos (Game Programmer, Lead Programmer), ya sea en una gran empresa, freelance, o simplemente los amantes de los videojuegos interesados en desarrollar sus propios proyectos personales.

Amunt

Se presupone que el estudiante dispone de conocimientos sólidos de programación en C y C++, así como en entornos de trabajo asociados a estos lenguajes. Para el caso de esta asignatura, se trabaja con el compilador MinGW y basta usar un editor simple de textos (como Notepad++).

Amunt

Esta es una asignatura muy exigente que requiere que el estudiante disponga de conocimientos sólidos de programación en los lenguajes C y C++. Si no se ha trabajado en estos lenguajes, al menos se debería haber trabajado en otros con sintaxis parecida y sentirse capaz a la hora de trabajar con aspectos de programación como estructuras de datos complejas, lógica de punteros y orientación a objetos.

Amunt

Las competencias generales del Máster que se ponen de manifiesto en esta asignatura son:

  • [CT2] Capacidad para el aprendizaje autónomo.
  • [CT3] Comprensión y expresión en inglés técnico.

Las competencias específicas de esta asignatura son:

  • [CE2] Capacidad para dominar las distintas herramientas aplicables en el entorno del desarrollo de videojuegos según las tendencias tecnológicas.
  • [CE3] Capacidad para el uso efectivo de los lenguajes de programación y metodologías para el desarrollo de videojuegos.
  • [CE6] Capacidad para representar elementos visuales y sus interacciones de manera eficiente.
  • [CE8] Capacidad para usar los fundamentos matemáticos y físicos necesarios para el desarrollo de un videojuego

Finalmente, los objetivos específicos de la asignatura son:

  • Conocer las funcionalidades y posibilidades de las librerías raylib y rlgl.
  • Conocer el ciclo de vida de ejecución de un videojuego.
  • Saber gestionar la entradas (keyboard, mouse, gamepad) en un videojuego.
  • Saber dibujar formas básicas y crear transiciones entre escenas.
  • Saber cargar imágenes y generar texturas.
  • Ser capaz de comprobar y resolver colisiones.
  • Cargar mapas de tiles y datos de niveles.
  • Cargar y reproducir sonidos y música.

Amunt

La asignatura se articula a través de tres proyectos, o "retos", en cada uno de los cuales se trabaja un tipo de videojuego distinto. La característica principal del formato de los contenidos es que se encuentran publicados en GitHub, hipervinculados con todos los recursos necesarios para llevarlos a cabo paso a paso. A su vez, estos contenidos se encuentran escritos en inglés, de acuerdo con la competencia [CT3] que se trabaja en esta asignatura.

RETO 1. El juego BLOCKS

  • Funcionalidad básica de raylib.
  • Gestion de escenas y ciclo de vida de un videojuego.
  • Dibujado de formas básicas (circulo, rectangulo).
  • Gesión de entradas (keyboard, mouse).
  • Detección y resolución de colisiones.
  • Carga y dibujo de texturas.
  • Carga y dibujo de fuentes.
  • Carga y reproducción de audio.

RETO 2. El juego DUNGEON 2D

  • Creación y gestión de ventanas.
  • Inicialización de contexto y carga de extensiones.
  • Gestión de entradas (teclado, raton).
  • Definición de formas básicas.
  • Carga de imágenes y texturas.
  • Carga del tilemap desde texto.
  • Detección de colisiones.

RETO 3. El juego MAZE 3D

  • Funcionalidades de OpenGL.
  • Gestión de la entrada (gamepad).
  • Carga de imágenes y texturas.
  • Carga y generación de nivel.
  • Carga y dibujo de modelos 3d.
  • Sistema de cámara en primera persona.
  • Detección y resolución de colisiones.

Amunt

Programación gráfica Web
Entrevista a Ramon Santamaria, creador de la biblioteca gráfica raylib Audiovisual
Vídeo explicativo Audiovisual

Amunt

La Normativa académica de la UOC dispone que el proceso de evaluación se fundamenta en el trabajo personal del estudiante y presupone la autenticidad de la autoría y la originalidad de los ejercicios realizados.

La falta de originalidad en la autoría o el mal uso de las condiciones en las que se hace la evaluación de la asignatura es una infracción que puede tener consecuencias académicas graves.

El estudiante será calificado con un suspenso (D/0) si se detecta falta de originalidad en la autoría de alguna actividad evaluable (práctica, prueba de evaluación continua (PEC) o final (PEF), o la que se defina en el plan docente), ya sea porque ha utilizado material o dispositivos no autorizados, ya sea porque ha copiado de forma textual de internet, o ha copiado de apuntes, de materiales, manuales o artículos (sin la citación correspondiente) o de otro estudiante, o por cualquier otra conducta irregular.

La calificación de suspenso (D/0) en la evaluación continua (EC) puede conllevar la obligación de hacer el examen presencial para superar la asignatura (si hay examen y si superarlo es suficiente para superar la asignatura según indique este plan docente).

Cuando esta mala conducta se produzca durante la realización de las pruebas de evaluación finales presenciales, el estudiante puede ser expulsado del aula, y el examinador hará constar todos los elementos y la información relativos al caso.

Además, esta conducta puede dar lugar a la incoación de un procedimiento disciplinario y la aplicación, si procede, de la sanción que corresponda.

La UOC habilitará los mecanismos que considere oportunos para velar por la calidad de sus titulaciones y garantizar la excelencia y la calidad de su modelo educativo.

Amunt

La asignatura solo puede aprobarse con el seguimiento y la superación de la evaluación continua (EC). La calificación final de la asignatura es la nota obtenida en la EC.

 

Amunt