[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!

3 comentarios en “[XNA] Mapas de tiles”

  1. Qué recuerdos 🙂

    Jesús, sabes si soporta Tiles Animados?. A nivel de Editor poder definir transiciones entre distintos tiles, típico efecto de olas en la costa…

  2. @pablo, soporta propiedades personalizadas, así que supongo que lo que se podría hacer sería crear algún tipo de propiedad que XNA entienda como animación

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *