Motor de Videojuegos.
Transcripción
Motor de Videojuegos.
Motor de Videojuegos. En un comienzo se diseñaban los videojuegos para un hardware específico, usando directamente instrucciones de los diversos microprocesadores. Si se deseaba que el videojuego fuera jugable en otro equipo, se debía reescribir el código. Mientras evolucionaba la programación y el hardware (consolas / pc), era más fácil diseñar videojuegos. Además cada vez importaba menos si se diseñaban juegos para una CPU o para otra. Comenzaron a crearse herramientas de dibujo más sencillas, etc. Usan drivers para las tarjetas gráficas, de forma que son la interfaz entre la aplicación software (videojuego) y el adaptador gráfico hardware. Proveen una librería de elementos gráficos simples para poder así producir gráficos complejos. APIs Gráficas: DirectX, OpenGL… Se basó de un API de Gráficos 3D llamada Reality Lab, y una vez que Microsoft compró la empresa que desarrollaba el software en 1995, lo implementó como motor gráfico para Windows 95. Colección de APIs para la plataforma Windows y algunas consolas como Dreamcast, XBox y XBox360. Provee APIs para gráfica 2D y 3D, sonido, video, input y redes. 1. Introduce los datos de entrada (primitivas). 2. Opera sobre los vértices de forma individual. 3. Realiza operaciones con primitivas. 4. Almacena los datos en memoria. 5. Convierte la imagen 3D en pixeles. 6. Realiza operaciones con los pixeles. 7. Combina la salida de pixeles con patrones de profundidad para construir el resultado final. Desarrollada originalmente por Silicon Graphics Inc. en 1992, actualmente por el grupo Khronos. Provee sólo funciones gráficas, abstrayéndose de las distintas tarjetas gráficas. Es Multiplataforma: Mac OS, Windows, GNU/Linux, PS3… Aplicación (Videojuego) API Gráfica (DirectX, OpenGL) Driver Hardware (Tarjeta Gráfica) Es una API especializada para videojuegos, que contiene varios componentes y herramientas para el desarrollo de éstos. Entre los componentes: ◦ ◦ ◦ ◦ ◦ Motor de Render. Motor de Física y Colisiones. Motor de Sonido. Gestor de Redes. Motor de I.A. Lo más importante es el motor gráfico, que se apoya en las APIs gráficas. En un principio los videojuegos se diseñaban desde cero. La experiencia de los diseñadores hizo que se comenzara a reutilizar material En los 90’ tras el éxito de Doom y Quake, diseñados por id Software, surge el desarrollo de motores de videojuegos, en un principio sólo diseñados para FPS. IdTech3: RenderWare: Source Engine: Facilita el desarrollo. Abstracción de la plataforma. Separación de motor y contenidos. Permite enfatizar en la parte artística. Permite el rápido desarrollo de videojuegos. Facilita la realización de secuelas. Plataforma: ◦ PC: Windows, Linux, Mac OS. ◦ Consola: Xbox 360, PS2, PS3, Wii. ◦ Móviles: Zune, Windows Mobile, iPhone, Symbian. Lenguaje: ◦ C++, C#, Java, Python. Tipo de Videojuego: ◦ FPS, RTS, MMORPG, Fighting Game, Racing Game. Comercial: ◦ Ventaja: Soporte, muchas herramientas adicionales. ◦ Desventaja: Precio, sujeto a lo que ofrecen. Open Source: ◦ Ventaja: Precio, posibilidad de modificación. ◦ Desventaja: Sin soporte técnico “oficial”, falta de herramientas. Comerciales: Torque Game Engine Advance ($295). 3D Game Studio ($1.250). Quake III Engine ($250.000 + 5% de royalties). Warcraft III Engine: ($3.750.000) Open Source: Irrlicht. Ogre. Panda 3D. NeoAxis. Semi-Comercial ( El nuevo enfoque) UDK. XNA. Aplicación (Videojuego) Engine Gráfico API Gráfica (DirectX, OpenGL) Driver Hardware (Tarjeta Gráfica) 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. 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. 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. Encargado de reproducir la banda sonora del videojuego y efectos de sonido. Música de Background. Sonido 3D dependiendo de la posición, velocidad y dirección. Capaz de soportar múltiples formatos: Ogg Vorbis, Wav, Midi… Cada vez es más importante el concepto de Red, ya que no es lo mismo interactuar con enemigos computarizados que interactuar con otros jugadores en el mismo mundo. Debe proveer las funcionalidades: ◦ Tanto de servidor como de cliente. ◦ Tanto para LAN como para Internet. ◦ Para los nuevos protocolos de red, ej: IPv6. Estabilidad y escalabilidad son conceptos claves. Necesitamos “realidad” en nuestro videojuego. Encargado de dotar ciertos elementos del videojuego con comportamientos seudo-inteligentes. Técnicas simples: Máquinas de estados y algoritmos de búsquedas. Nuevas técnicas: redes neuronales y algoritmos genéticos. Máquinas de Estados. Patrullar Descansar Huir Atacar Perseguir Hoy en día un motor de videojuegos es más que esto, además debe proveer: Encriptación, para eliminar piratería. Manejo con nuevos periféricos (lásers, cámaras para realidad aumentada, gps, etc.). Leer una cantidad de formatos considerable. En resumen, debe estar al día con la tecnología y los requerimientos de la sociedad gammer. TGEA 3D Ogre3D Source Engine Source Engine Unreal Technology (UnrealKismet , the visual scripting system) Unreal Technology DirectX y OpenGL. http://www.slideshare.net/guest5506a9/directxy-open-gl-presentation Motor de juegos. http://www.esi.uem.es/jccortizo/motores.html Programación de Videojuegos. http://sabia.tic.udc.es/gc/Contenidos%20adicional es/trabajos/Juegos/ProgramacionVideojuegos/Pro gramacion%20de%20videojuegos.htm