Como usar libGDX + Tiled: introducción

Tiles

Uno de los métodos utilizados para crear videojuegos 2D es el sistema de tiles. Explicado de forma muy genérica, consiste en tener una imagen global que contiene porciones del escenario a modo de azulejos, y esos «azulejos» son combinados para formar un escenario completo.

Tileset

La imagen que contiene los tiles se conoce como Tileset. El siguiente es un ejemplo de uno de los tilesets utilizados en mi juego Rainbow Diamonds:

Mapa

El mapa es el archivo que define como se combinan los tiles para formar el escenario completo. Este archivo podemos generarlo nosotros manualmente, o podemos utilizar alguno de los editores existentes que nos facilitarán enormemente el trabajo.

Algunos motores de videojuegos incluyen su propio editor de tiles y mapas (GameMaker, Unity, SpriteKit, …), y también existen editores genéricos que no están ligados a ningún motor concreto, como pueden ser Tile Studio, Mappy Editor o el que usaré en estos ejemplos: Tiled Map Editor.

 

Motor de juegos

Una vez que tenemos nuestros tileset y mapas necesitaremos interpretarlos desde nuestra aplicación, ya que como mínimo necesitaremos dibujarlos en nuestras escenas. Una de las razones por las que utilizo Tiled Map Editor es precisamente que libGDX contiene funciones para dibujar y tratar los mapas generados con esta herramienta, por lo que no tendremos que preocuparnos por implementar el código necesario para ello.

 

Consideraciones

Existen muchos tipos de videojuegos en los que podemos usar tiles. En general, esta técnica funciona muy bien con videojuegos pixelados porque es más fácil encajar los tiles entre sí que si usamos, por ejemplo, un estilo de pintura digital.

En posteriores artículos iremos viendo cómo crear y dibujar tiles con Tiled y libGDX.

Saludos,

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*