miércoles, octubre 25, 2006

Anuncio: XNA GSEE Beta 2

La Beta 2 de XNA Game Studio anunciada en el blog de XNA
Aquí tenéis la traducción del post en el blog de xna (http://blogs.msdn.com/xna) con relación a la próxima salida de la Beta 2 de XNA GS.

Anuncio: XNA Game Studio Express Beta 2

Michael Klucher
Program Manager – XNA Game Studio

Nuestra primera beta de XNA Game Studio Express ha tenido un éxito rotundo. El número de descargas, la actividad online de las comunidades y muy especialmente el nivel de excitación que ha generado en general ha sido poco menos que increible. También hemos estado estudiando todos los valiosos comentarios y sugerencias en nuestro blog del equipo de MSDN, los foros de MSDN y los sitios de Microsoft Connect para esta y futuras versiones de XNA Game Studio Express.

Una de las peticiones más populares ha sido lanzar una segunda beta y, en nombre del equipo de XNA Game Studio me complace anunciar que, de hecho, vamos a lanzar otra beta de XNA Game Studio Express que estará disponible en un par de semanas

Seguid visitando el blog porque hablaremos un poco más detalladamente de lo que podéis esperar de esta nueva beta. Creemos que os gustará ver el impacto directo de todas vuestras sugerencias en la realización del producto. También colgaremos mucha información en nuestro blog y en nuestra documentación sobre cómo migrar proyectos de la primera beta de XNA Studio Express a la nueva versión.

Una cosa que vale la pena mencionar es que, como sabréis, no hay mucho tiempo entre esta segunda beta y el lanzamiento final en las próximas vacaciones. De hecho deberíais pensar en esta beta más como una Release Candidate final. Pero aún tenéis la oportunidad de ayudarnos a identificar cualquier asunto crítico en el producto que hagan difícil el uso de XNA Game Studio Express.

Esperamos que os guste usar la segunda beta tanto como la primera. ¡Y seguid mandando sugerencias para el próximo XNA Game Studio Express!

Bueno, creo que eso habla por sí mismo. A todos los que usan XNA GSEE, un saludo.

viernes, octubre 13, 2006

Ya tenemos tutorial

El tutorial, que ya está corregido aunque no ha salido de su fase beta, ya tiene publicados los capítulos 0 (Introducción) y 1 (Entorno de desarrollo).
Aprovechando la oleada de nuevas aplicaciones web que Google ha puesto a nuestra disposición en la última semana he decidido publicar los documentos de los tutoriales mediante Writely de Google. Las razones son simples: 1) Writely permite publicar el documento inmediatamente el el blog, 2) Writely permite exportar a cualquiera los documentos en el formato que prefieran (sea Word, PDF, rtf o OpenDocument) y 3) permite que los colaboradores del blog hagan retoques cuandos sea necesario, de modo que la información siempre esté actualizada. Además es totalmente accesible via web.

Veréis la entrada del documento XNAClub Tutorial - Guía del principiante - 00 Introducción y la de XNAClub Tutorial - Guía del principiante - 01 El entorno de desarrollo publicados hoy tanto en la url pública de Writely como en el Blog del XNAClub. Animo a los miembros del club a echarles un vistazo y postear comentarios sobre qué les parece.

martes, octubre 10, 2006

Bienvenida a Miguel Llopis

Tenemos un nuevo miembro
Miguel Llopis, ese "uno de tantos" coordinadores del DotNetClub de Alicante ha aceptado la invitación para formar parte del XNAClub. Bienvenido.

A través del DotNetClub de Alicante y de Miguel, tratatremos de que la infromación que se coloque en este blog sea lo más actualizada y confiable posible, ya que vendrá prácticamente de manera directa de los chicos de Microsoft. Sin embargo eso no quita que también reflejemos lo que nosotros mismos vayamos experimentando por nuestra cuenta o que reflejemos noticias interesantes de otras fuentes.

En cuanto a los tutoriales, desgraciadamente no he tenido tiempo de hacerles las correcciones que tenía que hacerles y se retrasarán, previsiblemente, hasta el jueves. Lo podríamos llamar un retraso técnico, porque tal vez podría ponerlos esta noche si me hubieran mandado ya el ADSL. Pero con 56k prefiero aprovechar el viaje a la universidad del jueves y subirlo desde allí. Tened paciencia.

Isaac Llopis

sábado, octubre 07, 2006

Noticias de fin de semana

¿Qué es XNA? Lo primero que tenemos que tener claro cuando trabajamos con algo es qué es, para qué sirve, qué se puede hacer con ello. La presentación que acabo de terminar puede ayudar.

He estado pensando en la idea que dio Miguel acerca de hacer algunas charlas antes del Microsoft University Tour para ir preparando a la gente y me he dado cuenta de que, aunque sea para tener las ideas claras, está bien esquematizarlas y hacerse una pequeña presentación. Así es que me he puesto manos a la obra.

Desde el pasado jueves por la tarde me puse a trabajar en una presentación con PowerPoint para ver si era capaz de explicar de manera sencillita qué es XNA y cómo funcionan XNA y XNA Game Studio Express Edition.

Yo no es que sea el mayor experto de XNA del mundo, pero sí que me he pateado bastante las FAQ, foros y blogs de msdn sobre el tema así como algunas otras páginas de fans de XNA. Con la información que he recogido me he creado una presentación bastante chula de lo que es XNA. La tenéis disponible aquí y como siempre en mi googlepage. Próximamente crearé un post sobre el tema que lo explique de manera sencilla.

También he cambiado los nombres de los proyectos de ejemplo que colgué el otro día de MyXNA a XNAClub. El código es el mismo, lo único que han cambiado son los namespaces. Pero no pretendo que mi conexión de casa sea capaz de soportar tal cantidad de información. Me conformaré con subir la presentación por el momento y el martes más, caballeros.

Por último, también quería haceros saber que en cuanto al tutorial de XNA ya he llegado a la lección 2. Por supuesto sigue en fase beta y aún estoy haciendo cambios a las anteriores. De todos modos podéis echar un vistazo y mandar correcciones si veis que algo está mal o puede mejorarse. También subiré las lecciones que tengo hasta ahora el próximo martes, si todo va bien.

jueves, octubre 05, 2006

Primera subida de datos

Proyecto 1: una librería de clases extendidas.
Proyecto 2: un tutorial de XNA con lo que vaya aprendiendo.
Bien, pues como lo prometido es deuda, aquí van los primeros archivos que publico en el blog. Están accesibles desde mi googlepage pero tened en cuenta que allí solo voy a publicar los índices de los archivos que vaya subiendo. Aquí es donde está el meollo de la cuestión con comentarios y eso.

En primer lugar os presento el proyecto en el que estoy enfrascado ahora. Se trata de una librería de clases que extiende las funcionalidades de algunas clases de XNA y las simplifica. El factor importante de XNA (que nunca hay que perder de vista) es que funciona como cualquier IDE de Visual Studio y puedes crear tus propios componentes para el toolbox. Así es que yo me he creado dos componentes (de momento). Los podéis encontrar en la solución MyXNA (a la que pronto rellamaré como XNAClub). En el mismo zip he incluído un juego de pruebas titulado TutorialKina que muestra el funcionamiento de ambos componentes.

El primero de los GameComponents se llama StaticSprite y encapsula un SpriteBatch y un Texture2D. Me he liado bastante pero he conseguido (cutremente, eso sí) que el dichoso elemento aparezca en el toolbox (recordad: una vez habéis compilado la solución y tengáis un proyecto de juego abierto que tenga como referencia el MyXNA). El rpoblema es que aunque pone muy bien los métodos en la pantalla de propiedades no me gusta el sistema que he escogido para hacer los métodos get y set de las mismas. He utilizado un vector de dos elementos para las posiciones en que se debe empezar a leer la textura y a dibujarla y para los tamaños de los rectángulos de entrada y salida, pero eso de "v[0]" y "v[1]" en la ventana de propiedades queda muy mal. Supongo que esto se formateará como cualquier otro componente compuesto de cualquier proyecto de Windows Forms en .NET, pero el caso es que no se hacerlo. ¿Podéis ayudarme?

El segundo de los GameComponents se llama MovableSprite y podéis imaginar qué hace. Hereda de la clase anterior todas las propiedades y métodos (incluyendo los fallos que he detallado anteriormente) y añade un control de teclado que permite mover el sprite por la pantalla (sin control de colisiones) con las teclas de dirección. Si no se tiene pulsada ninguna, el sprite se mantiene parado (no solo en el lugar de la pantalla, sino sin reproducir la setie de imágenes del mismo).

Los nombres que les he puesto son más cutres que la Gioconda con mechas verdes pero acepto sugerencias. Mis próximos objetivos son un AlphaSprite que contenga una propiedad con el color que se tiene que tomar como canal alpha y que éste aparezca transparente en un grado determinado por otra propiedad y una manera de detectar las colisiones.

En segundo lugar, el segundo proyecto en que estoy trabajando es un tutorial muy simple de cómo utilizar las diferentes clases de XNA en ejemplos sencillos. Tengo la introducción esquematizada y hecha pero me gustaría que alguien que entienda un poco más me la corrigiera (que esto es un club y hay confianza), en especial si he metido la zarpa explicando qué es realmente XNA. No pretendo usar tecnicismos raros, pero me gustaría ser exacto al definirlo. ¿Es un conjunto de clases? ¿Es una capa .NET para DirectX? ¿Qué es?

Aquí tenéis los archivos. Espero comentarios pronto.
Proyecto 1: Librería MyXNA (próximamente XNAClub)
Proyecto 2: Tutorial XNAClub (Capítulo 00-Introducción)

Por último quiero dar la bienvenida al club a Miguel Llopis, del DotNetClub de Alicante, que a partir del momento en que acepte la invitación de unirse al club pasará a poder introducir también sus comentarios.

Isaac Llopis

El "por qué" (modificado 6.10.2006)

¿Por qué narices se me ocurrió empezar a trastear con XNA?

Antes de nada, saludos al DotNetClub de la Universidad de Alicante (y a todos los Llopis del mundo mundial XD).

Puesto que XNA sigue siendo una tecnología Beta, ¿por qué se me ocurriría a mi meterme a trastearla? Bueno, creo que le debo a la comunidad de usuarios de XNA y a mi propio cerebro una explicación.

Este año espero que sea (por fin) mi último año de carrera. Para que así sea he tenido que cogerme tres asignaturas de créditos de libre elección, entre ellas Juegos y Realidad Virtual. Siempre me ha llamado la atención el tema de diseño y programación de videojuegos (no os equivoquéis: "diseño" no tiene nada que ver con hacer a los personajes o escenarios) porque me parecen una aplicación muy productiva de los poderes mágicos de la informática.

Para que la gente lo sepa, soy fan acérrimo (buscadlo en la RAE) de la saga de Monkey Island, de Grim Fandango, Indiana Jones, Sam & Max, The Day of The Tentacle y de otras tantas aventuras gráficas clásicas que han marcado historia. Me encantan los videojuegos de estrategia y, muy especialmente, la visión que tiene Nintendo del mundo del videojuego.

Además de mi propio interés, está el interés económico. Como proyecto de futuro informático (mediocre, pero informático) el hecho de que la industria del videojuego sea la que más ha crecido en Europa últimamente no me pasa desapercibido. Por tanto, aunque sea para trastear, quiero saber algo de videojuegos.

Desde siempre, trastear con librerías gráficas ha sido un apaga y vámonos. Muy poca gente iba por gusto a meterse a programar con OpenGL a saco o DirectX así de primeras. Generalmente se utilizaban librerías más tontitas como Allegro o similares para empezar. Entender el sistema de bucle contínuo de un videojuego (ya postearé algo sobre esto para los que no sepáis qué es) es un poco complicado al principio. Y diseñar el sistema de clases y estructuras de datos de un juego es para morirse.

De pronto aparecieron en escena las tecnologías .NET. A nadie se le ocurriría empezar a programar un juego en Visual Basic (ni loco) teniendo todos los motores y estructuras predefinidas históricamente en C++. Pero .NET le da una vuelta al asunto y mediante la compartición de la librería de clases (no sólo la básica sino incluso las cradas por tí mismo) permitía que esas clases se exportaran a cualquier lenguaje .NET. ¿Guay no? Pues lo primero que pensé (y no es broma) en la primera charla del Microsoft University Tour, cuando estaba en segundo haciendo POO fue: "¿Y esto también vale para videojuegos?". Pues teóricamente sí, pero técnicamente era un poco más difícil.

Luego apareció el primer acercamiento con las Managed DirectX, que no es más que una capa que permite a los lenguajes .NET acceder a DirectX (que seguían siendo librerías nativas externas a .NET). El caso es que eso tiraba, pero cualquier programador prefería sus clases en C++ a tener que hacerlo todo desde cero en C# (el mejor lenguaje del mundo mundial).

Por eso, aprovechando el tirón de XBOX 360 y el próximo lanzamiento de Vista (con .NET 3.0), ahora Microsoft se saca de la manga las librerías XNA. Están concebidas como una capa totalmente .NET con las mismas funcionalidades (o más) que DirectX, las cuales continúan siendo nativas al sistema.

Lo más difícil de programar en un videojuego es el sistema de transporte de diseños 2D o 3D a código. Pero XNA pretende incluir todo eso de serie (¡toma!). Así para meter meshes con bones en tu videojuego sólo tendrás que invocar una función de una clase XNA y ya está. Es más: se podrá utilizar como una herramienta en tu toolbox de Visual Studio. Y todo esto gracias al Content Pipeline que, desgraciadamente, no estaba disponible cuando se lanzó la beta de XNA (sniff ¬¬).

No obstante aún se puede trastear con lo que será XNA en cosas tan sencillas como la creación de sprites. Eso es en lo que he estado trabajando hasta ahora. Próximamente colgaré el proyecto de librerías que tengo en casa con dos mejoras de la clase SpriteBatch de XNA. Pondré también un proyecto de juego para que veáis cómo funcionan.

Hasta entonces descargaros el XNA y probadlo, a ver qué os parece. Colgad comentarios en los post que os interesen. Ok?

Isaac Llopis

martes, octubre 03, 2006

Novedades en la UA

La Universidad de Alicante recibirá al Microsoft University Tour el próximo 12 de Diciembre.
Hoy hemos completado la primera fase de la puesta en marcha del blog XNA Club. Le hemos dado personalidad y lo hemos retocado un poco para que todo quede bien conforme vayamos añadiendo contenido.

Como podréis ver, la cabecera ha cambiado. Tiene el logotipo "oficial" de XNA, aunque con Microsoft ya se sabe, hasta la versión final no sabremos qué es oficial y qué no lo es. Iremos actualizando la tabla de enlaces para añadir enlaces externos no sólo a páginas oficiales o autorizadas sino también a páginas de gente que, como nosotros, trastean con todo lo que cae por sus manos. Poco a poco veréis más cambios, pero la estética será muy similar a la actual. Esperamos que os guste.

Para el futuro... sólo dar una noticia de la que me he enterado hoy y que a mis compañeros de la UA les interesará. La típica charla anual de .NET en la Universidad de Alicante (conocida técnicamente como el Microsoft University Tour) será el próximo martes, 12 de Diciembre de 2006 si todo marcha bien. El programa es el siguiente (todas las charlas por la mañana) :
  • Introducción a .NET
  • ASP .NET / ATLAS Web Development
  • Interfaces 2D y 3D en aplicaciones (WPF - Vista) / Expressions tools
  • Desarrollo de aplicaciones para dispositivos móviles
  • Desarrollo de juegos DirectX /XNA (juegos para XP and XBOX360)
Los componentes del .NET Club de la Universidad de Alicante estarán expectantes. El coordinador, Miguel Llopis (como dice él "uno de tantos"), del DotNetClub de Alicante propone realizar, a título más individual, algunas charlas previas preparatorias o de introducción a algunos de los temas ya mencionados. Si alguien se apunta...

lunes, octubre 02, 2006

Bienvenido a XNA Club

Si todavía no sabes que es XNA...

... no te preocupes, de momento no es vital. La mayoría de la gente, de hecho, lo ignora. No obstante es una herramienta de programación que va a resultar muy útil desde el momento en que salga de su fase beta.

Hoy empezamos este blog que pretende ser comunitario a todos aquellos interesados en el diseño y programación de videojuegos y las tecnologías .NET. La intención es introducir los descubrimientos que hagamos en el proceso de aprendizaje (en la mayoría de los casos autoaprendizaje) sobre este tema. Si a alguien le ayuda... ¡pues genial! Si alguien tiene dudas y las sabemos contestar, mejor. Y si alguna de las ideas que se nos ocurran alguna vez no cae en saco roto, tal vez hagamos la vida más fácil a los programadores del mundo (entre los que, por suerte o por desgracia, nos encontramos).

Sigo utilizando el pronombre en plural "nosotros" porque aunque personalmente, sólo estoy yo ahora mismo, pretendo (singular) que este blog llegue a ser una comunidad o club, como dice el título, lo que lo convertirá en un "nosotros" (plural).

Si te ha interesado algún tema, escribe comentarios. Los trataremos de contestar como sea. Si te ha picado la curiosidad acerca de las tecnologías XNA puedes bajarlas desde la página de la comunidad de desarrolladores de Microsoft msdn.microsoft.com/directx/xna. Muchas ideas y preguntas están colgadas desde sus foros. Otras, las encontrarás aquí. También publicaremos los progresos que agamos y los muros con los que nos encontremos. Los pros y los contras. Todo.

Bienvenido a XNA Club.