[XNA] Mapas de tiles

Los mapas de tiles consisten en diseñar los niveles de los juegos reaprovechando pequeños gráficos una y otra vez, hasta terminar confeccionando un mapa que puede ser muy grande. Esto se utilizaba en los primeros videojuegos para aprovechar los recursos de memória disponible, muy limitada en las primeras máquinas en las que se ejecutaban los juegos.

Pero además este recurso tiene otra ventaja: pocos recursos gráficos necesarios. Es decir, que para diseñar un nivel más o menos grande, no necesitas tener un artista trabajando días y días para diseñar un montón de detalles, ya que si formamos el nivel a partir de pequeñas partes, estas se pueden reaprovechar. Y esto es genial para los desarrolladores independientes Smile

Más información teórica de los mapas de Tiles en la Wikipedia.

En el caso concreto de XNA, tenemos distintas formas de trabajar con Tiles. Algunos valientes desarrollan su propio tile engine. Y muchos “mueren” en el intento –o mejor dicho, su proyecto “muere”-. No vale la pena reinventar la rueda… hay muchos tile engines disponibles, y además gratuitos, así que no nos rompamos el coco. Uno de los más usados, para distintas plataformas es el Tiled Map Editor. Es un engine open source (C++) multiplataforma (funciona en Windows / Mac / Linux). Lo bueno que tiene, además de sencillo, es que fenera ficheros en un formato estandarizado llamado TMX, que no es más que un XML con una estructura determinada. Aquí vemos una captura de pantalla:

An orthogonal map

Tiene muchas ventajas: gratuito, fácil de usar, permite establecer propiedades personalizadas a los tiles que después podemos parsear en XNA… es una pasada Smile

Tras trabajar con esta aplicación, al final tendremos un fichero tmx y sus spritesheets asociados, de los que se compone el tilemap.

Cómo utilizamos el mapa generado desde XNA? Nada más fácil! Nick Gravelyn y Jesse Chounard han desarrollado una extensión del content pipeline que lee perfectamente el tmx con un simple Content.Load<Map>. La librería se llama TiledLib, y contiene documentación más que suficiente, así como ejemplos que se descargan junto a las dll necesarias.

Esta captura muestra la facilidad de uso de la librería en un juego muy sencillo:

game.png

Y eso es todo por hoy. Hasta pronto!

Conferencias de Videojuegos en Lleida

El próximo 28 de junio, se realizarán en el Parque Científico de Lleida dos conferencias de videojuegos, en la que dos empresas nos contarán sus experiencias desarrollando videojuegos. La asistencia es gratuita, y únicamente hay que reservar la plaza por e-mail a la dirección info[-arroba-]plungeinteractive.com. Las conferencias están organizadas por la empresa Plunge Interactive, y cuentan con la colaboración de la Universitat de Lleida, el Parque Científico y Tecnológico de Lleida y el Ayuntamiento de Lleida.

Por un lado Rubén López, nos explicará sus experiencias de desarrollo en la empresa Novarama, en la que lleva años desarrollando videojuegos para PSP, Play Station 3, XBOX 360 y Wii, y entre los que destaca el conocidísimo InviZanimals, para PSP. A continuación Pol Urós, programador de la joven empresa BeautiFun Games dará una charla más técnica, y nos introducirá a las plataformas de desarrollo UDK y Unity 3D.

Estas conferencias se enmarcan en el Curso de desarrollo de Videojuegos ofrecido por Plunge Interactive, aunque como se ha dicho, la asistencia a estas charlas es gratuita.

Para más información, podéis acceder a la web de Plunge Interactive.

Experimentando Kinect + XNA (SDK oficial)

Esta tarde se ha lanzado el driver + SDK oficial (beta) para el Microsoft Kinect! Había mucha expectación al lanzamiento del SDK… el caso es que no ha sido muy sorprendente que estas librerías sean totalmente distintas a las que se utilizan para desarrollar videojuegos para XBOX 360, y que además su licencia incluya el uso no comercial de las aplicaciones desarrolladas. En definitiva: que es un SDK para experimentar, y muy fácil de usar. Las posibilidades tanto a nivel académico como profesional (aunque sea a nivel experimental) son enormes. Además todo ello viene acompañado con varios ejemplos y documentación (tanto en C++ como C#), descargables en: http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/ 

Además he podido ver en la documentación que la SDK proteje del «mal uso» que podamos hacer de Kinect, así que es prácticamente imposible estropear el hardware desde nuestro código (ya sea a nivel de motor o lentes). Eso es muy positivo, porque de no existir algunas limitaciones sobre el uso de los sensores, según la documentación sería relativamente sencillo estropear el dispositivo.

Lo que sí me ha sorprendido un poco es que Microsoft Research comente en su documentación que no se haya testado el SDK sobre XNA. Mal asunto! En mi caso he querido hacer una primera prueba, que a estas horas de la noche creo que no es lo mejor del mundo, pero es mi primer hello world 🙂 El ejemplo pinta por pantalla los datos obtenidos por la cámara de profundidad, por la cámara de vídeo, y los puntos de unión del esqueleto detectado (puntos rojos en la captura).

Cosas chulas del SDK:

  • Permite acceso «raw» a todos los sensores
  • Seguimiento del esqueleto
  • Increïbles funcionalidades de audio como reconocimiento de voz, que permiten reconocer el orígen del sonido, e incluso interpretar órdenes
  • Documentación completísima, y ejemplos listos para funcionar, como este «minijuego», que es genial: http://research.microsoft.com/apps/video/default.aspx?id=150286

Varias observaciones / datos curiosos tras hacer esta pequeña prueba de XNA + Kinect:

  • Las imágenes obtenidas de la cámara de vídeo y de profundidad funcionan a 30fps, con una resolución de 640×480 y 320×240 respectivamente.
  • La velocidad de refresco del esqueleto en XNA es horrible, aunque supongo que debo tener algun fallo en el código…
  • Los puntos del esqueleto están pintados en la pantalla sobre un vector 2D, no un vector 3D (obviamente el SDK devuelve parámetros tridimensionales).

 

He adjuntado el Hello World de XNA + Kinect por si álguien quiere jugar un poco con él 🙂 

 

Nuevo juego para Windows Phone 7: Sketchy Blocks

Este juego -hecho con tecnología XNA- es un homenaje al viejo tetris -y técnicamente hablando un experimento de ports multiplataforma, porque ya estoy trabajando en el port a iPhone-. Lo que más me gusta es la increible jugabilidad, a pesar de tener que mover las piezas con la pantalla táctil, y por otro lado la música. La banda sonora es totalmente original, adquirida a un grupo de música ruso, y podréis comprobar por vosotros mismos que es altamente… divertida (ver vídeo del grupo más abajo).

Como curiosidades, el juego dispone de 35 niveles (yo sólo he podido alcanzar el 26 hasta el momento), un ranking global con el que puedes picarte y competir con jugadores de todo el mundo, además de estar disponible en 6 idiomas distintos, y unos bonitos gráficos. Otra ventaja que tiene el juego es el control total del tombstoning, una correcta gestión del tombstoning para mi es esencial en cualquier juego, y esto consiste en mantener la experiencia de usuario del jugador en el móvil. Imagina que estás jugando, y vas por el nivel 30, y recibes una llamada de tu madre o similar, y pierdes todo el avance en tu partida!! Eso no debe ocurrir en ningún juego, y por supuesto no ocurre en Sketchy Blocks. Cuando se pulsa el botón de inicio durante el gameplay, podemos recuperar la partida justo en el punto en el que la dejamos ya sea volviendo atrás o bien volviendo a acceder a la app mediante su icono correspondiente.

Por cierto, quien consiga superar los 35 niveles tendrá una increíble sorpresa visual y auditiva xD Podéis haceros una idea del juego en este vídeo: http://www.youtube.com/watch?v=nqrx-v8Vtho

 

Más información y descarga de la app:

http://www.windowsphoneapplist.com/sketchy_blocks-a21410.html

Aquí va un vídeo del grupo de música que ha compuesto la banda sonora del juego:

Aplicación de Mourinho en el Marketplace de Windows Phone y Android

 Hace un par de días he publicado una nueva aplicación. En este caso es una parodia de Mourinho y sus frases míticas. La aplicación se encuentra disponible para Windows Phone y Android. Además se han añadido algunos fakes como el mítico «sugus azules». No es la app más sofisticada del mundo… pero es un divertido experimento de portabilidad. Tanto si amas como odias a este personaje, es una divertida app que no puedes dejar de probar 🙂

Los features de la versión WP7 son:

– Mourinho mueve (y cruza xD) los ojos con el acelerómetro

– Al darle a la cabeza, suelta toda clase de ruidos divertidos

– Puedes seleccionar tu frase favorita de una extensa lista

– Mourinho mueve la boca al hablar

Enlace a la versión de Android
Enlace a la versión de Windows Phone

La versión Android tiene menos funcionalidades, a falta de la posibilidad de mover la boca al hablar, así como mover los ojos con el acelerómetro -funciones que se añadirán en el próximo update-

Aquí van un par de capturas de pantalla de la aplicación:

[MONO] Vientos de cambio en la plataforma MONO

Las listas de MonoTouch y MonoDroid son un auténtico hervidero estos días… La europea Attachmate ha comprado a Novell por unos 2.200 millones de dólares. La primera preocupación de la comunidad fue acertada: qué pasará con Mono? Y es que al parecer Mono no se encuentra entre las prioridades de Attachmate, y los ingenieros de estadivisión podrían incluso haber sido despedidos. Lo único seguro es que algunos de estos ingenieros, con Miguel de Icaza en la cabeza, podrían haber fundado una nueva empresa que seguiría desarrollando la plataforma Mono, que se llama Xamarin.

Xamarin tiene muy buenas prespectivas, seguirán desarrollando Mono (que es una plataforma open source), el único cambio se encuentra en MonoDroid y MonoTouch, que son librerías propietarias. No obstante, Xamarin ha afirmado que en septiembre o en octubre ya podrían tener las primeras versiones disponibles de nuevas plataformas mono para estos dispositivos móviles.

 

Más info en el blog de Miguel de Icaza.

Cursos de diseño y programación de videojuegos en Lleida

El próximo jueves 12 de mayo se presentará en la Universitat de Lleida (Eidifici EPS, Sala de Graus, aula 2.03) los cursos de diseño y programación de videojuegos ofrecidos por Plunge Interactive. Destacar de este curso en primer lugar que los profesores tiene experiencia contrastada de años de trabajo en conocidas multinacionales del sector, por otro lado, es la primera vez que se realizan cursos de estas características en toda la provincia de Lleida.

Los cursos de varios niveles y de 40 horas de duración, seran presenciales y se realizarán en en Parque Científico y Tecnológico de Lleida a partir del mes de Junio. Las personas interesadas en inscribirse al curso pueden contactar con el e-mail que aparece en el cartel.

[WP7] Nueva app en el Marketplace: Guía de la Tele

Este fin de semana he recibido un mensaje de Microsoft notificándome que la aplicación «Guía de la Tele» había sido aprobada. Esta app, hecha en Silverlight, permite comprobar la programación del día en la TDT española. La novedad respecto otras aplicaciones del mismo tipo son:

  • Gran cantidad de canales: hasta 60, con la posibilidad de añadir más a petición de los usuarios.
  • Posibilidad de buscar programas en la programación del día con un buscador incorporado
  • Gestión de canales favoritos

En definitiva, una sencilla pero creo que útil aplicación. Si queréis descargarla, aquí os dejo el enlace:

http://social.zune.net/redirect?type=phoneApp&id=9983909a-513e-e011-854c-00237de2db9e

Dado que veo que está recibiendo bastante buena crítica, seguramente lanzaré alguna actualización en breve, con algunas peticiones de canales, y algunas funcionalidades mejoradas y un mejor diseño gráfico.

[XNA] Conociendo a XNA Touch

XNA Touch es una extensión de MonoTouch y MonoDroid que permite ejecutar código XNA sobre Open GL en las plataformas Mono. Traduciendo… significa que tenemos una ENORME portabilidad multiplataforma en nuestros juegos hechos con XNA!! Es decir, que nos será relativamente fácil que nuestros juegos se ejecuten en Windows, Windows Phone 7, XBOX 360, iPhone y Android.

 

Vale, muy bonito. ¿Pero funciona? Eso mismo me he preguntado yo… y aquí está el resultado de mis pruebas iniciales. Tengo que decid que me he sorprendido gratamente. En mi caso quiero ejecutar código XNA en iPhone (guauuuu!), así que para ello necesitamos lo siguiente:

 

  • Un ordenador Mac con el SO Snow Leopard (imagino que también pueden valer virtualboxes y similares… pero he oído que la gente tiene muchos problemas con la tarjeta gráfica)
  • Mono SDK (plataforma base)
  • Mono Touch (trial gratuito, la única limitación es publicar las apps y desplegarlas en el móvil, pero se pueden ejecutar en el emulador)
  • XNA Touch
  • Mono Develop (IDE de desarrollo parecido a Visual Studio)

 

Doy por supuesto que tenemos instalado y funcionando todo lo aquí comentado. A partir de aquí en mi caso lo único que he hecho para crear un proyecto XNA para iPhone ha sido:

 

  1. Compilar XNA Touch, y guardarme bien guardada la DLL
  2. Crear un proyecto MonoTouch vacío, ya que, que yo sepa, XNA Touch no tiene plantillas de proyecto a día de hoy (corregidme si me equivoco)
  3. Añadir la clase de inicio Program.cs y la clase Game.cs (más o menos como lo haríamos en un proyecto XNA con Visual Studio de toda la vida!!)
  4. Agregar un directorio «Content» a la solución. Añadir archivos (en mi caso un spritefont) y modificar la propiedad «Build action» a «Content»
  5. Escribir nuestro código XNA usando el namespace XNATouch… y a ejecutar!

 

En mi caso este es el resultado de la ejecución de un sencillo código que renderiza un spritefont y lo hace girar por la pantalla, en base a uno de los propios ejemplos de XNA Touch. En nada, en 2 minutos tenemos esto funcionando:

 

Espero que os haya gustado. Personalmente creo que XNA Touch es un proyecto con mucho futuro. Ah por cierto, os he adjuntado el código de este pequeño proyecto de ejemplo 🙂

[OT] Oferta empleo: programador videojuegos

En Plunge Interactive S.L. (http://www.plungeinteractive.com) estamos buscando un programador de videojuegos, para nuestra oficina en el Parque Tecnológico de Lleida. En este momento nuestro foco es el desarrollo de videojuegos para dispositivos móviles, principalmente iPhone, pero también Android y Windows Phone 7. Nos interesa un perfil que se asemeje al siguiente:

  • Persona creativa, resolutiva, con empuje y apasionada con el desarrollo de videojuegos
  • Formación superior (preferiblemente ingeniería en informática) + Postgrado o Máster relacionado con Videojuegos
  • Conocimientos de programación 2D y 3D
  • Ámplios conocimientos de programación gráfica con distintas plataformas, y al menos las siguientes tecnologías:
    • XNA
    • OpenGL
  • Se valorarán conocimientos y experiencia en frameworks de desarrollo de videojuegos
  • Se valorarán conocimientos y experiencia en diseño de videojuegos

Ofrecemos un salario atractivo, en un entorno de trabajo abierto, joven y flexible, donde lo más importante somos las personas.

Los interesados podéis encontrar e-mail de contacto en la web http://www.plungeinteractive.com