Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Adso Fernández Baena

Trimestre:2

Crèdits: 4

Professorat: Lasse Loepfe

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 3 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 trabajo


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 Spawning & Procedural Generation

4.1 Generació de mapes

               4.1.1 Grid based dungeons

               4.1.2 Automates cel·lulars

               4.1.3 Random Room placement

               4.1.4 BSP Tree

4.2 Perlin noise

4.3 Object Pooling


Tema  5 Command Pattern

5.1 Store Actions

5.2 Entities

5.3 Undo / Redo

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 4 (Evidència del resultat d’aprenentatge E6.1 i E6.6)

Gerneració procedura

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

Command Pattern

A6. 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 10%

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

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

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

A5. Pràctiques de laboratori: Projecte Videojoc 2D - Joc 3 10%

A6. 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.