lunes, mayo 07, 2007

Tarea7.1__________XNA PARTE 2

XNA Game Studio permite a estudiantes y a programadores de juegos, aficionado a crear juegos que usando .NET uncionen en Windows y su Xbox 360. El sistema XNA Framework es el sistema de las bibliotecas de .NET con las cuales los programadores disfrutaran construir sus juegos. Esta disponible la primera versión beta desde agosto 30 del 2006.

OBJETIVOS DE XNA

Image

Plataforma cruzada de desarrollo.
El objetivo fundamental es hacer fácil desarrollar los juegos. Usando el XNA Framework los juegos funcionan en Windows y el Xbox 360, de esta manera es fácil desarrollar juegos de Windows y una fiel versión de Xbox 360 de ella. Aun así existen funcionalidades distintas en una u otra plataforma pero el objetivo primordial fue unificarlas en la medida de lo posible.

El objetivo fundamental de XNA es hacer fácil desarrollar los juegos

[Para saber mas detalles sobre la diferencias entre las dos plataformas recomiendo XNA Windows Versus XBOX 360]

Simplificar el desarrollo del juego.
El desarrollo de juegos es una tarea compleja hasta para el mas experimentado programador, ¿como será para un simple aficionado?.

Toma en general muchas horas de escritura de líneas de código C++,
de ensayo y error el conseguir un dibujo en la pantalla,
después otras tantas horas de trabajo darle entradas al movimiento.

La meta del XNA es crear juegos en "5 minutos", eliminado elementos de programación tales como:

  • Crear una ventana
  • Enumerar los aparatos gráficos y sus características,
  • Crear dispositivos de representación 3D (Direct3D)
  • Manejar punteros y direcciones a objetos e interfaces

Estas tareas representan elevada complejidad. En XNA lo importante es enfocarse en crear un bueno código para un buen juego.

Image

Dispositiva Conferencia GameFest Agosto 2006
Microsoft©

LAS CAPAS

Plataforma
La plataforma es la capa más baja y agrupa API nativo, enmascarado por XNA. A esta capa pertenecen las APIs

  • Direct3D 9
  • XACT
  • XInput
  • Content

[API o Interfase de Programación de Aplicaciones, que es un conjunto de librerías y recursos destinado a facilitar el trabajo de programación.]

Núcleo del Framework
El núcleo es la primera capa del XNA y proporciona la funcionalidades sobre las cuales las otras capas trabajan. Si tuvieras que asociar algun trabajo de DirectX, esta seria la capa.

Se encuentran aquí las demás partes agrupadas por funcionalidad:

  • Gráficos
  • Audio (XACT).
  • Entradas (XInput).
  • Matemáticas.
  • Almacenaje.

Framework de extensión
El foco principal de esta capa es hacer el desarrollo del juego más fácil. En la actualidad actualmente, esta capa tiene dos componentes principales:

  • El Modelo de Aplicación
  • Administrador de Contenido (Tuberia) Content Pipeline. [Tiene su propia sección]

CARACTERÍSTICAS

Modelo de aplicación.
El propósito del modelo del uso alejar al programador de los problemas de la plataforma, para solo centrarse en escribir el juego. No hay por que preocuparte al crear ventanas, manejar sus mensajes, crear contador de tiempo o un reloj; XNA proporciona todo esto al programador.

Se proporciona un componente primario llamado GraphicsDeviceManager (servicio para administración de gráficos) que se encarga de la creación y gestión de los dispositivos gráficos, de esta manera no es necesario escribir código para crear un dispositivo grafico DirectX. Igualmente en el Xbox 360 no son necesarias las ventanas así el desarrollo ahora unifico para ambas plataformas.

No hay por que preocuparte al crear ventanas,
manejar sus mensajes,
crear contador de tiempo o un reloj
!XNA proporciona todo esto al programador!

También se ha proporcionado un modelo básico de componente, que permite que incorporar y crear fácilmente GameComponents (Componentes de Juego) escritos por otras personas en tu juego. Lo que representa una gran para la creación de una biblioteca de componentes reutilizables.

Gráficos
El sistema grafico actual del XNA framework (XNA GSE 1.0) se encuentra sobre DirectX 9. EL grupo desarrollador empezó el desarrollo desde MDX pero realizaron una reconstrucción total para hacerlas más fáciles utilizar y más constante con las pautas del diseño de .NET.

[MDX o Managed DirectX un conjunto de bibliotecas trabajar DirectX destinado al uso en lenguajes .NET ]

XNA framework carece de ayuda para la funciones fijas o funciones integradas a las tarjetas graficas (como sombreado Pong y Goraund, Bump-maping, Luces tipo T&L Spot... point , etc). Esto a favor de los esquemas de con sombreadores personalizados (en otras palabras se requiere una buena tarjeta de video). Las razones para esta decisión es que el futuro de los gráficos de computadora en tiempo real como el "Direct3D 10" ya no ofrecerán soporte a las funciones fijas.

Se considero mas valioso lograr programar en PC y XBOX 360 de forma idéntica que la entender la forma que se realizan sus funciones internamente. También tiene una implicación sobre los programadores veteranos deben aprender a trabajar solo con sombreadores para evitar errores en la compilación.

Se a integrado un objeto llamado BasicEffect (que es un objeto que maneja los efectos) mas fácil utilizar que los dispuestos para DirectX bajo C++, y con características tales como luces y texturas, de modo que la experiencia de los “primeros 5 minutos” siga estando adentro alcance. Con el BasicEffect se pueden conseguir efectos sorprendentes en pantalla muy rápidamente y fácilmente sin tener que realmente escribir un sombreador. Se brindando la facilidad de sombreadores y efectos ,en el componente BasicEffect lo que permite comenzar a escribir tus propios sombreadores y efectos, utilizar estos directamente.

[Microsoft planeo una completa migración de MDX a XNA es decir si bien ahora existe soporte MDX en el Kid (SDK) de Desarrollo de DreictX, en un futuro no estará disponible, por esta razón muchos de los antiguos programadores debe comenzar a pensar en migrar a XNA. Existe ahora una una guía para migración del API MDX 1.0 a XNA (Link para el Articulo en ingles) ]

Audio
El audio en XNA se construyo sobre de XACT, o plataforma cruzada de audio creada para Windows y el Xbox 360.

La idea detrás de XACT es imitar los fundamentos de los sombreadores del Direct3D. Los autores pueden utilizar las herramientas de XACT para crear los “paquetes” de efectos sonoros y configurar cosas como el volumen, mezclarse (5.1 incluyendo), el etc. El desarrollador entonces toma el paquete, lo carga, y puede reproducir fácilmente sonidos por su nombre, no teniendo que preocuparse de los almacenamientos (buffers) intermediarios o de inicialización.

Un autor puede crear un sonido y llamarlo “Gran Explosión” de diversos archivos de WAV, que contenga tenga un efecto de LFE (de baja frecuencia), y se mezcle entre los otros canales. El programador no necesita saber ninguno de estos detalles; él apenas con llamar a la “Gran Explosión" este se reproduce.

[Tutorial Sonido en XNA con XACT]

Entradas o Mandos.
En XNA no necesitas listar dispositivos, iniciarlos y leerlos por que todos los dispositivos están siempre listos para ser leídos, todo lo que se necesita es llamar al GetState del dispositivo para leerle su estado . Se habilitaron entradas desde el teclado y el ratón para Windows.

En cuanto a mandos el sistemas de interacción se construyo sobre la libreria XInput, que es la plataforma cursada que conduce al mando de el Xbox 360, común para ambas plataformas.

[Todo sobre el Control Xbox 360 para Windows y demas mandos en XNA : Como la filosofía es facilitar el desarrollo, se deshabilitaron los dispositivos de mando como los gamepad o joystick, lo que evita de cierta forma la necesidad de preocuparse de configurar o de lanzar un dispositivo]

Almacenamiento.
El API Almacenaje proporciona la manera que puedes leer y escribir datos del juego (tales como juegos de ahorro, cuentas altas, etc.) de una manera neutral. En Windows no es un reparo puesto que se poseen las librerías System.IO y los métodos del sistema que permiten la localización correcta para el usuario actual. En el Xbox 360, es necesario el estado del juego asociado a un perfil y a un dispositivo de almacenaje, tal como el disco duro o una unidad de memoria.

El Almacenamiento se hace muy fácil hacer así pues, y, en armonía con la meta de una plataforma cruzada, asi XNA emula el manejo en Windows, acoplándolo a las características de el XBOX 360, para utilizar el mismo código en ambas plataformas así poder leer y para escribir los datos.

Matemáticas.
Las matemáticas del XNA proporciona los tipos de uso frecuente para el juego 2D y 3D.

XNA incluye un paquete de matemáticas vectoriales como por ejemplo Vector2, Vector3, Vector4, matriz, el plano, y el rayo. También están incluidos limitación por volumen como BoundingBox, BoundingSphere y BoundingFrustum (ayudas para cálculos de colisiones en 3D desde la camara); estos incluyen los métodos para hacer pruebas de la intersección y de la contención.

[Tutorial de Colisiones Simples ]

Las librerías matemáticas son Derechas por defecto Para programadores muy experimentados se provee del método CreateLookAt, que proporciona una matriz derecha de la visión en vez de ofrecer un CreateLookAtLH y un CreateLookAtRH. La razón que es el facilitar la integración en la creación de componentes.

[Matemáticas Derechas: también se conocen de la mano derecha usan coordenadas basadas en la regla de la mano derecha, con la palma de la mano derecha extendida apuntando hacia el eje X se cierra la mano en la dirección del eje Y el dedo pulgar da la dirección del eje Z en el sentido positivo]

Con un sistema de coordenada estándar es mas fácil más fácil utilizar el contenido fuera de XNA. Para un sistema absolutamente zurdo (o algo más sofisticado) se pueden elaborar con la penalidad de que debe ser realizada la matemática por cuenta propia

http://xna.animered.net/index.php?option=com_content&task=view&id=8&Itemid=2&mosmsg=%A1Gracias+por+su+voto%21