La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programador Profesional de Juegos Programación de Gráficos I Unidad 1 Introducción Instructor: Daniel Brenner

Presentaciones similares


Presentación del tema: "Programador Profesional de Juegos Programación de Gráficos I Unidad 1 Introducción Instructor: Daniel Brenner"— Transcripción de la presentación:

1 Programador Profesional de Juegos Programación de Gráficos I Unidad 1 Introducción Instructor: Daniel Brenner danielbrenner@hotmail.com

2 Introducción DirectX está compuesto por diversos componentes, los cuales en su conjunto ayudan al programador en las tareas de bajo nivel de la creación de juegos y aplicaciones multimedia. El API de Microsoft fue creciendo y madurando desde su primer distribución popular (DirectX 3.0). Hoy la versión mas reciente en el mercado es la 9.0b y su grado de avance y desarrollo permite la creación de juegos de nivel internacional haciendo un uso muy eficiente de la plataforma.

3 Un poco de historia DOS Sistema operativo mas popular Programadores acceden directamente al hardware Rendimientos muy altos No era un sistema operativo multitarea Las aplicaciones no debían convivir ni interactuar con ningún otro componente mas allá del creado por el programador

4 Un poco de historia Windows 3.1 Los programadores de juegos se mostraron escépticos de poder programar sus juegos debido a que interactuar con su componete de gráficos (GDI) era extremadamente lento. Por este motivo los juegos continuaban saliendo para DOS mientras que Windows 3.1 se reservaba, principalmente, a la utilización de aplicaciones de oficina.

5 Un poco de historia Sin embargo, el acceder directamente al hardware tenía su lado negativo y es que su programación estaba muy ligada a él y a medida que el mercado de la PC crecía y la cantidad de hardware disponible se diversificada, soportar todas las configuraciones posibles se volvió una pesadilla. Las tarjetas de sonido Sólo como ejemplo: los mas memoriosos recordarán que configurar la placa de sonido requería la mención del nombre del fabricante (Creative Labs - Soundblaster) y especificación de modelo (SB Pro) y datos de configuración (DMA, IRQ, etc). El tener otro modelo de placa menos popular significaba prácticamente jugar sin sonido.

6 Un poco de historia Windows 95 Microsoft prometía un sistema operativo serio. Se introdujo por primera vez el “Plug & Play” que tornaba la instalación de nuevo hardware mas sencilla. Se comenzó con la tarea de evitar que las aplicaciones accediesen directamente al hardware (aunque se seguía tolerando para mantener compatibilidad con viejas aplicaciones) Se introdujo un nuevo tipo de multitarea - ya utilizada hace mucho tiempo en otros sistemas - llamada preemptive (también se la llamó multitarea real), lo cuál evitaba que un proceso monopolizara el CPU. A pesar de todos estos avances el acceso al dispotivo por medio del GDI seguía siendo poco eficiente para la manipulación intensiva de gráficos.

7 Un poco de historia DirectX Para cambiar esta situación Microsoft creó DirectX. Sus diseñadores tuvieron como objetivo desde el primer día “hacer de Windows un sistema operativo atractivo para la programación de juegos”, de hecho en sus primeros días fue conocido como “Game SDK”. DirectX debía ser rápida y de nivel suficientemente bajo para otorgar a los programadores la libertad suficiente para que puedan crear cualquier tipo de juego.

8 Un poco de historia DirectX Para poder hacer un uso óptimo de este nuevo recurso, los drivers de los dispositivos afectados debían de soportar la implementación de funciones pertenecientes a la interfaz de DirectX - en el nivel de abstracción del hardware (HAL, Hardware Abstraction Layer) - o en el caso del hadware antiguo o directamente que no soporte DirectX se utilizaría el nivel de emulación de hardware (HEL, Hardware Emulation Layer). De este modo, se tomaba lo mejor de los dos mundos, si existía un driver específico se aprovechaban sus características y de otro modo se emulaban estas funciones realizando un acceso convencional al mismo. Además, los drivers serían escritos por los desarrolladores del hardware, personas que se encontraban mucho mas calificados para esta tarea que el programador de juegos.

9 Un poco de historia DirectX Existen, sin embargo, funciones que para poder ser utilizadas deben estar sí o sí soportadas por hardware.

10 Componentes de DirectX DirectGraphics Integración de DirectDraw y Direct3D. A partir de la versión 8 de DirectX, ya no es posible acceder directamente a DirectDraw.

11 Componentes de DirectX DirectInput: Provee una interfaz para poder acceder de modo eficiente a los dispositivos de entrada (ej: mouse, teclado, joysticks, etc), incluyendo el soporte a dispositivos con force feedback (especie de vibrador incorporado al dispositvo que otorga al jugador una sensación de resistencia, muy utilizado en volantes y joysticks).

12 Manejo de teclado con Win32 Recordemos como se obtenía la entrada de teclado en una aplicación de Windows convencional. Cuando un usuario presiona una tecla, el driver lee este nuevo estado y genera un mensaje dirigido hacia la cola de mensajes del sistema. Windows procesa los mensajes entrantes de modo secuencial, llegado el turno del mensaje recientemente inserto se lo envía a la aplicación que se encuentra en foco dirigiéndolo a su cola de mensajes. Finalmente, la aplicación irá despachando los mensajes entrantes y llegado el turno de nuestro mensaje será atendido por el Window Procedure de nuestra aplicación. Como el lector se puede imaginar, este mecanismo no es apropiado para un juego, donde por lo general se requiere reaccionar rápidamente a los eventos de entrada. DirectX pasa por encima de este mecanismo de mensajes. Componentes de DirectX

13 Manejo de teclado con Win32 Este mecanismo no es apropiado para un juego, donde por lo general se requiere reaccionar rápidamente a los eventos de entrada. DirectX pasa por encima de este mecanismo de mensajes. Componentes de DirectX

14 DirectPlay Provee una manera simplificada de comunicación por medio de una red de datos (LAN, Internet). DirectShow Provee un soporte multimedia para la reproducción y adquisición de video. Este componente se integró a DirectX a partir de la versión 8. DirectSetup Provee un conjunto de funciones para instalar DirectX - de modo muy simple - desde nuestro juego.

15 La arquitectura de DirectX DirectX se encuentra desarrollado según el modelo de programación COM (Common Object Model). Básicamente este modelo especifica la contrucción de objetos por medio de un sistema de negociación de interfases, gestión del ciclo de vida de un programa, sistema de licencias y servicio de eventos.

16 La arquitectura de DirectX Esto significa que podremos hacer uso de cualquier versión de DirectX igual o inferior a la que el jugador posea instalada. También nos asegura que el lanzamiento de una nueva versión no modificará para nada el uso de la interfaz de una versión anterior del sistema. Por lo tanto, si hacemos uso de DirectX 5 y el jugador instala DirectX 9, nuestro juego seguirá funcionando perfectamente ya que la interfaz de la versión 5 ha permanecido inalterada, como lado negativo el tamaño de los componentes reinstalables se acrecientan de modo significativo ya que cada nueva versión incluye las anteriores.

17 Runtimes y el SDK DirectX runtimes: Necesarios para ejecutar las aplicaciones DirectX en la plataforma (Windows trae preinstalada la última versión al lanzamiento del sistema operativo). DirectX 8.1Windows XP DirectX 7.1Windows ME DirectX 7.0Windows 2000 DirectX 6.1ªWindows 98 SE DirectX 5.2Windows 98 Gold Versión de DirectXSistema Operativo

18 Runtimes y el SDK DirectX SDK: Necesario para desarrollar aplicaciones utilizando DirectX. Incluye: Documentación Tutoriales y demostraciones Librerías Archivos cabecera Los SDK son paquetes muy pesados y puede sobrepasar fácilmente los 100Mb - dependiendo de la versión.

19 Requerimientos mínimos Cuando se realiza un juego normalmente se establece de antemano los requerimientos mínimos que tendrá el mismo. Si utilizamos la interfaz de la versión 9 de DirectX y no hacemos uso de ninguna funcionalidad especial de la misma estaremos elevando los requerimientos de nuestro juego (respecto a la versión de DX requerida) sin suficientes motivos.

20 Requerimientos mínimos Ninguna versión de Windows, por el momento, trae preinstalada la versión 9 de DirectX, por lo tanto el jugador deberá instalar antes de poder utilizar nuestro juego los runtimes de DirectX que son aproximadamente 30 Mb, si nuestro juego tiene como objetivo el mercado shareware de descarga online y ocupa algunos pocos megabytes. En este texto utilizaremos DirectX 8 debido a que no requiere ningún tipo de instalación adicional en sistemas operativos WindowsXP y trae una serie de características significativas sobre DirectX 7 que nos facilitará en gran medida la creación de juegos.

21 El componente DirectDraw En DirectX, hasta la versión 7, Microsoft ofrecía un componente de bajo nivel llamado DirectDraw que nos permitía trabajar con superficies de modo directo. El API proveía todas las primitivas necesarias que requiere un motor 2d (al día de hoy es posible seguir utilizándola siempre y cuando se solicite la versión 7 o menor a DirectX) como manipulación de superficies (espejado, escalamiento), transferencias con color key, etc. Con el lanzamiento de DirectX 8, Microsoft hizo un gran cambio en el diseño de su API. Combinó DirectDraw y Direct3D en un solo componente al que denominó DirectGraphics, sin embargo este nuevo componente es básicamente 3D y se lo conoce también como Direct3D 8.

22 El componente DirectDraw ¿Qué le pasó a DirectDraw? - extracto del Microsoft’s DirectX FAQ “Gran parte de la funcionalidad de DirectDraw ha sido colocada en las interfaces de Direct3D 8. Los desarrolladores que requieran sólo uso de primitivas 2d podrán seguir utilizando el componente de modo directo con la interfaz 7 de DirectX. Los desarrolladores que realizan aplicaciones 3d con elementos 2d les convendrá utilizar la nueva alternativa (point sprites y texturas billboards por ejemplo) y de este modo mejorarán performance y flexibilidad.”

23 El componente DirectDraw Desgraciadamente muchos de los programadores 2d no encontraron “gran parte de la funcionalidad de directdraw…”, de hecho perdieron una de las funciones mas importantes (blit). Sin embargo, el gran atractivo de la nueva API es precisamente “la performance y la flexibilidad”, DirectX 8 está desarrollado para hacer uso del hardware mas moderno. Las rotaciones y escalamientos, así como la utilización del alpha blending proveen al desarrollador de potentes herramientas para hacer que su juego se vea realmente bien. En esta nueva versión se facilitó, además, el código requerido para la inicialización y destrucción.


Descargar ppt "Programador Profesional de Juegos Programación de Gráficos I Unidad 1 Introducción Instructor: Daniel Brenner"

Presentaciones similares


Anuncios Google