DAM2 Programación multimedia y dispositivos móviles

Duración: 126 horas.
Profesor: Diego García.

BLOQUE 1: Programación para dispositivos móviles.

Duración: 63 horas.

1. Análisis de tecnologías para aplicaciones en dispositivos móviles:

− Limitaciones que plantea la ejecución de aplicaciones en los dispositivos móviles: desconexión, seguridad, memoria, consumo batería, almacenamiento.
− Tecnologías disponibles: dominante/emergente. Convergencia entre móviles y equipos de escritorio.
− Entornos integrados de trabajo actuales.
− Módulos para el desarrollo de aplicaciones móviles.
− Emuladores.
− Configuraciones. Tipos y características. Dispositivos soportados.
− Perfiles. Características. Arquitectura y requerimientos. Dispositivos soportados.
− Jerarquía de clases del perfil.
− Modelo de estados de una aplicación para dispositivos móviles. Activo, pausa y destruido.
− Ciclo de vida de una aplicación: descubrimiento, instalación, ejecución, actualización y borrado.
− Modificación de aplicaciones existentes.
− Utilización del entorno de ejecución del administrador de aplicaciones.

2. Programación de aplicaciones para dispositivos móviles:

− Herramientas y fases de construcción: Desarrollo del código, compilación, preverificación, empaquetado, ejecución y depuración.
− Interfaces de usuario. Clases asociadas: Ventanas, menús, alertas, controles y otros.
− Contexto gráfico. Imágenes.
− Eventos del teclado.
− Técnicas de animación y sonido.
− Descubrimiento de servicios.
− Bases de datos y almacenamiento.
− Persistencia.
− Modelo de hilos.
− Comunicaciones: Clases asociadas. Tipos de conexiones.
− Gestión de la comunicación inalámbrica: Búsqueda de dispositivos y establecimiento de la conexión. Cliente y servidor.
− Envío y recepción de mensajes texto. Seguridad y permisos.
− Envío y recepción de mensajería multimedia. Sincronización de contenido. Seguridad y permisos.
− Manejo de conexiones HTTP y HTTPS.

BLOQUE 2: Programación multimedia y juegos.

Duración: 63 horas.

3. Utilización de librerías multimedia integradas:

  • Conceptos sobre aplicaciones multimedia.
  • Arquitectura del API utilizado.
  • Descripción, instalación y utilización de librerías de clases multimedia para conversión de formatos.
  • Fuentes de datos multimedia. Clases.
  • Datos basados en el tiempo: protocolo de transmisión en tiempo real RTP, control y monitorización de la transmisión y pruebas y documentación.
  • Clips de audio, secuencias MIDI, clips de vídeo, entre otros.
  • Procesamiento de objetos multimedia. Clases. Estados, métodos y eventos.
  • Reproducción de objetos multimedia. Clases. Estados, métodos y eventos.

4. Análisis de motores de juegos:

  • Conceptos de animación.
  • Animación 2D y 3D.
  • Arquitectura del juego. Componentes.
  • Motores de juegos: Tipos y utilización. Ventajas de su utilización.
  • Áreas de especialización, librerías utilizadas y lenguajes de programación.
  • Componentes de un motor de juegos: Motor gráfico o de renderizado (2D/3D), grafo de escena, detector de
  • colisiones, motor de físicas, motor de inteligencia artificial, motor de sonidos y gestión de redes.
  • Librerías que proporcionan las funciones básicas de un Motor 2D/3D.
  • APIs gráficos 3D.
  • Ventajas de la utilización de un motor de juegos.
  • Estudio de juegos existentes.
  • Aplicación de modificaciones sobre juegos existentes.

5. Desarrollo de juegos 2D y 3D:

  • Entornos de desarrollo para juegos.
  • Motores comerciales y libres.
  • Integración del motor de juegos en entornos de desarrollo.
  • Conceptos avanzados de programación 3D: Sistemas de coordenadas, modelos 3D, formas 3D y transformaciones. Renderización.
  • Fases de desarrollo:
  • Diseño: Modelos, escenarios, efectos visuales, edición de sonidos, creación de la historia, animación, texturización.
  • Producción con motores de juegos.
  • Post-producción: Optimización y pruebas.
  • Propiedades de los objetos: luz, texturas, reflejos, sombras.
  • Utilización de shaders. Tipos y funciones.
  • Aplicación de las funciones del motor gráfico. Renderización.
  • Aplicación de las funciones del grafo de escena. Tipos de nodos y su utilización.
  • Análisis de ejecución. Optimización del código.