Una de las herramientas más utilizadas a la hora de desarrollar videojuegos, sobre todo en aquellos en los que necesitamos representar un mundo abierto o escenarios, es el editor de niveles.
Llegados a este punto tendremos que elegir entre utilizar recursos ya existentes (como los proporcionados por el framework que se esté utilizando, o editores de pago/código abierto, como por ejemplo Tiled), o desarroyar nuestro propio editor. Personalmente recomiendo utilizar los recursos existentes, ya que avanzaremos mucho mas rápido en nuestros proyectos. Pero si por el contrario, queremos saber como se realiza este tipo de herramientas, o bien, es un requisitos del proyecto, tendremos que desarrollar nuestro propio editor de niveles.
Este es el que yo he desarrollado:
Funcionalidades
Herramientas:
- 1.) Crear nuevo documento: Abre el asistente para la creación de un nivel nuevo.
- 2.) Cargar documento: Muestra el selector de archivos para cargar un nivel existente en el árbol de directorios.
- 3.) Guardar cambios: Guarda el nivel en disco.
- 4.) Undo/Redo: Deshace o repite los cambios acumulados.
- 5.) Pincel: Dibuja el ‘tile’ escogido en las coordenadas seleccionadas del mapa.
- 6.) Bote de Pintura: Rellena la superficie seleccionada con el ‘tile’ escogido.
- 7.) Borrador: Borra el ‘tile’ escogido.
- 8.) Cuenta gotas: Identifica y selecciona el ‘tile’ que ocupa las coordenadas seleccionadas del mapa.
- 9.) Dibujar póligono: Habilita el modo de dibujado libre de polígonos para la detección de colisiones.
- 10.) Dibujar círculo: Habilita el modo de dibujado de circulos para la detección de colisiones.
- 11.) Selección de vertices: Permite la selección de vertices entre los poligonos existentes en la capa seleccionada.
- 12.) Habilita la visualización de la rejilla.
- 13.) Habilita la visualización de polígonos de colisión.
Layers: En esta sección se podrán gestionar las diferentes capas del nivel.
Tileset: Es el conjunto de ‘tiles’ disponible.
Conclusiones:
En esta entrada se ha mostrado de forma breve las funcionalidades básicas para el desarrollo de un editor de niveles para juegos en 2 dimensiones.
Espero que sea de utilidad como inspiración para cualquier proyecto.
Código Fuente: