31 ago 2006

XNA: Primeras impresione

Diario de Guerra de Alejandro González, Alias "WaaghMan". Anotación nº 167:

Ayer a eso de las 20.30 se publicó la beta pública del XNA Game Express. Como era de esperar, la descargué y le he echado un ojo.

Aunque aún no he programado ni una sóla linea de código, sí he mirado cómo está hecha la aplicación de ejemplo, y me ha servido para hacerme una idea inicial.

Resumiendo, diré que es la evolución lógica de las DirectX administradas, pero no es ninguna revolución en la programación de videojuegos.

Para probar la beta, hacen falta los tres siguientes componentes:
- El XNA Framework propiamente dicho, 90 MB.
- El Visual Studio C# Express, 430 MB.
- El SDK de DirectX, Agosto 2006, 500 MB.

En total, más de un Gigabyte de descargas. Una vez instalado todo lo necesario, podremos crear proyectos que utilizen este framework.

Teóricamente, podremos crear una ventana de juego tan sólo con hacer una clase que herede de la clase Game (Tampoco es para tirar cohetes, eso ya lo hacía el motor Swift :) ). Otras cosas que podremos hacer es acceder a un componente de teclado o gamepad con una sola línea de código, y de forma similar con el sonido.

Es decir, que inicializar los componentes va a resultar más sencillo que antes, pero como cualquiera con un poco de experiencia sabrá, lo difícil no es inicializar las cosas (para eso tenemos internet). El problema suele ser hacer lo que queremos con las librerías sin liarnos ni complicar el diseño. Y eso no tiene pinta de haber cambiado mucho. Seguimos teniendo Vertex Buffers, Shaders, el renderstate y las omnipresentes matrices.

Desgraciadamente, algo que pensaba que iban a hacer no se ha hecho: Sigue siendo un DirectX, una mera capa de abstracción para acceder al Hardware. Me esperaba una API, sí, pero más preparada para programar juegos, no sólo aplicaciones gráficas: Librerías de red, Diseño de interfaces, Sistemas de niveles, Física básica, etc.

Si realmente pretendían hacer una API "para todos los públicos", ese sería un gran paso: Permitir a los desarrolladores centrarse en el contenido y en la jugabilidad, en vez de hacer que tengan que pegarse con cómo desplazar un objeto por un mundo 3D con colisiones, o desarrollar un sistema de culling eficiente.

En resumen, creo que aunque puede ser una buena operación de marketing, los aficionados a los videojuegos que realmente tuviesen interés en programar un juego, no iban a notar excesiva diferencia.

Aun así, el XNA me gusta por el mero hecho de estar disponible únicamente para C#, lo que dará un nuevo impulso a este pedazo de lenguaje, que puede no ser la panacea de rendimiento, pero reduce mucho el tiempo de desarrollo (aunque sólo sea porque compila más rápido :) ).

De todas formas, tengo intención de adaptar el motor Swift para que use XNA (cuando tenga tiempo libre para ello), y de paso optimizarlo ahora que tengo muchísimo más dominado todo el tema de los gráficos 3D. Procuraré comentar entonces mis opiniones.

2 comentarios:

Miguel Herrero dijo...

Qué miedo das con eso de "muchísimo más dominado". ¡Pero si ántes ya lo tenías dominado!

Abe dijo...

- El XNA Framework propiamente dicho, 90 MB.
- El Visual Studio C# Express, 430 MB.
- El SDK de DirectX, Agosto 2006, 500 MB.


Bueno, sólo me falta el XNA :P Quizá lo pruebe (cuando tenga más tiempo)