Informació general


Idiomes d'impartició


  • Català
  • Castellano

Les classes de l'assignatura es faran principalment en català, tot i que la bibliografia i el material de suport podran ser en altres llengües (castellà i anglès).

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.

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 treball


Tots els conceptes teòrics de la matèria s'exposaran a classes de teoria en format de classe magistral, estudi de casos o aprenentatge basat en preguntes. En aquestes classes,  a discreció dels docents impartidors, també es resoldran exercicis i problemes de caire més pràctic. Aquestes activitats breus serviran a l'estudiant com a instrument d'autoavaluació del seu assoliment dels continguts de la matèria i s’avaluaran com a treball individual. Les pràctiques de laboratori es portaran a terme en grups petits i es treballarà l’aplicació pràctica dels conceptes teòrics. En les sessions que es programin a aquest efecte es donaran les eines escaients per a resoldre les activitats programades bo i que s'espera que aquestes s'allarguin des del punt de vista temporal més enllà de les hores de laboratori i que, en conseqüència, els estudiants les hagin de finalitzar durant el temps d'aprenentatge autònom.

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.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 (Evidencia del resultat d’aprenentatge E6.6 i E6.5)

A4. Pràctica de laboratori 3: FSMs i Steerings (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 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 assumpte 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.

  • L’examen de recuperació tan sols recupera la nota de teoria.

Bibliografia


Bàsica

Okita, A. (2014). Learning C# programming with Unity 3D. AK Peters/CRC Press.


Complementària

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

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