Programación gráfica Código:  B2.505    Créditos:  6
Consulta de los datos generales   Descripción   La asignatura en el conjunto del plan de estudios   Campos profesionales en que se proyecta   Conocimientos previos   Información previa a la matrícula   Objetivos y competencias   Contenidos   Consulta de los recursos de aprendizaje que dispone la asignatura   Metodología   Información sobre la evaluación en la UOC   Consulta del modelo de evaluación   Evaluación Contínua   Evaluación final   Feedback  
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

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

Amunt

Esta asignatura está eminentemente centrada en proyectos (o "retos"). Así pues, si bien los materiales asociados a cada parte del temario proporcionan un breve repaso a algunos conceptos clave, el estudiante debe tener claro que la mayor parte de su tiempo lo va a dedicar practicando con el entorno de desarrollo y accediendo a la documentación online del entorno de trabajo. En ese sentido, el valor añadido de la asignatura no lo aporta la documentación, sinó el profesor colaborador, un profesional de la indústria a vuestra absoluta disposición para resolver cualquier duda o incidencia y guiaros en el desarrollo de los retos.

Normalmente, cada bloque en el temario se divide en dos partes. Primero, se lleva a cabo un pequeño proyecto de manera guiada a través de las indicaciones de los materiales, siempre con la ayuda del profesor colaborador y el resto de compañeros del aula. Se trata de un ejercicio de caracter totalmente formativo, en el que vencer las dificultades que vayan aperciendo será la forma de garantizar el aprendizaje. Una vez superada esta parte, se deberá llevar a cabo individualmente un ejercicio evaluable vinculado con todo lo trabajado anteriormente.

En este contexto de trabajo, el seguimiento activo de los espacios del aula (tablero, foro) es de primordial interés, dado que habitualmente se plantean dudas, se dan respuestas y se tratan temas relacionados con la materia de estudio. Es muy recomendable la consulta de cualquier duda a través del foro de la asignatura. También, es importante realizar un trabajo constante de estudio y aplicación de los contenidos ya que esta es la vía habitual de asegurar el éxito para superar la asignatura. En este sentido van las propuestas de distribución temporal de aprendizaje incluidas en este documento y las otras que se puedan dar durante el curso.

Amunt

El proceso de evaluación se fundamenta en el trabajo personal de cada estudiante y presupone la autenticidad de la autoría y la originalidad de los ejercicios realizados.

La falta de autenticidad en la autoría o de originalidad de las pruebas de evaluación; la copia o el plagio; el intento fraudulento de obtener un resultado académico mejor; la colaboración, el encubrimiento o el favorecimiento de la copia, o la utilización de material o dispositivos no autorizados durante la evaluación, entre otras, son conductas irregulares que pueden tener consecuencias académicas y disciplinarias graves.

Por un lado, si se detecta alguna de estas conductas irregulares, puede comportar el suspenso (D/0) en las actividades evaluables que se definan en el plan docente –incluidas las pruebas finales– o en la calificación final de la asignatura, ya sea porque se han utilizado materiales o dispositivos no autorizados durante las pruebas, como redes sociales o buscadores de información en internet, porque se han copiado fragmentos de texto de una fuente externa (internet, apuntes, libros, artículos, trabajos o pruebas del resto de estudiantes, etc.) sin la correspondiente citación, o porque se ha practicado cualquier otra conducta irregular.

Por el otro, y de acuerdo con las normativas académicas, las conductas irregulares en la evaluación, además de comportar el suspenso de la asignatura, pueden dar lugar a la incoación de un procedimiento disciplinario y a la aplicación, si procede, de la sanción que corresponda.

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.


Ponderación de las calificaciones

Opción para superar la asignatura: EC

Nota final de asignatura: EC

Amunt

Esta asignatura se basa exclusivamente en la evaluación continua. A lo largo del curso el profesor colaborador publicarà en al aula un conjunto de actividades evaluables (PEC). Para cada módulo de la asignatura hay una PEC asociada. Es necesario entregar todas las PEC para poder superar la asignatura.

Observación importante: El seguimiento correcto de la asignatura compromete al estudiante a realizar las actividades propuestas de manera totalmente individual y según las indicaciones que pauta este Plan Docente. En caso de que no sea así, la nota final de la asignatura se evaluará automáticamente con un 0. Por otra parte, y siempre a criterio de los Estudios, el incumplimiento de este compromiso puede suponer no permitir al estudiante superar ninguna otra asignatura mediante evaluación continua ni en el semestre en curso ni en los siguientes.

Amunt

Esta asignatura se evalúa exclusivamente mediante la evaluación continua, entregando todas las PEC, a partir de las cuales el estudiante irá demostrando que ha seguido la docencia y ha entendido los conceptos tratados.

La nota final vendrá dada según el cuadro del modelo de evaluación, basado en la nota promedio de las cuatro PEC.

Amunt

Tal y como se ha indicado en la metodología de la asignatura, el profesor colaborador os guiará y orientará a través del Tablón del aula para que pueda hacer un buen seguimiento de la asignatura. También responderá las dudas que vayan saliendo en el Foro del aula así como las consultas y comentarios enviados a su buzón personal.

El profesor colaborador también hará un seguimiento personalizado de la evaluación continua, revisará todas las PEC entregadas y comentará de forma cualitativa a nivel grupal y / o individual la resolución. Estos comentarios le ayudarán a progresar en su aprendizaje y adquirir el conjunto de las competencias.

Amunt