Tileditor64

Started by BoMbErLiNk, September 07, 2016, 07:53:44 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

BoMbErLiNk

Hace cosa de un mes empecé un editor de tiles para N64 y PC en general, para no olvidarme de todas las cosillas que he ido añadiendo las iré anotando por aquí.

El editor de tiles ya es funcional, se pueden crear y guardar mapas.

Maneja un plano de scroll y 9 capas para el mismo en 3 resoluciones distintas (256x240, 320x240, 640x480), los tiles son PNG de 16bits cada uno, no uso FPG ya que lo que busco es un sistema lo más neutral posible para portarlo.

Los tiles se cargan por orden de la función glob, si se les añade la coletilla 001_1.png, 001_2.png, etc pasan a ser tiles animados apuntando al tile 001 y no forman parte del tile set editable, sino que el engine interpretará que son una animación.

El tamaño de los tiles se analiza y debe ser inferior a 4KB (N64), tampoco pueden ser impares, el plano principal puede ser por ejemplo de 32x32, mientras que los layers de 64x32 o cualquier otro tamaño, no hay problema en tiles de diferente tamaño en diferentes capas.

La interfaz del programa se basa en ventanas, una ventana para el tamaño del mapa, otra para herramientas, otra para las propiedades de la capa y la última el grupo de tiles para seleccionarlos, se pueden mover, abrir o cerrar, en el caso de la del tile set se puede redimensionar a un tamaño personalizado.

Un gif (si nos ponemos encima de un tile podemos hacer CTRL+C para seleccionarlo como tile para pintar):


La ventana herramientas contiene:
- Un panel para saltar a cada punta del mapa o centro.
- Un modo continuo para pintar tiles, se mantiene el ratón.
- Un modo cámara libre, el ratón actúa como lo hace un navegador de internet, desplazando el scroll más rápido o lento desde el punto de origen de pulsación, las flechas del teclado permiten un desplazamiento continuo de 8 pixels.
- Modos lupa 2x y 3x, en realidad no quería añadirlos pero el grafista dio el visto bueno, un zoom en caso de usar tiles pequeños.
- Modo pote de pintura, para rellenar zonas completas de un mismo tile, es una función recursiva y analiza según las condiciones del mapa si se usa en todo el mapa o solo la pantalla visible.
- Modo selección, permite cortar, copiar o borrar grupos de tiles seleccionados, fuera o dentro del mapa, además copia las propiedades individuales de cada tile y cualquier otra propiedad independiente.
- Modos para añadir/eliminar filas/columnas.
- Se puede pulsar suprimir encima de cualquier tile o mantener para ir borrandolos.

La selección de estos modos también puede hacerse con F1 a F9, por orden de función en la lista de herramientas, usando la rueda del ratón se pueden rotar funciones de un mismo grupo, por ejemplo en añadir o eliminar filas o columnas, también con el ratón derecho se puede cancelar para volver al estado solo pintar en todas las funciones salvo las que abran menús emergentes.

La ventana dimensiones permite modificar cuantas filas o columnas tiene un mapa al vuelo durante la edición, las partes que quedan fuera de la región del mapa quedan como oscuras, pero no se borran por si son necesarias después.

De momento existen limites:
El scroll principal puede ser de 512x256 como máximo, esto está por revisar.
Los layers de 32x32, esto creo que es más que suficiente.

No estoy usando punteros de momento y viendo con la alegría que hago las cosas en el editor seguramente no los añada en su gestión, si en otras cosas.

Un gif con más cosillas, los números tienen un cuadro de "introducción libre", ponemos el ratón encima del recuadro y ya se pueden introducir los números reseteando el anterior automáticamente, sin tener que hacer doble clicks ni otras pulsaciones, cuando el ratón deja de estar en el recuadro se reinicia la introducción libre del número, si pulsamos cuando una ventana ya está creada la devolvemos a su posición de origen.


Tile to map permite volcar todo el mapa de tiles en un único PNG o FPG, si el mapa es de 512x256 llega a tomar la absurda cifra de 1GB de RAM en el proceso y bastante tiempo con el programa en (no responde), así que he incluido FPG que es un proceso más rápido.

Este es el aborto que acabo de hacer extraído en mapa.


Además permite volcar en PNG el tile set activo que tengamos cargado en esa capa en particular también, esto es para si hay que cambiar los colores en un puñado de imágenes a la vez por ejemplo, para no andar manejando los archivos 1 a 1, el proceso es reversible, si un tile ocupa más de 4KB el programa entiende que se trata de un conjunto de tiles y usa un algoritmo para detectar, separar, optimizar y organizar los tiles en la carpeta.


La función tile to N64 prepara y limpia el proyecto, organiza los nombres de los tiles para poder usar un bucle simple en N64, optimiza los ficheros guardados y los mueve en una carpeta especial, además convierte los PNG en texturas de N64 para no tener que andar convirtiéndolos con el dev kit (por añadir).

El icono de basura borra la capa activa que tengamos seleccionada.

Undo se puede hacer también con el atajo CTRL+Z, recuerda los últimos 128 cambios por capa, solo los cambios que afecten directamente al mapa, decidí que sería mala idea que guardara los cambios en propiedades de layer, ya que podemos pulsar más por error y no ver esos cambios.

El botón de test llama a otro exe que es el engine del scroll para probar como quedaría el resultado final con la resolución indicada (por añadir).

--

En cuanto a las propiedades de un tile, en el scroll principal cada tile tiene su propia colisión, espejado y prioridad Z, se puede modificar pulsando botón derecho sobre un tile o grupo de tiles si están varios seleccionados.

En las capas adicionales todas estas propiedades van conjuntas, además se incluye la posibilidad de usar "efectos de raster", no encontré una palabra que resuma mejor, permite mover las filas o columnas de una capa a distinta velocidad relativa para crear falsos fondos de profundidad, tal y como hacen las consolas antiguas de 16bits, sin tener que recurrir a más capas para ello.

También incluye efectos y desplazamientos programables, como un movimiento fijo de nubes, deformación para agua o fuego, etc.

- El programa lee desde la carpeta data, "stage1" es una carpeta, dentro de ella se sueltan los tiles del scroll principal, si se crean dentro de esta carpetas con el nombre "layer1" "layer2", entonces se crean layers en el programa y se busca otro set de tiles dentro de ellas.

Cuando cerramos el programa y lo volvemos a cargar el entorno queda en el mismo sitio donde lo dejamos, con load podemos cargar otra carpeta "fase".

Aún tengo cosas por finalizar, iré actualizando.

JaViS


QuoteHace cosa de un mes empecé un editor de tiles




En un mes nada mas hiciste SEMEJANTE LABURASO?
Working on Anarkade. A couch multiplayer 2D shooter.

gecko

tremendo, muy muy bueno!
Torres Baldi Studio
http://torresbaldi.com

Drumpi

¿Un mes? No creo ¿no lo estuviste enseñando hace un tiempo, cuando yo aun estaba con el mío?
Me encanta la interfaz: sencilla, cómoda y potente. Con muchas funcionalidades, aunque entiendo que sólo puedes editar un único mapa ¿no?
Lo que no entiendo es lo de no poder cargar los tiles desde un FPG. Vale que por compatibilidad no es un formato muy común, pero siempre se puede exportar e importar, igual que haces con los tileset :P
Muy buen trabajo, sí señor. Me muero de curiosidad por saber cómo se va a controlar eso con un mando de N64 :D

Me tendrás que explicar el formato que usas para el mapa de tiles por si lo puedo añadir al mio y tener variedad para elegir editor, aunque lo de las capas con diferentes tamaños de tile no va a ser compatible :D :D :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

BoMbErLiNk

JaViS bueno un poco más de un mes  ;D


Quote
// Tileditor 64
// Bomberlink (25-7-16)


PROGRAM Tileditor64;


El grafista hizo los tiles para prueba y yo me encargué de los gráficos de la interfaz, aún necesita un poco más de trabajo, las fuentes por ejemplo están escritas pixel a pixel  :)


Tengo experiencia haciendo editores pero no de tiles así que fui estudiando el formato y el tamaño de los mapas de muchos juegos, en darle vueltas es donde más tiempo he invertido, aún me sorprende lo poco que ocupa un mapa en NES y lo mucho que ocupan los míos, poco a poco xD


Drumpi, sí, las fases se editan de una en una, aunque dentro de una fase puedes trabajar en el plano principal y en 9 capas adicionales.


Las estructuras aún tengo que optimizarlas, creo que lo dejaré para el final.


El editor que viste seguramente sería el Sormaker (2011), reutilizo pequeñas porciones de código como el ratón, en realidad son tan distintos que apenas he podido usar código y algunos gráficos míos como ese de la basura de reciclaje.





Se agradecen los comentarios  ;)

SplinterGU

te has pasado! excelente!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l

#6
 ;D

Excelente... se ve mucho trabajo

Pregunta:
1. La librería de botones , cajas de texto, y ventanas la compartiras?
2. No encuentro la descarga de la herramienta

Futu-block

a mi me gustaría probarlo tambien, he encontrado un vicio en esto de los tiles para mis juegos

BoMbErLiNk

La descarga aún no está disponible, cuando termine unas cuantas cosillas que le quedan ya la pondré junto algunos ejemplos para probar  ;)

Drumpi

Aun así, es un currazo enorme el del programa.
No te compares con los formatos de NES, porque esos están optimizados hasta el extremo, llegando a usar tipos de datos de 2, 3, 4 o 5 bits, seguramente, por no hablar de si le han añadido encima compresión a los mismos :D :D :D
DIV, Fenix y Bennu, con cualquier tipo de dato que no sea INT, se ralentiza :P
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)