Curso 2015-16
Juegos Electrónicos
Titulación: | Código: | Tipo: |
Grado en Ingeniería Informática | 21446 | Optativa |
Grado en Ingeniería Telemática | 22620 | Optativa |
Grado en Ingeniería en Sistemas Audiovisuales | 22684 | Optativa |
Créditos ECTS: | 4 | Dedicación: | 100 horas | Trimestre: | 3º |
Departamento: | Dpto. de Tecnologías de la Información y las Comunicaciones |
Coordinador: | Javier Agenjo |
Profesorado: | Javier Agenjo Asensio |
Idioma: | Castellano |
Horario: | |
Campus: | Campus de la Comunicación - Poblenou |
Se trabaja el proceso tecnológico y creativo del desarrollo de un videojuego. Los alumnos tendran que programar un videojuego 3D en C++ comenzando desde cero, con especial interes en el rendimiento y la calidad gráfica, trabajando aspectos de ingenieria del software.
Entre los puntos mas destacados del motor que se desarrolla en la asignatura estan:
El motor gráfico 3D usando OpenGL, carga y parseo de recursos, árbol de escena, sistema de colisiones, inteligencia artificial, interacción con el usuario, reproducción de sonido, interfaz de usuario, física y particulas.
Al finalizar la asignatura el alumno habrá completado el desarrollo integro de un videojuego 3D.
Durante el desarrollo el alumno aprenderá tecnicas de programación para aplicaciones a tiempo real, optimización de codigo, gestión de memoria dinamica, patrones de diseño, acceso a hardware y uso de técnicas avanzadas de gráficos mediante GPU.
Además de aprender a programar en C++ de manera eficiente y a desarrollar una aplicación compleja sin problemas de rendimiento.
Saber programar en C++
Tener conocimientos de infografia, algebra y trigonometria.
Competències transversals | Competencias específicas |
---|---|
Instrumentals G1. Capacidad de analisis y sintesis G2. Capacidad de organización y planificación G3. Capacidad para aplicar los conocimientos de analisis de situación y resolucion de problemas G4. Habilidad para la busqueda y gestión de la información G5. Habilidad para tomar decisiones G6. Capacidad para comunicarse con propiedad de formar oral y escrita, tanto delante de audiencia expertas como inexpertas.
Interpersonals G8. Capacidad de trabajo en equipo
Sistèmiques G11. Capacidad de aplicar con flexibilidad y creatividad los conocimientos adquiridos y adaptarlos a contextos y situaciones nuevas. G12. Capacidad para progresar en los procesos de formacion y aprendizaje de manera autónoma y continua. G14. Capacidad de motivación para la calidad y para el exito. G15. Capacidad de generación de nuevas ideas. |
Competències especificas profesionales H1. Capacidad de concebir y llevar a término proyectos informáticos utilizando los principios y las metodologias propias de la ingenieria.
Competencias Específicas de Ingenieria en Informática: IN6. Conocer los fundamentos básicos de la programación y utilizar de forma práctica los métodos y lenguajes de programación para el desarrollo de sistemas de programario. IN7. Conocer las estructuras de datos básicas y los tipos de datos abstractos, sus aplicaciones y propiedades, y ser capaz de determinar los más adecuados para cada situación. IN8. Conèixer i saber aplicar el repertori de tècniques algorítmiques avançades que permeten resoldre problemes no trivials mitjançant el desenvolupament de programes correctes i eficients.
Competencias Específicas Comunes a la rama de Telecomunicación T8. Capacidad de realizar programación a tiempo real, concurrente, distribuida y basada en eventos, así como el diseño de interfaces usuario-computador.
|
Se formaran grupos de dos personas el primer dia de clase.
Cada semana los grupos iran implementando e integrando en su proyecto personal los conceptos que se explicaran en clase.
Un dia a la semana el profesor supervisará el codigo de cada grupo por separado, para asegurar de que el progreso es el adecuado.
Se planificaran tres entregas a lo largo de la asignatura, cada una con diferentes bloques asociados, que serviran para un mejor seguimiento de cada grupo, y que solo afectaran a la nota si no contiene unos minimos requeridos.
El último dia de la asignatura los alumnos presentaran su proyecto en clase junto con una pequeña memoria escrita.
El proyecto se evaluará siguiendo los siguientes criterios:
- Completitud: el proyecto contiene todos los conceptos explicados en clase (representa un 50% de la nota).
- Integración: los elementos coexisten en el sistema de la manera adecuada (representa un 30% de la nota)
- Calidad: los alumnos se han preocupado en los pequeños detalles que dan valor al producto final (10% de la nota)
La asignatura require del desarrollo de un videojuego, los conocimientos se dividen en los siguientes bloques:
1. Introducción al desarrollo de videojuegos
2. Acceso al hardware gráfico y al input de usuario (OpenGL y SDL)
3. Carga y parseo de texturas y meshes.
4. Grafo de escena (Nodos y camaras)
5. Inteligencia artificial
6. Optimizaciones basicas (culling y colisiones)
7. Logica de juego y controladores
8. Interfaz de usuario y audio
9. Particulas y billboarding
10. Shaders y acabado del juego
En cada sesion de teoria se explicaran algoritmos relacionados con el desarrollo de un motor de videojuegos, tanto a nivel conceptual como a nivel tecnico.
Los alumnos dispondran de una semana para implementar estos algoritmos en su proyecto personal, asegurandose de que se integren adecuadamente con el trabajo ya desarrollado en las anteriores semanas.
Por tanto, se trata de un proceso incremental y continuo que obliga a los alumnos a trabajar no solo aspectos de algoritmia sino tambien de ingenieria del software, debido al alcance del proyecto.
Durante las sesiones de seminarios, los alumnos mostraran el estado actual de su proyecto al profesor y este supervisará si el progreso es el adecuado, para evitar casos donde un grupo se quede bloqueado y no pueda seguir el ritmo de la clase.
Los alumnos dispondran de dos semanas al finalizar las clases para completar el proyecto y aportar su creatividad personal.
GameProgrammingGems 1, 2 i 3 de Mark DeLoura