Información general


Tipo de asignatura: obligatoria

Coordinador: Adso Fernández Baena

trimestre: Segundo trimestre

Créditos: 4

Profesorado: 

Lasse Loepfe

Idiomas de impartición


Los materiales podrán proporcionarse tanto en catalán como en español o inglés. 

Competencias


Competencias específicas
  • E6. Desarrollar videojuegos en lenguajes de programación de alto nivel en motores gráficos a partir de sus especificaciones.

Descripción


La asignatura introduce al alumno en la programación de juegos 2D. La herramienta principal que se usa es Unity, aunque la asignatura se centra más en los conceptos clave del desarrollo de juegos y no en la herramienta específica que se usa para implementar los ejemplos y prácticas.

Durante el desarrollo de 3 proyectos independiente introducen teóricamente los conceptos principales en las primeras clases con pequeños ejemplos que los alumnos puedan experimentar. Una vez explicados los conceptos, los alumnos se dedican a realizar sus proyecto, teniendo el apoyo del profesor en todo momento durante las clases. Los juegos deberá entregarse dentro del plazo y en la forma adecuados.

El examen consiste en implementar de forma práctica y eòrica conceptos expuestos en clase.

Esta asignatura dispone de recursos metodológicos y digitales para hacer posible su continuidad en modalidad no presencial en el caso de ser necesario por motivos relacionados con la Covidien-19. De esta forma se asegurará la consecución de los mismos conocimientos y competencias que se especifican en este plan docente.

Resultados de aprendizaje


Al finalizar la asignatura los estudiantes deben ser capaces de:

E6.1. Diseñar la arquitectura del software de un videojuego de acuerdo a unas especificaciones.

E6.6. Desarrollar videojuegos 2D y 3D (o partes del mismo) en lenguajes de alto nivel sobre plataformas y motores destinados a tal efecto.

Metodología de trabajo


La asignatura utiliza las siguientes metodologías de trabajo:

Clase magistral, Cápsulas de vídeo, Resolución de problemas y Laboratorio en grupo reducido.

 

Contenidos


Tema 1: Introducción y física del jugador

1.1 Character Movimiento

1.2 Física de saltos

      1.2.1 Saltos verticales

      1.2.2 Saltos horizontales

1.3 Modificación de la gravedad

 

Tema 2: Inteligencia Artificial

2. 1 Detección del jugador

     2.1.1 Distancia

     2.1.2 Campo de visión

     2.1.3 obstáculos

2. 2 Patroling

   2.2.1 puntos de ruta

   2.2.2 Detección de plataformas

   2.2.3 Búsqueda de caminos


 

Tema 3: UI & Scriptable Objects

3.1 IU

3. 2 Sistema de diálogos

    3.2.1 Diálogo sin interacción

    3.2.2 Opciones de diálogo

    3.2.3 Resultado del diálogo

3.3 Inventario

     3.3.1 Añadir objetos a inventario

     3.3.2 Emplear objetos del inventario

3.4 Tienda

 

Tema 4 Spawning & Procedural Generation

4.1 Generación de mapas

               4.1.1 Grid based dungeons

               4.1.2 Automates celulares

               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 entidades

5.3 Undo / Redo

Actividades de aprendizaje


Con el objetivo de recoger evidencia del logro de los resultados de aprendizaje esperados se realizarán las siguientes actividades de carácter evaluativo (relacionadas con todas las competencias comunes):


Las prácticas tratan de desarrollar un juego de plataformas 2D en el que los alumnos deberán implementar una solución a los problemas que este tipo de juegos plantean y que se explican en clase. El profesorado dejará claras las funcionalidades que debe tener el juego y qué elementos deberá tener. Los alumnos podrán decidir cómo implementarlos y proponer diferentes estrategias (mecánicas, tipos de enemigos, trampas ...) donde se demuestre su habilidad como programadores.


A1. Prácticas de laboratorio: Proyecto Juego 2D - Juego 1 (Evidencia del resultado de aprendizaje E6.1 y E6.6)

Control jugador + Física

A2. Prácticas de laboratorio: Proyecto Juego 2D - Juego 2 (Evidencia del resultado de aprendizaje E6.1 y E6.6)

IA Enemigos

A3. Prácticas de laboratorio: Proyecto Juego 2D - Juego 3 (Evidencia del resultado de aprendizaje E6.1 y E6.6)

UI - Tienda

A4. Prácticas de laboratorio: Proyecto Juego 2D - Juego 4 (Evidencia del resultado de aprendizaje E6.1 y E6.6)

Gerneración procedura

A5. Prácticas de laboratorio: Proyecto Juego 2D - Juego 5 (Evidencia del resultado de aprendizaje E6.1 y E6.6)

Patrón de comando

A6. Examen final práctico y teórico (Evidencia de todos los resultados de aprendizaje)


Criterios generales de las actividades:

    El profesor presentará un enunciado para cada actividad y los criterios de evaluación y / o rúbricas.
    El profesor informará de las fechas y formato de la entrega de la actividad.

Sistema de evaluación


La nota de cada alumno se calculará siguiendo los siguientes porcentajes:

A1. Prácticas de laboratorio: Proyecto Juego 2D - Juego 1 10%

A2. Prácticas de laboratorio: Proyecto Juego 2D - Juego 2 10%

A3. Prácticas de laboratorio: Proyecto Juego 2D - Juego 3 10%

A4. Prácticas de laboratorio: Proyecto Juego 2D - Juego 3 10%

A5. Prácticas de laboratorio: Proyecto Juego 2D - Juego 3 10%

A6. Examen final práctico y teórico 50%

 

 

Consideraciones:

  • Hay que obtener una nota superior a 5 al examen final para aprobar la asignatura.
  • Hay que obtener una nota superior a 5 a en el promedio de las prácticas para aprobar la asignatura.
  • La nota máxima que se puede obtener en la convocatoria extraordinaria será 5.

  • Una actividad no entregada o entregada con retraso y sin justificación (citación judicial o asunto médico) cuenta como un 0.

  • Es responsabilidad del alumno evitar el plagio en todas sus formas. En el caso de detectar un plagio, independientemente de su alcance, en alguna actividad corresponderá a tener una nota de 0. Además, el profesor comunicará a la Jefe de estudios la situación para que se tomen medidas aplicables en materia de régimen sancionador .

Bibliografía


Básico

http://gameprogrammingpatterns.com/

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

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

Tutorial web de herramientas de creación de juegos con el motor Unity (http://unity3d.com/es/learn)

Complementario

https://unity3d.college/

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

Design patterns: Elementos of reusable object-oriented software

1995 - Addison-Wesley - Reading, Mass.