Información general


Tipo de asignatura: obligatoria

Coordinador: Adso Fernández Baena

trimestre:3

Créditos: 4

Profesorado: Samuel Jarque Abizanda

Descripción


El nuevo perfil de diseñador debe adquirir nociones de programación, matemáticas y física para adaptarse a estos nuevos requerimientos del desarrollo de videojuegos.

Al inicio de la asignatura de Programación II, los alumnos ya son capaces de resolver ciertos problemas con el uso de estructuras de control y de almacenar información en variables y contenedores de datos (impartido en Fundamentos de la Programación), y también tienen claros los conceptos de encapsulación, polimorfismo y el envío de mensajes entre los diferentes objetos en el paradigma orientado a objetos (impartido en Programación I). El lenguaje vehicular entre las asignaturas de programación ha sido C # y por no desfocalizar los alumnos, debe seguir siéndolo en las otras asignaturas de programación del primer año.

Programación II es el primer acercamiento de los alumnos a la programación aplicada a los videojuegos. Aunque el objetivo del grado son diseñadores capaces de programar mecánicas y muy probablemente de hacerlo en motores de videojuegos como Unity3D y UE4, el aprendizaje debe centrarse en forjar una base de resolución de problemas de diseño mediante algoritmos más que en aprender una herramienta o motor en concreto.

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.

El Tecnocampus pondrá al alcance del profesorado y el alumnado las herramientas digitales necesarias para poder llevar a cabo la asignatura, así como guías y recomendaciones que faciliten la adaptación a la modalidad no presencial.

Resultados de aprendizaje


A nivel general, esta asignatura contribuye a siguientes resultados de aprendizaje especificados para la materia a la que pertenece (Desarrollo):

  • E6.5. Incorporar las leyes de la física y comportamientos inteligentes de forma eficaz mediante librerías específicas.

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

  • E6.2. Interpretar el análisis del software para su posterior desarrollo.

Metodología de trabajo


La asignatura hará servir las siguientes metodologías de trabajo:

Clase magistral, estudio de casos, laboratorios en grupo reducido y aprendizaje basado en preguntas.

 

contenidos


1. Paradigmas de programación

1.1. programación estructurada

1.2. Programación orientada a objetos

2. Programación gráfica

2.1.Conceptos

2.1.1 Renderizado 2D 

2.1.2 Bucle de juego: draw y update

2.2. librería SFML

2.2.1. Inputs: active polling y event handling

2.2.2. sprites

2.2.3. Sonido y texto 

3. Programación básica con motor 

3.1. Estructura engine-game-actor

3.1.1. Componentes vs Herencia

3.2. actores

3.2.1. Movimiento: rotación, dirección, velocidad y aceleración

3.2.2. ERP y Movimiento polar

3.2.3. Animated Actores

3.3. HUD

4. Programación de herramientas y comportamientos

4.1. Herramientas del motor

4.1.1 Escena: gestión de actores y función lambda

4.1.2. Timers y Spawners

4.1.3. Tilemaps

4.1.4. viewports

4.2. comportamientos

4.2.1. FSM

4.2.2. Dirección

4.2.3. Inner y outer radius

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:

A1. Ejercicios a realizar en clase o en casa (Evidencia del resultado de aprendizaje E6.2)

A2. Práctica de laboratorio 1: Listas y actores (Evidencia del resultado de aprendizaje E6.6)

A3. Práctica de laboratorio 2: Actores animados y Spawners utilizando un motor propio basado en Componentes (Evidencia del resultado de aprendizaje E6.6 y E6.5)

A4. Práctica de laboratorio 3: FSMs y Steerings utilizando un motor propio basado en Componentes (Evidencia del resultado de aprendizaje E6.6)

A5. Examen Final (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. Ejercicios a realizar en clase o en casa: 14%

A2. Práctica de laboratorio 1: Listas y actores: 12%

A3. Práctica de laboratorio 2: Actores animados y Spawners: 12%

A4. Práctica de laboratorio 3: FSMs y Steering: 12%

A5. Examen Final: 50%  

 

Nota final = A1 0,14 + A2 0,12 + A3 0,12 + A4 0,12 + A5 0,5

 

Consideraciones:

  • Hay que obtener una nota igual o superior a 5 al examen final para poder aprobar la asignatura.

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

  • Es responsabilidad del alumno evitar el plagio en todas sus formas. En el caso de detectar 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.

  • La asistencia a las prácticas de laboratorio es obligatoria.

recuperaciones:

  • El examen de recuperación sólo recupera la nota del examen final. El alumno con un NP al examen final no podrá presentarse al examen de recuperación.

Bibliografía


básico

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

Complementario

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