Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Adso Fernández Baena

Trimestre: Segon trimestre

Crèdits: 4

Professorat: 

Lasse Loepfe

Idiomes d'impartició


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

Competències


Competències específiques
  • E6. Desenvolupar videojocs en llenguatges de programació d'alt nivell en motors gràfics  a partir de les especificacions.

Descripció


L'assignatura introdueix a l'alumne a la programació de jocs 2D. L'eina principal que s'usa és Unity, tot i que l'assignatura es centra més en els conceptes clau del desenvolupament de jocs i no en l'eina específica que s'usa per implementar els exemples i pràctiques.

Durant el desenvolupament de 4 projectes independent s'introdueixen teòricament els conceptes principals a les primeres classes amb petits exemples que els alumnes puguin experimentar. Una vegada explicats els conceptes, els alumnes es dediquen a realitzar el seus projecte, tenint el suport del professor a tot moment durant les classes. Els jocs haurà de lliurar-se dintre del termini i en la forma escaient adequats.

L'exàmen consisteix en implementar de manera pràctica i eòrica conceptes exposats a classe.

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.

Resultats d'aprenentatge


En acabar l’assignatura els estudiants han de ser capaços de:

E6.1. Dissenyar l'arquitectura del software d'un videojoc d'acord a unes especificacions.

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

Metodologia de treball


L’assignatura utilitza les següents metodologies de treball:

Classe magistral, Càpsules de vídeo, Resolució de problemes i Laboratori en grup reduït.

 

Continguts


Tema 1: Introducció i física del jugador

1.1 Character Movement

1.2 Física de salts

      1.2.1 Salts verticals

      1.2.2 Salts horitzontals

1.3 Modificació de la gravetat

 

Tema 2: Intel·ligència Artificial

2. 1 Detecció del jugador

     2.1.1 Distància

     2.1.2 Camp de visió

     2.1.3 Obstacles

2. 2 Patroling

   2.2.1 Waypoints

   2.2.2 Detecció de plataformes

   2.2.3 Pathfinding


 

Tema 3: UI & Scriptable Objects

3.1 UI

3. 2 Sistema de diàlegs

    3.2.1 Diàleg sense interacció

    3.2.2 Opcions de diàleg

    3.2.3 Resultat del diàleg

3.3 Inventari

     3.3.1 Afegir objectes a inventari

     3.3.2 Fer servir objectes del inventari

3.4 Botiga

 


Tema  4 Command Pattern

4.1 Store Actions

4.2 Entities

4.3 Undo / Redo

 

Tema  5(extra) Spawning & Procedural Generation

5.1 Generació de mapes

               5.1.1 Grid based dungeons

               5.1.2 Automates cel·lulars

               5.1.3 Random Room placement

               5.1.4 BSP Tree

5.2 Perlin noise

5.3 Object Pooling

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 (relacionades amb totes les competències comunes):


Les pràctiques tracten de desenvolupar un joc de plataformes 2D en el qual els alumnes hauran d'implementar una solució als problemes que aquest tipus de jocs plantegen i que s'expliquen a classe. El professorat deixarà clares les funcionalitats que ha de tenir el joc i quins elements haurà de tenir. Els alumnes podran decidir com implementar-los i proposar diferents estratègies (mecàniques, tipus d'enemics, trampes...) on es demostri la seva habilitat com a programadors.


A1. Pràctiques de laboratori: Projecte Videojoc 2D - Joc 1 (Evidència del resultat d’aprenentatge E6.1 i E6.6)

Control jugador + Física

A2. Pràctiques de laboratori: Projecte Videojoc 2D - Joc 2 (Evidència del resultat d’aprenentatge E6.1 i E6.6)

IA Enemics

A3. Pràctiques de laboratori: Projecte Videojoc 2D - Joc 3 (Evidència del resultat d’aprenentatge E6.1 i E6.6)

UI - Botiga

A4. Pràctiques de laboratori: Projecte Videojoc 2D - Joc 5 (Evidència del resultat d’aprenentatge E6.1 i E6.6)

Command Pattern

A5. Examen final pràctic i teòric (Evidència 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. Pràctiques de laboratori: Projecte Videojoc 2D - Joc 1 12.5%

A2. Pràctiques de laboratori: Projecte Videojoc 2D - Joc 2 12.5%

A3. Pràctiques de laboratori: Projecte Videojoc 2D - Joc 3 12.5%

A4. Pràctiques de laboratori: Projecte Videojoc 2D - Joc 3 12.5%

A5. Examen final pràctic i teòric 50%

 

 

Consideracions:

  • Cal obtenir una nota superior a 5 a l’examen final per a aprovar l’assignatura.
  • Cal obtenir una nota superior a 5 a en el promig de les pràctiques per a aprovar l’assignatura.
  • La nota màxima que es pot obtenir en la convocatòria extraordinària serà 5.

  • 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 un 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 matèria de règim sancionador.

Bibliografia


Bàsic

http://gameprogrammingpatterns.com/

https://www.habrador.com/tutorials/programming-patterns/

Learning C# Programming with Unity 3D. Alex Okita.

Tutorial web d'eines de creació de jocs amb el motor Unity (http://unity3d.com/es/learn)

Complementary

https://unity3d.college/

Gamma, E., Helm, R., Johnson, R. and Vlissides, J.

Design patterns: Elements of reusable object-oriented software

1995 - Addison-Wesley - Reading, Mass.