Este documento describe un curso de programación 3D que incluye el uso de herramientas de modelado 3D, desarrollo en entornos 3D, y la creación de simulaciones y programas 3D. El curso consiste en 2 clases expositivas semanales, desarrollo de laboratorios y la elaboración de un entorno virtual. Los exámenes parciales y proyectos comprenden el 75% de la calificación. Se explican conceptos como DirectX, OpenGL y tipos de entornos como FPS, RTS y RPG.
2. • Uso de herramientas de modelado
•Entorno de desarrollo en 3 dimensiones
•Sienta las bases para que el estudiante pueda
desarrollar, simulaciones y todo tipo de
programas que requieran el uso de una interfaz
3D.
16/06/2015 2
3. •2 clases expositivas a la semana
•Desarrollo de laboratorios
•Elaboración de un entorno virtual.
16/06/2015 3
Primer examen parcial 20% 6- 10 abril
Segundo examen parcial 25% 8-12 junio
Laboratorios 25% Todo el ciclo
Arquitectura del sistema 10% y 20% 15-19 junio
9. Algunos hechos
1. 15 mil millones de dólares: se estiman las ventas de software de
videojuegos en 2009
2. 10 millones de dólares: costo promedio del desarrollo de un
videojuego
3. 16 a 22%: porcentaje de las ganancias que dedican las empresas
de videojuegos en investigación
4. 60 mil dólares: sueldo promedio de un programador de juegos
recién egresado de la universidad
5. Microsoft vendió 28 millones de consolas Xbox 360 en 2008.
6. PSP alcanzó los 50 millones en enero de 2009
7. Wii (34,55 millones); Nintendo 64 (32,93 millones)
16/06/2015 9
10. Los más vendidos durante 2008
1. Wii Play con Wii-Mote - Wii – Nintendo – 5.28 milliones
2. Mario Kart Wii w/ wheel – Wii – Nintendo – 5.00 milliones
3. Wii Fit w/ balance board – Wii – Nintendo – 4.53 milliones
4. Super Smash Bros. Brawl - Wii – Nintendo – 4.17 milliones
5. Grand Theft Auto IV - Xbox 360 – Take-Two – 3.29 milliones
6. Call of Duty: World at War - Xbox 360 – Activision – 2.75 milliones
7. Gears of War 2 - Xbox 360 – Microsoft – 2.31 milliones
8. Grand Theft Auto IV - PS3 – Take-Two – 1.89 milliones
9. Madden NFL ‘09 - Xbox 360 – Electronic Arts – 1.87 milliones
10. Mario Kart - DS – Nintendo – 1.65 milliones
16/06/2015 10
13. Por otra parte
•Un adolescente asesina a otro tras una pelea por
la Xbox (23 Feb 2009 | REUTERS)
•Un nuevo estudio vincula el uso de los
videojuegos con el empobrecimiento de sus
relaciones con familiares y amigos (22 Feb 2009 |
LA FLECHA, AGENCIAS)
•Amazon retira un videojuego japonés que
simulaba una violación (13 Feb 2009 | AFP)
16/06/2015 13
15. • Es una API propietaria diseñada por Microsoft para la acelaración
de hardware 3D en la plataforma Windows.
• Con esta API es posible desarrollar entornos para Xbox, Sega y
DreamCast ademas de los entornos para Windows.
16/06/2015 15
1. Aporta los datos de entrada (líneas, puntos y triángulos).
2. Se encarga de las operaciones de vértices (iluminación,
texturas, transformaciones). Trata los vértices
individualmente.
3. Realiza operaciones con entidades primitivas (líneas,
triángulos o vértices). A partir de una primitiva, el
geometry shader puede descartarla, o devolver una o
más primitivas nuevas.
4. Almacena la salida de la etapa anterior en memoria.
Resulta útil para realimentar la pipeline con datos ya
calculados.
5. Convierte la imagen 3D en píxeles.
6. Operaciones con los píxeles.
7. Se encarga de combinar la salida del pixel shader con
otros tipos de datos, como los patrones de profundidad,
para construir el resultado final.
16. •Esta implementada para muchas plataformas : Windows,
Unix, Mac Os, Linux y algunas versiones soportan crear juegos
para las consolas PS3, Nintendo, Nintendo GameCube y Wii,
Nintendo DS y PSP.
•OpenGL fue seleccionda como libreria primaria de graficos
para Iphone, Andorid (mobile device Plataform) y Symbian OS.
Con exepción de Winodws y Xbox, todos los sistemas
operativos que permiten acelaración de graficos 3D utilizan
OpenGL.
16/06/2015 16
1. Evaluación, si procede, de las funciones
polinomiales que definen ciertas entradas,
como las, superficies NURBS aproximando
curvas y la geometría de la superficie.
2. Operaciones por vértices, transformándolos,
iluminándolos según su material y recortando
partes no visibles de la escena para producir un
volumen de visión.
3. Rasterización, o conversión de la información
previa en píxeles. Los polígonos son
representados con el color adecuado mediante
algoritmos de interpolación.
4. Operaciones por fragmentos o segmentos,
como actualizaciones según valores venideros
o ya almacenados de profundidad y de
combinaciones de colores, entre otros.
5. Por último, los fragmentos son volcados en el
Frame buffer. (localidades de memoria)
17. DirectX
16/06/2015 17
•Direct3D: utilizado para el procesado y la programación de gráficos
en tres dimensiones (una de las características más usadas de
DirectX).
•Direct Graphics: para dibujar imágenes en dos dimensiones
(planas), y para representación de imágenes en tres dimensiones.
•DirectInput: utilizado para procesar datos del teclado, mouse,
joystick y otros controles para juegos.
•DirectPlay: para comunicaciones en red.
•DirectSound: para la reproducción y grabación de sonidos de ondas.
•DirectMusic: para la reproducción de pistas musicales compuestas
con DirectMusic Producer.
•DirectShow: para reproducir audio y vídeo con transparencia de
red.
•DirectSetup: para la instalación de componentes DirectX.
18. Tipos de entornos
FPS - First Person Shooter: acción en primera persona, la
idea básica es: ir desde A a B resolviendo puzzles sencillos,
eliminando todo lo que se nos cruza en el camino con todas
las armas que disponemos para llegar a la victoria.
16/06/2015 18
Maze War (1974) 1992.
19. Tácticas de juego
•Combate a distancia: conocido como "Sniper", se trata de usar un arma, generalmente de precisión, para causar grandes bajas en las
líneas enemigas.
•Camping: Consiste en tomar una posición fija y esperar a que aparezca el enemigo o bien tomar una posición en la cual el enemigo no
pueda eliminar al jugador y con un arma a larga distancia eliminar cualquier hóstil.
•Combate cuerpo a cuerpo: Es el acto de golpear al oponente con el arma, los puños o algún arma blanca indivudual o anexada al arma
principal. Es un último recurso al agotarse las municiones.
•Combate cerrado: Consiste en atacar, defender o conseguir una posición en la base enemiga.
•Montado: Básicamente se usan vehículos para poder evitar las balas o bien para romper una formación enemiga en favor de nuestros
colegas.
•Mercenario: Una táctica usada en "todos contra todos", consiste en ayudar al oponente a cambio de respeto y protección.
•Camuflaje: Consiste en usar el ambiente para pasar desapercibido al ojo enemigo.
•Operaciones especiales: Se trata de sabotear o robar algún objeto u objetivo enemigo lo más sigilosa y rápidamente posible.
•Asalto: La mas común de las tácticas. Los adversarios se encuentran cara a cara usando generalmente Rifles de asalto y/u otras armas
de corto y mediano alcance como carabinas, escopetas, subfusiles o pistolas.
16/06/2015 19
20. RTS - Real Time Strategy: se suele ver todo
el campo de batalla, nuestras unidades en
forma pequeña y donde predomina la
estrategia por sobre las balas en si, poseen
interesantes sistema de Inteligencia Artificial
16/06/2015 20
1992
1997
2004
21. RPG - Role playing games: es un juego en el que, tal como lo indica su nombre, uno o
más jugadores desempeñan un determinado rol, papel o personalidad concreta.
16/06/2015 21
22. Planeamiento del entorno
Semana 1: Preparar los diagramas de Gannt
Semana 2: Historia, tipo, estilo y ambientación.
Semana 3: Guión, bocetos, storyboards y mapeado
Semana 4: Diseño de Personajes
16/06/2015 22
23. La Metodología en la creación de un guión para proyectos de
Multimedia Interactiva se inicia con el proceso de ideación de una
historia y sigue desarrollándose en función de los siguientes
puntos:
1.- Génesis de la historia (proceso de creación del guión).
1. a - Storyline… (Síntesis del Conflicto Matriz).
1. b - Análisis del Argumento Base (desarrollo en extenso del
Storyline).
1. c - Análisis de Personajes (psicológico y fisiológico).
1. d - Locaciones y Lugares Espaciales (análisis histórico y
arquitectónico).
1. e - Historia Original (historia final en cuento, comic, guión
cinematográfico,
16/06/2015 23
24. Proceso de desarrollo
16/06/2015 24
Patrocina
dores
ideas
Diseño
•Reglas del juego
•Niveles
•Personajes
•Historia
Prototipo
•Arte
•Producción
•Herramientas
•Diseño
•Ingeniería
Producción
•Arte
•Modelos
•Texturas
•Mapas
•Animaciones
•Producción
•Diseño
•Ingeniería
•Script
•IA
27. Storyboard
16/06/2015 27
Los Storyboards son ilustraciones mostradas en secuencia con el objetivo de servir de guía
para entender una historia, previsualizar una animación, seguir la estructura de una
película antes de realizarse o filmarse y mostrar las secuencias en las acciones de un
videojuego
28. Planificación
Sección Semana 5 Semana 6 Semana 7 Semana 8
Gráficos Titulo y
Logotipo
Tipografía Modelado Texturizado
Desarrollo
Diseño
Diseño del
entorno
Presentación,
Menús y
tutorial
Desarrollo
Programación
Editar zonas de
acción
Esquema del
código
Audio Crear efectos
(disparos,
vuelos, etc.)
Crear efectos
(disparos,
vuelos, etc.)
Crear efectos
(disparos,
vuelos, etc.)
16/06/2015 28
29. Planificación
Sección Semana 9 Semana 10 Semana 11 Semana 12
Gráficos Texturizado Animación Modelado y
animación de
otros
caracteres
Modelado y
animación de
otros
caracteres
Desarrollo
Diseño
Desarrollo
Programación
Visualizador
del terreno
Indicadores de
pantalla
Controlar
movimientos
del jugador
Controlar
movimientos
del jugador
Audio Crear entono,
menús, y voces
Crear entono,
menús, y voces
Crear entono,
menús, y voces
Crear la música
del menú
16/06/2015 29
30. Planificación
Sección Semana 13 Semana 14 Semana 15 Semana 16
Gráficos Texturizado Modelado de
edificios y
otros.
Texturizado Texturas del
entorno
Desarrollo
Diseño
Desarrollo
Programación
Controlar
colisiones y
alteración del
entorno
Efectos
especiales con
partículas
Colocando
objetos en el
terreno
IA
Audio Crear música
del escenario 1
Crear música
del escenario 2
Crear música
del escenario 3
16/06/2015 30
31. Clasificación del Mercado
(NPD Group)
•Jugadores no frecuentes (casuales)
•Juegos de cartas, puzzles, juegos de mesa.
•Jugadores Pesados (hardcore gamers)
•Alta exigencia de arte, sonidos, etc.
16/06/2015 31
32. Distribución del mercado
PC Consolas Genero
30.8 Estrategia
19.8 9.3 Niños y Entretenimiento
familiar
14.4 8.7 Disparos
12.4 7.8 Roles
5.8 Aventura
4.7 30.1 Acción
3.7 17.3 Deportes
11.1 Carreras
4.7 Peleas
8.4 11 Otros
16/06/2015 32
33. Algunas capacidades que
debemos tener en cuenta
•Administrador del proyecto
•Escritores de los script
•Diseñadores de niveles
•Artistas
•Modeladores
•Animadores
•Músicos
•Programadores
• Testers
16/06/2015 33
34. Extendiendo el plan
•Meta del juego: ganar la copa mundial, salvar
tantas vidas como pueda por nivel, etc.
•Criterio de finalización: Como va a terminar el
juego: cuando el nivel de vida llegue a cero, cuando
el tiempo sea cero, etc.
•Storyline
•Jugabilidad
•Rejugabilidad
•Desafío
•Recompensa
16/06/2015 34
35. Estructura General
Inicializar gráficos
Cargar los recursos
Iniciar el lazo del juego. En cada paso:
Obtener la entrada del usuario
Realizar los cálculos necesarios (IA, movimientos, colisiones, etc.)
Verificar el criterio de finalización (si esta, terminar el juego)
Dibujar (renderizar) pantalla, generar sonidos y
retroalimentación.
Finalizar gráficos, entrada y sonidos
Liberar los recursos
16/06/2015 35
36. Tipos de archivo en el content
•Formatos 3D (.x soportados por directx, fbx archivos de
transformación)
•Formatos de materiales: FX, los cuales son usados para
describir modelos 3D, efectos a escenas, etc.
•Formatos 2D: BMP,DDS,DIB,HDR,JPG,PFM,PNG,PPM
TGA
•Descripciones de Fuentes: Archivos XML utilizados por
XNA para describir como generar un mapa de textura a
partir de un tipo de letra.
•Formatos de audio. XAP generado por la herramienta
XACH, la cual importa una gran cantidad de formatos de
archivos
16/06/2015 36
37. Inicialización del juego
•Initialize: Cuando se ejecuta método Run, antes del
lazo del juego, aquí van rutinas de inicialización de
elementos no gráficos como sonido
•LoadContent: se cargan los elementos gráficos, por
que algunas veces es necesario recargarlas
16/06/2015 37
39. Lazo del Juego
•Update: Los cálculos del juego
•Draw: Dibujar los componentes del juego
•Propiedades de la clase GameTime
•ElapsedGameTime: Representa la cantidad de tiempo de juego
desde la ultima vez que el lazo del juego fue llamado.
•ElapsedRealtime: Representa la cantidad de tiempo real desde la
ultima vez que fue llamado el lazo.
•IsFixedTimeStep= true or false
•TotalGameTime and TotalRealTime: Las cantidades desde que
comenzó el juego.
•IsRunningSlowy: Si la clase Game esta llamando al método
Update menos veces que la establecida entonces retorna true
16/06/2015 39
40. Tarea individual
•¿Qué es Dark Basic Profesional?
•¿Qué son los vertex shaders?
•¿Qué es un gantt?
•Mencione dos tareas en el diseño del videojuego
•¿Por qué son importantes los gráficos?
•¿Cuál fue el primer videojuego de la historia?
16/06/2015 40