Informació general


  • Tipus d'assignatura: Optativa
  • Coordinador: Adso Fernández Baena
  • Trimestre: 2
  • Crèdits: 6
  • Professorat:

Idiomes d'impartició


  • Castellano
  • Català

Els materials podran proporcionar-se tant en català com en castellà o anglès. 

Descripció


L’assignatura està pensada per perfils d’alumnes amb orientació tecnològica (perfil de desenvolupadors) que vulguin aprofundir en la programació de jocs i en els llenguatges més avançats. L’alumne aprendrà a programar amb el llenguatge C++ i a través d’aquest, comprendrà els conceptes de gestió de memòria i altres característiques pròpies de la programació orientada a objectes. Amb això, l’estudiant aprofundirà i consolidarà els conceptes de programació vistos al llarg de la carrera. S’usarà el motor de jocs Unreal, doncs aquest suporta el llenguatge de programació C++ i és també una oportunitat per a aprofundir en aquest motor de jocs amb l’ús d’un altre llenguatge.

L’assignatura es contextualitza dins de la branca de desenvolupament de videojocs. Està relacionada amb les assignatures de desenvolupament de jocs, motors de jocs, programació amb llenguatges interpretats i programació gràfica avançada (optativa).

Resultats d'aprenentatge


Al finalitzar l’assignatura, l’estudiant/a ha de ser capaç de:

  • Aprendre els conceptes principals de C++, els paradigmes involucrats i el context correcte de la seva utilització.
  • Aplicar les tècniques de programació a mig-baix nivell per a la programació de videojocs.
  • Utilitzar el framework d’un motor de videojocs per desenvolupar de forma avançada codi eficient.
  • Diferenciar diferents paradigmes de programació així com les diferents sintaxis de diferents llenguatges de programació.
  • Comprendre diferents mecanismes de gestió de memòria dels diferents llenguatges de programació.
  • Afiançar els conceptes de programació/scripting adquirits i aplicar-los a un entorn real de desenvolupament de jocs.
  • Testejar les seves demos/jocs en diverses plataformes.
  • Treballar en equip per a crear un joc.

Metodologia de treball


L'assignatura de llenguatges avançats és eminentment pràctica, on l'estudiant podrà aplicar tots els coneixements adquirits durant el curs acadèmic en el desenvolupament dels seus futurs jocs.

A causa d'això, les classes també seran eminentment pràctiques i s'incentivarà el treball en grup en la mateixa classe.

En cadascuna de les classes, el professor realitzarà una introducció als conceptes teoricopràctics que seran practicats pels propis alumnes a la mateixa aula, el que els ajudarà a consolidar aquests conceptes que seran després utilitzats pels propis estudiants en les pràctiques proposades durant el curs.

Durant el desenvolupament de les pràctiques, per les quals es donarà temps a classe per procedir al seu desenvolupament, el professor realitzarà un seguiment de cada un dels alumnes, per a determinar el seu avanç i, si cal, procedir amb més classes per reforçar els coneixements necessaris o mancances que es puguin detectar.

Sempre que el professor ho consideri adient proposarà als alumnes activitats de reforç per complementar els coneixements ja adquirits durant el curs acadèmic.

Continguts


Tema 0. Introducció a C++

Introducció històrica i classificació del llenguatge: multi-paradigmes

Tipus de dades: comparació amb Java

Declaracions i definicions

Namespaces, àmbits i validesa

Tipus definits per l’usuari (structs, unions)

Referencies

Punters

Gestió dinàmica de memòria

Classes (Herència, polimorfisme i funcions virtuals). Comparació amb Java

Plantilles: programació genèrica. Contenidors (STL)

 

Tema 1. C++ i Unreal, projectes amb codi: objectiu, contexte i justificació

Inserció de components amb C++

Creació de Blueprints a partir de classes C++. Comunicació C++ i Blueprints

Entrades d’usuari (teclat/ratolí)

Control del Moviment

Creació d’events de Blueprint des de C++ (BlueprintNativeEvent)

 

Tema 2. Desenvolupament d’un component de escena reutilitzable

Us de timers

Us de shape tracing

Nous “nodes” en Blueprint. Trucada a funcions C++ (BlueprintCallable)

Generació d’events delegables en Blueprints des de C++ (Event Broadcasting)

 

Tema 3. HISM

Activitats d'aprenentatge


Les tasques assignades als alumnes consistiran en:

  • Exercicis a classe i a casa
  • Desenvolupament del projecte final de l'assignatura a classe i a casa

Sistema d'avaluació


Projecte fet en grup que consistirà en completar el projecte desenvolupat a classe durant tota l’assignatura amb els requisits indicats pel professor. Valor total de l'assignatura: 60%

Examen final individual amb l’obligatorietat d’aprovar-lo (obtenir una nota igual o superior a 5). Valor total de l'assignatura: 40%

Per aprovar l'assignatura, els alumnes han d’obtenir una nota igual o superior a 5 segons l'expressió: Nota de l'examen 0,4  + Nota projecte 0,6 (sempre i quan l'examen final estigui aprovat).