Este documento describe los sistemas multimedia interactivos, como los videojuegos. Explica que estos sistemas combinan varios medios como texto, gráficos e interacción con el usuario en tiempo real. También describe que estos sistemas simulan mundos virtuales hiperrealistas mediante motores de representación y simulación. Finalmente, explica que estos motores usan programación orientada a objetos y dirigida por eventos para crear videojuegos.
2. ● Un sistema primitivo solía tener un medio
(el texto) y cierta interactividad, pero el
multimedia interactivo llega aún más lejos
○ Multimedia es conjugar varios medios a la vez
○ Interacción es responder al usuario y adaptarse a
cada evento, a menudo en tiempo real
Sistema multimedia interactivo 2
Motivación
3. ● Abordaremos dos cuestiones fundamentales
que son la base de los videojuegos actuales
○ Representar el mundo virtual (multimedia, RV)
○ Simular lo que ocurre en él (funcionalidad
compleja, programación sobre modelo de eventos)
Sistema multimedia interactivo 3
Sistema multimedia interactivo
4. ● Permiten simular la realidad, hasta cierto
nivel de fidelidad
○ El detalle
hiperrealista
nos obliga
a computar
más y más
información
○ El tiempo
real nos
limita esa
computación
Sistema multimedia interactivo 4
Sistema multimedia interactivo
5. ● Necesitamos entender cómo está planteado
un motor (de representación y simulación) y
el modo de trabajar con él
Sistema multimedia interactivo 5
Arquitectura de un motor
8. ● En la práctica se trabaja con IDEs muy
configurables, originalmente a través de
ficheros de texto.... (Config, INI files)
Sistema multimedia interactivo 8
Arquitectura de un motor
9. ● … actualmente mediante ventanas y
paneles de distribución personalizable
Sistema multimedia interactivo 9
Arquitectura de un motor
10. ● El centro del IDE es el editor del mundo
o editor de niveles
Sistema multimedia interactivo 10
Arquitectura de un motor
11. Sistema multimedia interactivo 11
Ejemplo de mundo
World
Level
(Persistent)
Level
Static Mesh Actor Volume Actor
MyCharacter
(Blueprint Class) Sublevel
Light Actor
Light Actor Static Mesh Actor
Static Mesh
Component
MyComponent
Static Mesh
Component
Point Light
Component
Rotating Movement
Component
MyProperty
Rotation Rate
12. ● Activándola con º permite hacer “cualquier
cambio” en la simulación o en la
representación sobre la marcha
Sistema multimedia interactivo 12
Consola de comandos
13. ● Permite gestión y trabajo colaborativo en
proyectos en Perforce, SVN o Git
Sistema multimedia interactivo 13
Trabajo colaborativo
14. ● Variables, procedimientos y modularidad, al
ser también programación estructurada
● Clases y objetos
● Encapsulación
● Composición,
herencia y delegación
● Polimorfismo
● Incluso conviene
recordar Patrones de
Diseño Software
Sistema multimedia interactivo 14
Programación orientada a objetos
15. ● Depende de acciones de usuarios, salidas de
sensores o mensajes de otros hilos
○ Típica de las interfaces gráficas de usuario
● El bucle principal se dedica a “escuchar”: a
menudo no lo controlamos nosotros
○ Desde allí se llama a nuestras funciones de
retrollamada (callback) que, aunque llamen a otras
funciones, terminarán pronto al nivel del bucle que
las llamó
Sistema multimedia interactivo 15
Programación dirigida por eventos
Ej. Manejador de eventos
(event handler)
16. ● Concretamente, programación diagramática
○ El flujo de ejecución se representa con flechas,
como la asignación de parámetros, y las
instrucciones y llamadas mediante cajas
Sistema multimedia interactivo 16
Lenguajes de programación visual
17. ● ¿Dónde se programa el bucle principal?
A. A nivel de software externo
B. A nivel del motor, por sus desarrolladores
C. A nivel del motor, por nosotros
D. A nivel de la aplicación final, por nosotros
Sistema multimedia interactivo 17
Participación
18. ● Lenguaje de programación visual
○ Para visualizar y compartir mejor estos programas:
https://blueprintue.com
Sistema multimedia interactivo 18
Blueprints
19. ● Grafo de eventos
○ Los nodos rojos son entradas o eventos
○ Los verdes son funciones puras, que no modifican
nada del mundo virtual, y los azules, funciones
impuras, que sí lo hacen
Sistema multimedia interactivo 19
Blueprints
21. ● Ej. Encender y apagar las luces
Sistema multimedia interactivo 21
Blueprints
22. ● Script de construcción
○ Hablamos de clases Blueprint, con su jerarquía e
interfaces, a partir de las cuales se construyen
(crean e inicializan) objetos
Sistema multimedia interactivo 22
Blueprints
23. ● Componentes
○ Ej. Componente de escena, de malla estática, de
punto de luz, de colisión…
● También hay estructuras de datos
Sistema multimedia interactivo 23
Blueprints
24. ● Los actores (objetos) del mundo se pueden
volver actores de una cierta clase Blueprint
● Las clases son recursos
del proyecto (ficheros), que
tendrás en el navegador
de contenido
Sistema multimedia interactivo 24
Blueprints
25. ● Primero el actor, con componentes de
representación física/visual generalmente
Sistema multimedia interactivo 25
Ejemplo con Blueprints
26. ● Se asocian a una clase y se programa el
código para responder a algún evento
○ Ej. Un componente se solapa con otro componente
(que posiblemente sea de otro actor diferente)
Sistema multimedia interactivo 26
Ejemplo con Blueprints
27. ● Saltos y condicionales
Sistema multimedia interactivo 27
Ejemplo con Blueprints
28. ● Ej. Una lanzadera de personajes que pasen
por encima de aquella baldosa
Sistema multimedia interactivo 28
Ejemplo con Blueprints
29. ● Busca capturas de Blueprints en Internet y
explica cómo sería su ejecución
Sistema multimedia interactivo 29
Participación