Gameboy Development Forum

Discussion about software development for the old-school Gameboys, ranging from the "Gray brick" to Gameboy Color
(Launched in 2008)

You are not logged in.

#1 2020-04-27 14:38:57

gameboy79
Member
Registered: 2020-04-10
Posts: 10

Map and Tile Editors

Hi,

What Tile and Map Editors are you using for your projects?
I am using GBMapBuilder and GBTileEditor and while these tools are good, they are also quite old and especially hard to use on a big monitor. Are there any good alternatives? Anyone using ProMotion NG for a Gameboy Game?

- gb79

Offline

 

#2 2020-04-27 14:47:01

toxa
Member
Registered: 2020-02-13
Posts: 309

Re: Map and Tile Editors

Offline

 

#3 2020-04-27 16:05:59

ISSOtm
Member
From: Somewhere in Echo RAM
Registered: 2017-04-18
Posts: 160
Website

Re: Map and Tile Editors

There's Tiled, but personally I just use a good image editor, and process images using rgbgfx and SuperFamiconv. This is a much superior approach to dedicated tile editors, because they are more universally usable, and can be integrated into the build process. Tilemap Studio was designed for the Pokémon disassemblies, and is used there because the files they are using cannot be generated from images in most cases. But homebrews don't have the limitation of needing to produce a matching ROM, so we can do better.

The workflow I'm using on a game I'm working on is that the artists have designed images (one using Aseprite, the other GraphicsGale), and I have tools that process them into raw tile data. The major upside is that they do a better job at optimizing data than humans do (for example, finding flipped tiles, or packing colors into palettes), they can report possible areas of improvement, etc. As I mentioned before, it also lets the artists use whatever tools they want, which they are usually more comfortable with, better suited to drawing pixel art, and just available on more platforms. I compile my game on Linux, and the artists work on Windows—neither of us care about the other, because images are universal :p

Examples of such images:
One and two. (Not included as direct embeds because the sizes are massive, and I don't know how to resize with this forum's BBCode)

RGBGFX works better for single-palette images, SuperFamiconv works better for multi-palette images. It's a bit annoying that both have their own set of flaws the other doesn't, but it's worked very well for me so far.


Now, all of this works well for simple tilemaps, but when metadata needs to be added, things get more iffy. Since you will certainly use your own format, you will probably need to develop your own toolset—although GUI programming can be quite annoying—but I've heard that Tiled may be well-suited for that purpose. I have yet to experiment with it; but my plan is to still rely on images, and use yet more tools to associate external metadata, while applying some error-checking to avoid stupid issues. I'm not there in the game's development yet, but I will definitely share the result of my experiments ^^


The French Lord Of Laziness.
Legend of Zelda and Undertale fan, I also tend to break Pokémon R/B/Y a little too much.

Twitter | Me on GCL | Discord : ISSOtm#9015 | Skype : isso.tm (I don't login anymore)

Offline

 

#4 2020-04-29 10:02:14

gameboy79
Member
Registered: 2020-04-10
Posts: 10

Re: Map and Tile Editors

I can see the upsides for Map and Tiles, but how about Tile Attributes? Like which tiles are colliders and interactive (I guess you could just use a different layer of the image and post-process it differently). GBMapEditor does this quite well in my opinion, if only it wouldn't be so tiny on my 4k screen wink

Offline

 

#5 2020-04-29 18:13:39

ISSOtm
Member
From: Somewhere in Echo RAM
Registered: 2017-04-18
Posts: 160
Website

Re: Map and Tile Editors

gameboy79 wrote:

I can see the upsides for Map and Tiles, but how about Tile Attributes? Like which tiles are colliders and interactive (I guess you could just use a different layer of the image and post-process it differently). GBMapEditor does this quite well in my opinion, if only it wouldn't be so tiny on my 4k screen wink

ISSOtm wrote:

Now, all of this works well for simple tilemaps, but when metadata needs to be added, things get more iffy. Since you will certainly use your own format, you will probably need to develop your own toolset—although GUI programming can be quite annoying—but I've heard that Tiled may be well-suited for that purpose. I have yet to experiment with it; but my plan is to still rely on images, and use yet more tools to associate external metadata, while applying some error-checking to avoid stupid issues. I'm not there in the game's development yet, but I will definitely share the result of my experiments ^^

The workflow I use for pixel collision is to have another layer, containing either transparent or red pixels; the layer being at 50% alpha. Works well for individual pixels, less so for tiles.

For tiles, since collision is managedper meta-tile (16x16 pixels) instead of tiles, I plan to have tools read the generated tilemaps, collision and attribute files, and produce an image like the above, which would allow visualizing collision states on the whole map.
This should be very flexible, and provide a good overview of any mistakes that may occur.


The French Lord Of Laziness.
Legend of Zelda and Undertale fan, I also tend to break Pokémon R/B/Y a little too much.

Twitter | Me on GCL | Discord : ISSOtm#9015 | Skype : isso.tm (I don't login anymore)

Offline

 

#6 2020-04-30 11:32:21

gameboy79
Member
Registered: 2020-04-10
Posts: 10

Re: Map and Tile Editors

Hi,

thanks for your in-depth answer!
I will go the route with a dedicated "Tilegraphics Tool" and external tools for processing the resulting data. So far I am experimenting with "Pro Motion NG" since I already had a copy around. It can export a simple textfile for the map and a png file for the tiledata (which I already converted for use with the Gameboy using the rgbgfx tool). My Python scripting abilities are a bit rusty though, I guess I will stick with C for the custom tools.

Thanks
gb79

Offline

 

#7 2020-04-30 14:58:03

ISSOtm
Member
From: Somewhere in Echo RAM
Registered: 2017-04-18
Posts: 160
Website

Re: Map and Tile Editors

Please post your experiences later, this is a topic that still doesn't have a definitive answer afaik, so more input would be super useful to everyone ^^


The French Lord Of Laziness.
Legend of Zelda and Undertale fan, I also tend to break Pokémon R/B/Y a little too much.

Twitter | Me on GCL | Discord : ISSOtm#9015 | Skype : isso.tm (I don't login anymore)

Offline

 

#8 2020-05-03 15:11:31

gameboy79
Member
Registered: 2020-04-10
Posts: 10

Re: Map and Tile Editors

Small update smile

I am now using "ProMotion NG". It has presets for various consoles, but not for the Gameboy. But it was quite easy to create a preset for it.
The tool is quite powerful as a tile/map editor, you can also create animations.
It can export to several map formats, I choose to export to json.
So through a single export click I get a png file for the tileset with an additional binary file with "tile codes" (16-bit value for every tile for attributes) and a Json file for every exported map.
Now the cool part is that you can give an executable to be run after every export, export path and project are automatically passed as parameters to the executable.
So I quickly hacked a tool together to convert the Json file to a binary file I can use with rgbasm.
Tool still needs some tweaking and more features, but it looks like this could become my workflow of choice.

have a nice evening
gb79

Offline

 

#9 2020-05-08 11:15:38

Tomi
Member
From: France
Registered: 2018-04-30
Posts: 29

Re: Map and Tile Editors

Is there a way to output image width and height (in pixels or in tiles)  with either rgbgfx or superfamiconv in an .inc file ?

Offline

 

#10 2020-05-09 04:49:28

ISSOtm
Member
From: Somewhere in Echo RAM
Registered: 2017-04-18
Posts: 160
Website

Re: Map and Tile Editors

No, neither does that. My solution has been to use ImageMagick, via the following command:

Code:

identify -format "WIDTH equ %w / 8\nHEIGHT equ %h / 8\n" something.png > something.png.size

Then I just `INCLUDE "something.png.size"`` and use `WIDTH` and `HEIGHT`, both counted in tiles.


The French Lord Of Laziness.
Legend of Zelda and Undertale fan, I also tend to break Pokémon R/B/Y a little too much.

Twitter | Me on GCL | Discord : ISSOtm#9015 | Skype : isso.tm (I don't login anymore)

Offline

 

#11 2020-05-09 08:46:21

Tomi
Member
From: France
Registered: 2018-04-30
Posts: 29

Re: Map and Tile Editors

ok, thanks for the info. I have tried the following command:
magick identify -format "WIDTH equ %w / 8\nHEIGHT equ %h / 8\n" test.png > test.png.size

but I get the following result in test.png.size:
WIDTH equ h / 8

I cannot figure out what is wrong with the command

Offline

 

#12 2020-05-09 10:15:43

ISSOtm
Member
From: Somewhere in Echo RAM
Registered: 2017-04-18
Posts: 160
Website

Re: Map and Tile Editors

If you are using Windows cmd.exe, then that program uses `%` characters for variables, so you need to escape them somehow. I'm not sure, but try doubling them? (Otherwise, you'll need to check the documentation on cmd.exe)


The French Lord Of Laziness.
Legend of Zelda and Undertale fan, I also tend to break Pokémon R/B/Y a little too much.

Twitter | Me on GCL | Discord : ISSOtm#9015 | Skype : isso.tm (I don't login anymore)

Offline

 

#13 2020-05-09 10:46:35

Tomi
Member
From: France
Registered: 2018-04-30
Posts: 29

Re: Map and Tile Editors

%% was the solution, THANKS!

Offline

 

#14 2020-05-14 01:02:03

Tomi
Member
From: France
Registered: 2018-04-30
Posts: 29

Re: Map and Tile Editors

@ISSOtm: I have integrated graphic data generation to my makefile with the rgbgfx-magick combo. - thank you again for your advices.

I have 2 more questions:
- I have 2 kinds of .png files, those which need removal of duplicate tiles and those which do not. As an immediate solution, I renamed these 2 kinds of files specifically ( filename_Q.png and filename_N.png ) . Then I have two separate rules in my makefile to process them. (One with -T -u options in rgbgfx and the other without). Is there a better way to do that?
-my makefile also generate sources like this (with magick):

Code:

SECTION "TestImage_Q", ROMX, BANK[1]
TestImage_Q_map_data::
incbin "TestImage_Q.tilemap"
TestImage_Q_map_data_END::
TestImage_Q_tile_data::
incbin "TestImage_Q.2bpp"
TestImage_Q_tile_data_END::

How can I force make to process these before the rest ? (as I generate sources I'm running into a sort of circular dependency issue) (again, my quick and dirty solution is to run 2 commands: 1. "make graph" which processes images and 2. "make" for the rest)

Offline

 

Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson