460 likes | 824 Views
Programación de Videojuegos. 1. Introducción. 2. Un poco de Historia. 3. Motores de Videojuegos. 4. El Futuro. 1. Introducción. ¿Qué es la programación de videojuegos?.
E N D
1. Introducción.2. Un poco de Historia.3. Motores de Videojuegos.4. El Futuro.
¿Qué es la programación de videojuegos? • “Es el arte de instruir a un computador sobre los pasos necesarios para resolver los problemas que influyen en la creación de un videojuego”. • “Es el componente que le da vida al videojuego”.
Principios de programación: Algoritmos. • Algoritmo: “Es una lista bien definida , ordenada y finita de operaciones que permite hallar la solución a un problema”. • Operaciones: Paso a paso, Toma de decisiones, iterativas. • Paso a paso: Creación del Mundo. • Crear_Camara(); • Crear_Escenario(); • Crear_Protagonista(); • Crear_Enemigos(); • Adherir_Luces(); • Adherir_Cielo(); • Adherir_Niebla();
Principios de programación: Algoritmos. • Toma de decisiones: Comportamiento de Enemigo. • Si Enemigo.Distancia( Personaje) < Distancia_Minima • Atacar_A_Protagonista(); • Sino • Patrullar();
Principios de programación: Algoritmos. • Iteraciones: Loop de un videojuego: • Mientras ( No_Salir ) • Chequear_Input(); • Correr_IA(); • Mover_Enemigos(); • Resolver_Colisiones(); • Dibujar_Grafica(); • Reproducir_Sonidos(); • Fin_Mientras;
1ª Etapa. • Programación directa con instrucciones del microprocesador. Normalmente lenguaje Assembler, luego lenguaje C.
2ª Etapa • Programación basada en un API, conjunto de funciones que permite aislar el hardware de la aplicación.
2ª Etapa. • Aparición de videojuegos 3D. • Aparición de librerías Gráficas: DirectX, OpenGL.
3ª Etapa. • Programación en base a un motor de videojuegos, es en cierto modo un API especializado. • idTech 3:
3ª Etapa. • RenderWare: • Source Engine:
Características básicas • Plataforma: • PC: Windows, Linux, Mac OS. • Consola: Xbox 360, PS2, PS3, Wii. • Móviles: Zune, Windows Mobile, iPhone, Symbian. • Lenguaje: • C, C++, C#, Java, Python. • Tipo de Videojuego: • FPS, RTS, MMORPG, Fighting Game, Racing Game.
Componentes de un Engine • Motor de Render. • Motor de Física de Detección de Colisiones. • Motor de Sonido. • Motor de Redes. • Motor de IA.
Motor de Render. • Proporciona funciones gráficas, se encarga de la visibilidad, gestión de mallas, entre otras cosas. • Debe proporcionar técnicas para optimización de recursos visuales.
Motor de Render: Ogre3D • Basado en pluggins. • Escenarios: mapas de alturas y BSP, • Iluminación y sombras. • Animación: Skeletal, Morph. • Efectos especiales: Cielo, Agua, Niebla. • Scripts: Materiales, Partículas, Compositores. • Shaders: Vertex y Pixel Shaders de alto nivel.
Motor de Render: Ogre3D Hydrax Caelum PagedGeometry
Motor de Física. • Simula modelos de física, utilizando variables de tipo velocidad, masa, etc. • Detección de Colisiones. • Gravedad en el mundo. • Cuerpos rígidos y dinámicos. • Aplicación de Fuerzas. • Uniones entre cuerpos.
Motor de Sonido. • Encargado de reproducir la banda sonora del videojuego y efectos de sonido. • OpenAL: • Música de background. • Sonido dependiendo de la posición, velocidad y dirección.
Motor de Redes • Cada vez tiene más importancia. • Debe proveer las funcionalidades tanto de servidor como de cliente. • Estabilidad y escalabilidad son conceptos claves.
Motor de IA • Encargado de dotar ciertos elementos del juego con un comportamiento pseudo-inteligentes. • Técnicas Simples: Máquinas de estados y algoritmos de búsqueda. • Nuevas técnicas: redes neuronales y algoritmos genéticos.
Motor de IA • Máquinas de estados Patrullar Atacar Descansar Huir Perseguir
El futuro en la programación de videojuegos. • Programación Visual. • Realidad Aumentada. • Interacción con hardware.