Bien empecemos por lo basico
¿Qué es Xna?
XNA es una API desarrollada por Microsoft para el desarrollo de videojuegos para las plataformas Xbox 360 , Windows y Zune.
¿Qué es una API?
Según las siglas significa "interfaz de programación de aplicaciones". Una interfaz de programación representa una interfaz de comunicación entre componentes de software. Osea en definitiva una API es un conjunto de "llamadas" a ciertas bibliotecas. Y ¿Para qué me sirve una API?, bueno básicamente en esas bibliotecas a las cuales llamamos existen funciones que nos facilitan mucho las cosas, por ejemplo necesitamos iniciar el modo de video de la placa, sin una API tendríamos que estar usando ensamblador para llamar a interrupciones de video para poder iniciar el modo de video.
En definitiva algo asi:
#include getch(), clrscr()
#include MK_FP, geninterrupt()
#includememset()
unsigned char *pantalla = (unsigned char *) MK_FP(0xA000, 0);
void SetMCGA()
{
_AX = 0x0013;
geninterrupt (0x10);
}
void SetText()
{
_AX = 0x0003;
geninterrupt (0x10);
}
#include
#include
unsigned char *pantalla = (unsigned char *) MK_FP(0xA000, 0);
void SetMCGA()
{
_AX = 0x0013;
geninterrupt (0x10);
}
void SetText()
{
_AX = 0x0003;
geninterrupt (0x10);
}
Si tuvieramos una API que llame a una biblioteca que tenga la función esta definida, seguramente haríamos algo asi:
Los desarrolladores que usan CLR escriben el código en un lenguaje como C# o VB.Net. En tiempo de compilación, un compilador.NET convierte el código a MSIL (Microsoft Intermediate Language). En tiempo de ejecución, el compilador en tiempo de ejecución (Just-in-time compiler) del CLR convierte el código MSIL en código nativo para el sistema operativo. Alternativamente, el código MSIL es compilado a código nativo en un proceso separado anterior a la ejecución. Esto acelera las posteriores ejecuciones del software debido a que la compilación de MSIL a nativo ya no es necesaria.
Para que se vea un poco mejor entonces lo que se hace es lo siguiente: Nosotros tenemos nuestro código en un lenguaje como C#, VB.NET o cualquier otro lenguaje .NET, cuando le damos play, para que ejecute el código de fuente, el programa se compila, al compilar el programa se convierte el código en C# o en el lenguaje que lo hayamos hecho en un lenguaje intermedio entre el C# o el lenguaje que hayamos utilizado y el código de máquina o código nativo, luego mientras se ejecuta el código de fuente (osea el programa ya compilo y está corriendo), se convierte lo que quedo en el lenguaje intermedio al lenguaje nativo "en tiempo de ejecución".
Hasta acá vamos bien, entonces el funcionamiento de todo el sistema seria
Capas de XNA - Las diferentes capas de XNA, vistas de arriba a abajo, el XNA game studio utiliza la funcionalidad del xna framework, y éste a su vez se basa en el .net framework. Por último están las plataformas a las que van destinadas nuestras aplicaciones, windows, Xbox 360 o zune.
En otras palabras, XNA es una plataforma de desarrollo de videojuegos sobre DirectX, en la cual disponemos de cierta funcionalidad ya integrada lo que nos permite centrarnos en la parte de qué queremos hacer en nuestro juego y no en el cómo hacerlo.
Para verlo gráficamente:
Framework de XNA - Los recuadros verdes se corresponde con la funcionalidad que ya viene de "serie" con el framework.
Bueno en este momento ya tendríamos una idea de que es XNA y de como funciona, en el próximo Capítulo vamos a ver lo que necesitamos instalar para poder comenzar con la acción.