Mostrando entradas con la etiqueta XNA. Mostrar todas las entradas
Mostrando entradas con la etiqueta XNA. Mostrar todas las entradas

miércoles, abril 25, 2007

XNA 1.1 - Refréscate

Tras una intensa espera, el XNA Team liber la primera revisión de XNA.
Se trata de una revisión simple, con unas cuantas funcioncillas añadidas. Por lo visto el renderizado de texto por fin se escuentra como una de ellas. Podéis leer la noticia aquí.

miércoles, abril 11, 2007

Nuevo componente añadido en XNACommunity

Los componentes son la esencia de los juegos XNA y la base de la simplicidad en el desarrollo. Uno muy interesante (en realidad dos) acaban de subir a XNACommunity.

Los componentes en cuestión son GameState y GameStateManager que colaboran en el trabajo de manejar los estados de una aplicación tan compleja como puede llegar a ser un videojuego.

El modelo de programación de XNA nos obliga a generar una enorme cantidad de GameComponents. Por supuesto esto simplifica muchísimo el sistema de programación y reutilización de código ya que encapsula funcionalidades de una manera intuitiva y automática. Lo difícil llega cuando tenemos que gestionar miles de GameComponents a la vez. En proyectos relativamente pequeños, no será difícil tener que gestionar cientos de GameComponents; en proyectos mayores, la cifra puede incrementarse. Saber cuándo hay que activar o desactivar cada GameComponent y, lo que es más, organizar el código para que el videojuego lo haga y sea intuitivo al programador, puede ser imposible.

Para eso existen los GameState, o los estados del juego. Cada estado refleja una situación en la que se encuentra el juego. Puede ser desde un simple "pausa" y "no pausa" a una estructura más elaborada en que cada estado contenga un nivel del juego o una pantalla. Visto así, el GameState se conforma como una clase contenedora de otras clases que debe de encargarse de manejarlas correctamente en el momento apropiado.

Un GameState se encarga, por lo tanto, de registrar sus GameComponents asociados en el objeto Game cuando se activa, y des-registrarlos cuando se desactiva.

Por supuesto, no tiene sentido tener más de un estado de juego activo al mismo tiempo. Por ejemplo, es absurdo tener activos los estados "pausa" y "no pausa" al tiempo, o los niveles 5 y 9 a la vez. Por eso necesitamos un GameStateManager que se encargue de gestionar la activación y desactivación de los GameState.

Para más información sobre el tema, podéis dirigiros a XNACommunity, donde está publicado el componente con su ejemplo de uso. Hay otros ocho componentes adicionales y la comunidad está abierta a más colaboradores con ideas interesantes y, sobre todo, con ganas de aprender. Todos somos novatos alguna vez, y los genios de verdad lo son siempre. Así que no tengáis miedo y apuntaros. Os esperamos.

martes, abril 10, 2007

Comuniicate con Wiimote

Desde que Wii salió al mercado (en realidad muchiisimo tiempo antes) las expectativas que la consola y en particular la nueva apuesta por revolucionar la jugabilidad empezaron a ilusionar a todos los jugones. Wiimote, el mando estándar de Wii ha roto moldes indudablemente, pero puede hacer mucho más.

El nombre en código de Wii fue Revolution y, aunque mucho misterio envolvía a esta consola hasta su presentación en sociedad el año pasado, todos los jugones (y fans de Nintendo, entre los que me cuento) estaban desesperando por ver, tocar y jugar con la nueva maravilla de la imaginación de la gran N.

Además de fan de Nintendo, sin embargo, soy fan de .Net (no necesariamente de Microsoft) y la idea de utilizar las ventajas de Wiimote en mi PC via .Net siempre es una maravillosa noticia. Ya oí hace unos meses de un friki que, nada más conseguir su Wiimote lo conectó con su Mac, pero la frikada de hoy bien merece un estudio eshaustivo.

Ziggyware.com ha publicado un vídeo en YouTube donde se muestra cómo un Wiimote puede controlar un videojuego hecho con XNA sobre .Net. Aquí os lo dejo.

Lo interesante en realidad, al menos para tiralíneas de código como yo, no es que el ordenador responda a un Wiimote conectado por bluetooth. En realidad, eso es relativamente simple... siempre y cuando tengamos una API para recibir los datos del Wiimote y poder trabajar con ellos. ¿Os gustaría tenerla? Pues en ziggiware.com lo tienen. Aquí os dejo el link para su descarga. A ver qué hacéis con vuestras Wii.

lunes, abril 09, 2007

Nuclex.Fonts - Renderizando fuentes con XNA

Si hay alguna funcionalidad necesaria para la programación de videojuegos que XNA no facilita ésa es la del renderizado de caracteres (o fuentes). Nuclex intenta solucionar el problema usando el modelo de programación de .net y XNA de manera sencilla.
Creo que todos coincidimos en que el renderizado de fuentes por pantalla es una función imprescindible de los videojuegos. Sin embargo, por desgracia, XNA, a pesar de su enorme versatilidad y su API sencilla y amigable, falla enormemente en este aspecto no proporcionando un sistema de rederizado de fuentes.

Sin embargo, lo que sí proporciona XNA es un modelo de programación fácilmente extensible. Por eso, una vez registrada la necesidad de funcionalidad, es fácil preparar un parche que nos cubra la necesidad. Yo ya he visto varios por la red, pero uno de los más sencillos (si no el que más) es la librería de componentes de Nuclex.

La gran ventaja de Nuclex es que está completamente integrado con el modelo de programación de XNA, basado en componentes. En realidad, la dll que nos proporciona nos ofrece un componente llamado TextManager, que podemos incluír en nuestro juego como haríamos con cualquier otro componente. Los métodos Update y Draw ya están definidos y el único problema se plantea a la hora de cargar la fuente que queremos utilizar en pantalla.

Nuclex.Fonts nos soluciona ese problema, porque además de proporcionarnos el componente para renderizar fuentes, nos proporciona la extensión del Content Pipeline para cargarlas en nuestro juego como cargaríamos cualquier tipo de contenido. Para saber qué hay que hacer y cómo, podéis ver el tutorial (en inglés).

Los resultados son verdaderamente sorprendentes. Cualquier fuente TrueType puede ser renderizada en pantalla con muchísima facilidad. Una simple llamada a la función DrawString nos permitirá renderizar lo que queramos por pantalla. Estoy deseando empezar a usarlo en mi proyecto de Juegos y Realidad Virtual. ¿Y vosotros? Si queréis os podéis bajar el código fuente de la solución aquí.

domingo, abril 08, 2007

Xna Community

La comunidad de codeplex dedicada a la generación de una librería de componentes para XNA llega a sus 1000 visitas.

A aquellos a los que nos gusta XNA nos gusta conocer gente a quien también le gusta XNA. Por ellos se han creado tantísimas comunidades en Internet desde el lanzamiento de esta plataforma-tecnología. Una de ellas, dirigida a entusuastas españoles, es XNACommunity alojada en el servidor CodePlex.

XNACommunity libera su código de manera similar a como lo hacen la mayoría de los proyectos Open Source. Utiliza, como (posiblemente) todos los proyectos de CodePlex, la licencia de Software Libre made by Microsoft (Microsoft Community License). En esencia, permite a cualquier persona reutilizar, modificar y redistribuir el código protegido bajo la licencia, de manera similar a otras licencias de código abierto.

El proyecto está abierto a cualquier persona, pero está especialmente dirigido a estudiantes entusiastas de los videojuegos y a miembros de los DotNetClubs de España. No obstante, como digo, cualquiera puede colaborar.

Hasta el momento, la comunidad ha creado y publicado ocho componentes (un marcador, un cubo, una cámara que sigue a un objeto, una cámara que realiza una ruta, un recorrido sobre texturas 2D, un componente que mueve una imagen por la pantalla, un scroll de pantalla y una bola que rebota). Por supuesto, si estás experimentando con XNA y quieres hacer público tu trabajo, eres bienvenido a la comunidad.

Además de la comunidad, donde puedes encontrar un wiki actualizado con las noticias y los últimos componentes actualizados entre otros, puedes acceder al foro de la comunidad, alojado con el resto de foros de los DotNetClubs, donde puedes preguntar y recibir respuesta a tus dudas sobre XNA o compartir lo que sabes con otros usuarios.

martes, febrero 20, 2007

XNA Challenge en la UA

Desde el pasado 19 de Febrero y hasta el Viernes día 23 se celebran las jornadas XNA Challenge y Imagine Cup Developer Center en las Universidad de Alicante

Desde que el Miércoles 14 y el Jueves 15 de febrero se iniciaron las Jornadas Tecnológicas de la Universidad de Alicante, el Club .net de Alicante ha estado muy ocupado.

El 14 de Febrero se presentaron en la Universidad las charlas LOVE (Lanzamiento de Office, Vista y Exchange). La presentación se centró en presentar las novedades de las interfaces de los nuevos programas así como las novedades incluídas de serie con el .net Framework 3.0 que lleva Windows Vista.

El 15 de Febrero se presentó la jornada .net, centrándose en las ventajas en el ámbito multiplataforma que esta plataforma le ha dado a la programación de aplicaciones. Tras hacer una breve introducción a la tecnología .net se presentó la estructura y funcionamiento a través de su homónima del mundo libre, Mono. Además se demostró mediante un ejemplo funcionando sobre ambas tecnologías que las dos son compatibles en cuanto a la versión 1.1 del .net framework se refiere. Por último se presentaron las mejoras que los frameworks 3.0 y 3.5/4.0 añaden y añadirán a las tecnologías .net y una introducción a XNA y el proyecto Mono.Xna.

A partir del 19 de Febrero, en el aula de acceso libre de la Escuela Politécnica Superior, se están moviendo paralelamente dos competiciones-presentaciones con ayuda presencial por las tardes. La primera, XNA Challenge, intenta presentar las tecnologías XNA de Microsoft y acercarlas a los estudiantes. El objetivo es que se pierda el miedo a programar y experimentar con las nuevas tecnologías y utilizarlas para programar un videojuego, aunque sea sencillo. Los dos mejores proyectos tienen premio y además todos los proyectos que se hagan con estas tecnologías pueden presentarse a otras competiciones como el dream.build.play o la Imagine Cup. Esta última permite también enviar proyectos de otros muchos tipos. En el Imagine Cup Developer Center también se ayuda a desarrollar proyectos que se puedan presentar a esa competición.

El día 19 de Febrero se hizo una nueva presentación de las tecnologías XNA y el 20 de Febrero una demostración práctica de cómo se puede programar fácilmente con XNA Game Studio Express Edition un videojuego. El tutorial incluía la creación de un GameComponent sencillo, el uso de las funciones Update, Draw y la carga de contenidos con el Content Pipeline.

Las próximas charlas ampliarán el campo de uso de .net en muchos ámbitos y todavía tienes tiempo de prepararte para el XNA Challenge. Todos los días hasta el Viernes en el aula de prácticas libres de la EPS desde las 16.00 hasta las 20.00.