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)

Competències que es treballen


General

  • G3. Reunir i interpretar dades rellevants (normalment dins de la seva àrea d'estudi) per emetre judicis que incloguin una reflexió sobre temes rellevants d'índole social, científica o ètica.

  • G5. Desenvolupar les habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia.


Transversal

  • T1. Comunicar en un tercer idioma, que serà preferentment l'anglès, amb un nivell adequat de forma oral i per escrit i d'acord amb les necessitats que tindran els graduats i graduades.

  • T2. Treballar com a membre d'un equip interdisciplinari ja sigui com un membre més o realitzant tasques de direcció amb la finalitat de contribuir a desenvolupar projectes amb pragmatisme i sentit de la responsabilitat, assumint compromisos i tenint en compte els recursos disponibles.


Específica

  • E6. Desenvolupar videojocs en llenguatges de programació d'alt nivell en motors gràfics  a partir de les especificacions.

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.1Renderitzat 2D 

2.1.2Bucle 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. Exercici a classe: Dibuixant amb SFML (Evidencia del resultat d’aprenentatge E6.2)

A2. Exercici a classe: Esquema de bucle de joc (Evidencia del resultat d’aprenentatge E6.2)

A3. Exercici a classe: MoleGame (Evidencia del resultat d’aprenentatge E6.6)

A4. Exercici a classe: Tetera de Russell (Evidencia del resultat d’aprenentatge E6.6)

A5. Exercici a classe: Text amb SFML (Evidencia del resultat d’aprenentatge E6.6)

A6. Exercici a classe: Sons amb buffering (Evidencia del resultat d’aprenentatge E6.6)

A7. Exercici a classe: SnakeGame (Evidencia del resultat d’aprenentatge E6.6)

A8. Exercici a classe: Exercici amb Lambda (Evidencia del resultat d’aprenentatge E6.6)

A9. Exercici a classe: Exercici amb Timers (Evidencia del resultat d’aprenentatge E6.6)

A10. Exercici a classe: Moviment amb LERP (Evidencia del resultat d’aprenentatge E6.6 i E6.5)

A11. Exercici a classe: Finite State Machines (Evidencia del resultat d’aprenentatge E6.6)

A12. Exercici a classe: FSM complexa (Evidencia del resultat d’aprenentatge E6.6)

A13. Exercici a classe: Exercici projectil (Evidencia del resultat d’aprenentatge E6.6 i E6.5)

A14. Exercici a classe: Inner radius i outer radius (Evidencia del resultat d’aprenentatge E6.6 i E6.5)

A15. Exercici a classe: GameJam (Evidencia del resultat d’aprenentatge E6.6 i E6.5)

A16. Exercici a classe: Steering (Evidencia del resultat d’aprenentatge E6.6 i E6.5)

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

A18. Pràctica de laboratori: Actors animats i Spawners (Evidencia del resultat d’aprenentatge E6.6 i E6.5)

A19. Pràctica de laboratori: FSMs i Steerings (Evidencia del resultat d’aprenentatge E6.6)

A20. 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. Exercici a classe: Dibuixant amb SFML:  1,25%

A2. Exercici a classe: Esquema de bucle de joc:  1,25%

A3. Exercici a classe: MoleGame:  1,25%

A4. Exercici a classe: Tetera de Russell:  1,25%

A5. Exercici a classe: Text amb SFML:  1,25%

A6. Exercici a classe: Sons amb buffering:  1,25%

A7. Exercici a classe: SnakeGame:  1,25%

A8. Exercici a classe: Exercici amb Lambda:  1,25%

A9. Exercici a classe: Exercici amb Timers:  1,25%

A10. Exercici a classe: Moviment amb LERP:  1,25%

A11. Exercici a classe: Finite State Machines:  1,25%

A12. Exercici a classe: FSM complexa:  1,25%

A13. Exercici a classe: Exercici projectil:  1,25%

A14. Exercici a classe: Inner radius i outer radius:  1,25%

A15. Exercici a classe: GameJam:  1,25%

A16. Exercici a classe: Steering:  1,25%

A17. Pràctica de laboratori: Llistes i actors:  10%

A18. Pràctica de laboratori: Actors animats i Spawners:  10%

A19. Pràctica de laboratori: FSMs i Steerings:  10%

A20. Examen Final:  50%  

 

Nota final = A1 0,0125 + A2 0,0125 + A3 0,0125 + A4 0,0125 + A5 0,0125 + A6 0,0125 + A7 0,0125 + A8 0,0125 + A9 0,0125 + A10 0,0125 + A11 0,0125 + A12 0,0125 + A13 0,0125 + A14 0,0125 + A15 0,0125 + A16 0,0125 + A17 0,1 + A18 0,1 + A19 0,1 + A20 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