1 / 45

Programación Gráfica

Programación Gráfica. 2 . Motor de Videojuegos. 2.1 Inicio de los videojuegos. Programación a bajo nivel. En un comienzo se programaba para un hardware específico, usando directamente instrucciones de los diversos microprocesadores.

vanida
Download Presentation

Programación Gráfica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programación Gráfica 2. Motor de Videojuegos.

  2. 2.1 Inicio de los videojuegos.

  3. Programación a bajo nivel • En un comienzo se programaba 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.

  4. Programación a bajo nivel

  5. Programación a más alto nivel • Al aparecer el lenguaje C, comenzó el primer cambio, ya que era un poco más fácil programar videojuegos, porque se necesitaba menos líneas para hacer lo mismo que se hacía antes. • Además se abstrajo el hardware, y no importaba si se programaba para una CPU o para otra. • La aparición de C++, fue el cambio crucial para la programación de videojuegos, ya que contiene más librerías que C y el lenguaje es más estructurado.

  6. Programación a más alto nivel

  7. 2.2 API’s Gráficas.

  8. API: ApplicationProgramming Interface • Es un conjunto de funciones que forman parte de una biblioteca para permitir un nivel de abstracción al programador. • Minimiza el trabajo de implementación de software, ya que contiene una cantidad enorme de funciones útiles para diversos propósitos. • APIs: gráficas, encriptación, redes, IO …

  9. APIs Gráficas • 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…

  10. DirectX • Se basó de un API de Gráficos 3D llamada RealityLab, 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.

  11. DirectX: Pipeline Gráfica 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.

  12. OpenGL • Desarrollada originalmente por SiliconGraphics 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…

  13. OpenGL: Pipeline Gráfica

  14. Nivel de Abstracción Aplicación (Videojuego) API Gráfica (DirectX, OpenGL) Driver Hardware (Tarjeta Gráfica)

  15. 2.3 Introducción a los motores de Videojuegos.

  16. ¿Qué es un motor de videojuegos? • 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.

  17. Arquitectura Típica

  18. Contexto Histórico • 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. • En un principio los videojuegos se escribían desde cero. Aparición de lenguajes de más alto nivel se comenzó a Reutilizar código

  19. Ejemplo de engine IdTech3:

  20. Ejemplo de engine RenderWare:

  21. Ejemplo de engine Source Engine:

  22. Importancia de un 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.

  23. Características a la hora de elegir un engine. • 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.

  24. Licencia • 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.

  25. Licencia • Comerciales: • Torque Game EngineAdvance ($295). • 3D Game Studio ($1.250). • Quake III Engine ($250.000 + 5% de royalties). • Warcraft III Engine: ($3.750.000) • Open Source: • Irrlicht. • Cristal Space. • Ogre. • Panda 3D.

  26. Nivel de Abstracción Aplicación (Videojuego) Engine Gráfico API Gráfica (DirectX, OpenGL) Driver Hardware (Tarjeta Gráfica)

  27. 2.4 Componentes de un Engine.

  28. 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.

  29. 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.

  30. Motor de Física

  31. Motor de Sonido • 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: OggVorbis, Wav, Midi…

  32. Motor de Sonido

  33. Motor de Redes • 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.

  34. Motor de Redes • 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.

  35. Motor de IA • 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.

  36. Motor de IA • Máquinas de Estados. Patrullar Atacar Descansar Huir Perseguir

  37. 2.5 Herramientas para un Engine.

  38. Mision Editor TGEA 3D

  39. Particle Editor Ogre3D

  40. Animation Tools Source Engine

  41. Monitoring Tools Source Engine

  42. Scripting Tools UnrealTechnology (UnrealKismet , the visual scripting system)

  43. Sound Tools UnrealTechnology

  44. Bibliografía • DirectX y OpenGL. http://www.slideshare.net/guest5506a9/direct-xy-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%20adicionales/trabajos/Juegos/ProgramacionVideojuegos/Programacion%20de%20videojuegos.htm

  45. Preguntas ¿?

More Related