Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Adso Fernández Baena

Trimestre:3

Crèdits: 4

Professorat: Samuel Jarque Abizanda

Descripció


El nou perfil de dissenyador ha d'adquirir nocions de programació, matemàtiques i física per adaptar-se a aquests nous requeriments del desenvolupament de videojocs.

A l'inici de l'assignatura de Programació II, els alumnes ja són capaços de resoldre certs problemes amb l'ús d'estructures de control i d'emmagatzemar informació en variables i contenidors de dades (impartit en Fonaments de la Programació), i també tenen clars els conceptes d'encapsulació, polimorfisme i l'enviament de missatges entre els diferents objectes en el paradigma orientat a objectes (impartit en Programació I). El llenguatge vehicular entre les assignatures de programació ha estat C# i per no desfocalizar als alumnes, ha de seguir sent-ho en les altres assignatures de programació del primer any.

Programació II és el primer apropament dels alumnes a la programació aplicada als videojocs. Tot i que l'objectiu del grau són dissenyadors capaços de programar mecàniques i molt probablement de fer-ho en motors de videojocs com Unity3D i UE4, l’aprenentatge s'ha de centrar en forjar una base de resolució de problemes de disseny mitjançant algoritmes més que en aprendre una eina o motor en concret.

Aquesta assignatura disposa de recursos metodològics i digitals per fer possible la seva continuïtat en modalitat no presencial en el cas de ser necessari per motius relacionats amb la Covid-19. D'aquesta forma s'assegurarà l'assoliment dels mateixos coneixements i competències que s'especifiquen en aquest pla docent.

El Tecnocampus posarà a l’abast del professorat i l’alumnat les eines digitals necessàries per poder dur a terme l’assignatura, així com guies i recomanacions que facilitin l’adaptació a la modalitat no presencial.

Resultats d'aprenentatge


A nivell general, aquesta assignatura contribueix als següents resultats d'aprenentatge especificats per a la matèria a la qual pertany (Desenvolupament):

  • E6.5. Incorporar les lleis de la física i comportaments intel·ligents de forma eficaç mitjançant llibreries específiques.

  • E6.6. Desenvolupar videojocs 2D i 3D (o parts del mateix) en llenguatges d’alt nivell sobre plataformes i motors destinats a tal efecte.

  • E6.2. Interpretar l’anàlisi del software per a la seva posterior desenvolupament.

Metodologia de trabajo


L'assignatura fara servir les següents metodologies de treball:

Classe magistral, estudi de casos, laboratoris en grup reduït i aprenentatge basat en preguntes.

 

Continguts


1. Paradigmes de programació

1.1. Programació estructurada

1.2. Programació orientada a objectes

2. Programació gràfica

2.1.Conceptes

2.1.1 Renderitzat 2D 

2.1.2 Bucle de joc: draw i update

2.2. Llibreria SFML

2.2.1. Inputs: active polling i event handling

2.2.2. Sprites

2.2.3. So i text 

3. Programació bàsica amb motor 

3.1. Estructura engine-game-actor

3.1.1. Components vs Herència

3.2. Actors

3.2.1. Moviment: rotació, direcció, velocitat i acceleració

3.2.2. LERP i Moviment polar

3.2.3. Animated Actors

3.3. HUD

4. Programació d’eines i comportaments

4.1. Eines del motor

4.1.1 Escena: gestió d’actors i funció lambda

4.1.2. Timers i Spawners

4.1.3. Tilemaps

4.1.4. Viewports

4.2. Comportaments

4.2.1. FSM

4.2.2. Steering

4.2.3. Inner i outer radius

Activitats d'aprenentatge


Amb l'objectiu de recollir evidència de l'assoliment dels resultats d'aprenentatge esperats es realitzaran les següents activitats de caràcter avaluatiu:

A1. Exercicis a realitzar a classe o a casa (Evidencia del resultat d’aprenentatge E6.2)

A2. Pràctica de laboratori 1: Llistes i actors (Evidencia del resultat d’aprenentatge E6.6)

A3. Pràctica de laboratori 2: Actors animats i Spawners fent servir un motor propi basat en Components (Evidencia del resultat d’aprenentatge E6.6 i E6.5)

A4. Pràctica de laboratori 3: FSMs i Steerings fent servir un motor propi basat en Components (Evidencia del resultat d’aprenentatge E6.6)

A5. Examen Final (Evidencia de tots els resultats d’aprenentatge)  

 

Criteris generals de les activitats:

  • El professor presentarà un enunciat per cada activitat i els criteris d’avaluació i/o rúbriques.

  • El professor informarà de les dates i format del lliurament de l’activitat.

Sistema d'avaluació


La nota de cada alumne es calcularà seguint els següents percentatges:

 

A1. Exercicis a realitzar a classe o a casa:  14%

A2. Pràctica de laboratori 1: Llistes i actors:  12%

A3. Pràctica de laboratori 2: Actors animats i Spawners:  12%

A4. Pràctica de laboratori 3: FSMs i Steerings:  12%

A5. Examen Final:  50%  

 

Nota final = A1 0,14 + A2 0,12 + A3 0,12 + A4 0,12 + A5 0,5

 

Consideracions:

  • Cal obtenir una nota igual o superior a 5 al examen final per a poder aprovar l’assignatura.

  • Una activitat no entregada o lliurada amb retard i sense justificació (citació judicial o ingrés mèdic) compta com un 0.

  • És responsabilitat de l’alumne evitar el plagi en totes les seves formes. En el cas de detectar plagi, independentment del seu abast, en alguna activitat correspondrà a tenir una nota de 0. A més el professor comunicarà a la cap d’estudis la situació per a que es prenguin mesures aplicables en materia de règim sancionador.

  • L'assistència a les pràctiques de laboratori és obligatòria.

Recuperacions:

  • L’examen de recuperació tan sols recupera la nota del examen final. L'alumne amb un NP a l'examen final no podrà presentar-se al examen de recuperació.

Bibliografia


Bàsic

Moreira, A., Haller, J., & Hansson, H. V. (2013). SFML game development. Packt Publishing

Complementary

Buckland, M. (2005). Programming game AI by example. Jones & Bartlett Learning.