Información general


Tipo de asignatura: optativa

Coordinador:

trimestre: Segundo trimestre

Créditos: 6

Profesorado: 

Adso Fernández Baena

Competencias


competencias básicas
  • B2_Que los estudiantes sepan aplicar sus conocimientos en su trabajo o vocación de una forma profesional y tengan las competencias que demuestran mediante la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio

  • B5_Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía

competencias transversales
  • T2_Que los estudiantes tengan capacidad para trabajar como miembros de un equipo interidisciplinar ya sea como un miembros más, o realizando tareas de dirección con el fin de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles

Descripción


La asignatura está pensada para perfiles de alumnos con orientación tecnológica (perfil de desarrolladores) que quieran profundizar en la programación de juegos y en los lenguajes más avanzados. El alumno aprenderá a programar con el lenguaje C ++ ya través de este, comprenderá los conceptos de gestión de memoria y otras características propias de la programación orientada a objetos. Con ello, el estudiante profundizará y consolidará los conceptos de programación vistos a lo largo de la carrera. Se usará el motor de juegos Unreal, pues este soporta el lenguaje de programación C ++ y es también una oportunidad para profundizar en este motor de juegos con el uso de otro lenguaje.

La asignatura se contextualiza dentro de la rama de desarrollo de videojuegos. Está relacionada con las asignaturas de desarrollo de juegos, motores de juegos, programación con lenguajes interpretados y programación gráfica avanzada (optativa).
 

Esta asignatura dispone de recursos metodológicos y digitales para hacer posible su continuidad en modalidad no presencial en el caso de ser necesario por motivos relacionados con la Covidien-19. De esta forma se asegurará la consecución de los mismos conocimientos y competencias que se especifican en este plan docente.

Resultados de aprendizaje


Al finalizar la asignatura, el estudiante / a debe ser capaz de:

  • Aprender los conceptos principales de C ++, los paradigmas involucrados y el contexto correcto de su utilización.
  • Aplicar las técnicas de programación a medio-bajo nivel para la programación de videojuegos.
  • Utilizar el framework de un motor de videojuegos para desarrollar de forma avanzada código eficiente.
  • Diferenciar diferentes paradigmas de programación así como las diferentes sintaxis de diferentes lenguajes de programación.
  • Comprender diferentes mecanismos de gestión de memoria de los diferentes lenguajes de programación.
  • Afianzar los conceptos de programación / scripting adquiridos y aplicarlos a un entorno real de desarrollo de juegos.
  • Testear sus demos / juegos en varias plataformas.
  • Trabajar en equipo para crear un juego.

Metodología de trabajo


La asignatura de lenguajes avanzados es eminentemente práctica, donde el estudiante podrá aplicar todos los conocimientos adquiridos durante el curso académico en el desarrollo de sus futuros juegos.

Debido a esto, las clases también serán eminentemente prácticas y se incentivará el trabajo en grupo en la misma clase.

En cada una de las clases, el profesor realizará una introducción a los conceptos teórico-prácticos que serán practicados por los propios alumnos en la misma aula, lo que les ayudará a consolidar estos conceptos que serán luego utilizados por los propios estudiantes en las prácticas propuestas durante el curso.

Durante el desarrollo de las prácticas, por las que se dará tiempo a clase para proceder a su desarrollo, el profesor realizará un seguimiento de cada uno de los alumnos, para determinar su avance y, si es necesario, proceder con más clases para reforzar los conocimientos necesarios o carencias que se puedan detectar.

Siempre que el profesor lo considere adecuado propondrá a los alumnos actividades de refuerzo para complementar los conocimientos ya adquiridos durante el curso académico.

Contenidos


Tema 0. Introducción a C ++

Introducción histórica y clasificación del lenguaje: multi-paradigmas

Tipo de datos: comparación con Java

Declaraciones y definiciones

Namespaces, ámbitos y validez

Tipo definidos por el usuario (structs, uniones)

Referencias

Los apostantes

Gestión dinámica de memoria

Clases (Herencia, polimorfismo y funciones virtuales). Comparación con Java

Plantillas: programación genérica. Contenedores (STL)

 

Tema 1. C ++ y Unreal, proyectos con código: objetivo, contexto y justificación

Inserción de componentes con C ++

Creación de Blueprints a partir de clases C ++. Comunicación C ++ y Blueprints

Entradas de usuario (teclado / ratón)

Control del Movimiento

Creación de eventos de Blueprint desde C ++ (BlueprintNativeEvent)

 

Tema 2. Desarrollo de un componente de escena reutilizable

Uso de timers

Uso de shape tracing

Nuevos "nodos" en Blueprint. Llamada a funciones C ++ (BlueprintCallable)

Generación de eventos delegables en Blueprints desde C ++ (Event Broadcasting)

 

Tema 3. HISM

Actividades de aprendizaje


Las tareas asignadas a los alumnos consistirán en:

  • Ejercicios en clase y en casa
  • Desarrollo del proyecto final de la asignatura en clase y en casa

Sistema de evaluación


Proyecto hecho en grupo que consistirá en completar el proyecto desarrollado en clase durante toda la asignatura con los requisitos indicados por el profesor. Valor total de la asignatura: 60%

Examen final individual con la obligatoriedad de aprobarlo (obtener una nota igual o superior a 5). Valor total de la asignatura: 40%

Para aprobar la asignatura, los alumnos deberán obtener una nota igual o superior a 5 según la expresión: Nota del examen 0,4 + Nota proyecto 0,6 (siempre y cuando el examen final esté aprobado).