Desarrollo de un editor de niveles 3D

Esta es la continuación de la entrada Desarrollo de un editor de niveles 2D, en esta ocasión presento la aplicación que he desarrollado para crear escenarios en 3D con estética viejuna.

Level Editor 3D - Sergio Soriano

Está desarrollado en Java y utiliza OpenGL para la renderización de gráficos, en concreto el framework LibGDX.

Funcionalidades

Menú de opciones  - Sergio Soriano
  • 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.

Herramientas de edición

Herramientas de edición - Sergio Soriano
  • Blocks: En esta sección se muestra la información del bloque seleccionado. Entre otros se podrá elegir la geometría del mismo, así como la textura de las diferentes caras.
  • Entities: Este apartado permite añadir modelos 3d a la escena. Como requisitos los modelos deben de estar en formato .g3db (LibGDX binary data). Permitiendo personalizar la rotación y la escala del mismo.
  • Decals: Los decals (calcomanías) son objetos/personajes en 2.5D, es decir objetos en 2 dimensiones que se pueden mover en los ejes x, y, z y que siempre miran hacia la cámara. Dando la sensación de pseudo-3d.
  • Environtment: Se configuran la iluminación ambiente y los diferentes puntos de luz que se deseen añadir a la escena, pudiendo configurar el color y la intensidad. Por último también se puede añadir el fondo del escenario (skybox).
  • Tools: Entre otros, he implementado opciones de creación de zonas para poder lanzar eventos durante el juego, herramientas de generación de calles, etc…

Código Fuente:

https://github.com/sergiss/level-editor-3d

Copyright O’matic

¿Cansad@ de introducir lincencias en los encabezados de tu código fuente? ¿Has escrito un programa con 100 billones de lineas, 362 mil paquetes y 1001 test unitarios, quieres compartir tu código, pero te das cuenta que se te ha olvidado poner encabezados....? 🤡

Tras instalar una nueva versión de Eclipse y tenerlo ya todo apunto para picar código, me he encontrado con la sorpresa que el plugin para añadir y gestionar copyrights que suelo utilizar, ya no estaba soportado. Así que me he puesto manos a la obra y he codificado este pequeño programa para tenerlo a mano.

copyright o'matic - Sergio Soriano
copyright o’matic

El programa consiste en un diálogo, donde en primer lugar se debe introducir el texto que se quiere insertar en el encabezado de los ficheros. Seguidamente se debe seleccionar el directorio donde están los ficheros (código fuente, notas, etc.) e indicar si se quiere recorrer todo el árbol de directorios a partir del mismo (subfolders). Finalmente se indican las extensiones de los ficheros, separadas por comas, que se quieren procesar, y si queremos restringir las coincidencias con mayúsculas y minúsculas (Match Case).

Cuando todo esté listo procedemos con el botón «Perform».

Código Fuente

https://github.com/sergiss/copyright-o-matic

Desarrollo de un Editor de niveles en 2D

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:

Editor de niveles 2D - Sergio Soriano

Funcionalidades

Herramientas:

Tools - Sergio Soriano
  • 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.

Layers - Sergio Soriano
Layers

Tileset: Es el conjunto de ‘tiles’ disponible.

Tileset - Sergio Soriano
Tileset

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:

https://github.com/sergiss/level-editor-2d