• jan@cosmigo.com

Tile Export features


#1

Thank you for the rad program, I love working with it! I recently found myself hoping I can perform something that I currently can’t figure out.

Feature: Export groups of tiles from connected projects per use within the different projects. Project A’s unique tiles would result in a single image, project B’s unique tiles would result in a second single image, and the tiles shared between the two projects would be a a third shared single image.

Feature: Export groups of tiles using the same exact color indexes, so that they can be loaded individually as groups of the same shared color palettes.

Perhaps this can both be solved by a export range of indexes in the tile exporter? Rather than only exporting all or individual, have ranges of indexes that can be exported. At least then artists could organize the library based on palette or use within sub projects and export separate image files per that organizational needs.

Maybe this is already solved, or can be done using a plugin?


#2

Hi @gredler,

there is also another post from @AaronD about tile organization: "The Library" needs more functions. I have a solution in mind but I need to know more about the things you want to do with the tiles (and possibly the maps).
Can you please outline which operations this kind of tile grouping will help you?
Also I have a couple of questions:

  1. Do you also want to export and use the maps or do you want to solely export tiles (tile sheets) to be used with other software to actually create the maps with the tiles?

  2. If you export the separate tile sets, how will you handle them along with your game? Do you use a game engine (if so, which one) or do you use your own coded system?

  3. Imagine you export two tile sets along with the maps then a couple of problems raise like this:
    If the maps all share the same internal tile set because the are connected then exporting separate tile sets in separate images would lead to tile index confusion. Every tile set image would e.g. use tiles 1-10 because they are exported in row, but the maps would point to the tiles within the overall tile set where these tiles occupy positions 25-35 for example. How would you want to deal with this?

  4. Besides exporting, do you also want to separate tiles similar to what is written in "The Library" needs more functions ?

-Jan


#3

Thank you so much for the quick reply! Between GDC and some deadlines I’ve been too busy to follow up, but I really appreciate your feedback and info!

Can you please outline which operations this kind of tile grouping will help you?

The tile grouping would mainly help in exporting multiple images instead of one, we have very little vram and rom space, so it would be best to remove any unneeded tiles when exporting.
To answer your questions:

1-
We are using both the tiles(png), and tilemaps (stm). 100% of the art and map layout is being created in Pro Motion, and we are trying to eliminate the use of any other applications.

2-
The game is written in C (a small C variant for PCEngine/Turbografx-16, https://github.com/uli/huc).

The system is limited to 16 colors per imported tilesheet, or can load a single tile sheet with multiple 16 color sets (0, 16, 32 are all shared as the transparent or background color). If any tile shares colors outside of a the 16 color range I get errors, so I carefully manage the palette and use the color checker often to ensure each tile is not only limited to 16 colors but those colors are all within a 16 color range (0-15, 16-31, etc). This is another feature I’d like, but I can work around it by careful color management. There export setting seem to only allow every tile as a individual image, or all tiles as one image - more robust export options would be great.

3-
We are very limited on VRAM and ROM space so ideally we would not be loading all tiles all the time. If 2 projects use 1/3 of the same tiles, and 1/3 unique each, we are loading 1/3 extra tiles unless we manually modify the tilemap and tile set images in another program.

I believe the solution would either be sub indexing the tiles so they can be exported in groups, or adding editable properties to the tiles in the tile library to allow the to be specified which group they would be in.

Two ideas I have for sub indexing:
Tile use between connected projects method:
2 projects connected to eachother with 12 total tiles. 4 tiles are used in project A, 4 tiles are used in project B, and 4 tiles are shared. It would be wasteful to load all 12 tiles for both, so it would be ideal if we had a way to export separate images based on which tiles are used in a project. If tile 0, 3, 7, and 11 are project a, put them in one image and make the tilemap recognize these as their own sub index 0-3. Then do the same for b: 1, 4, 8, and 10 are in their own image and sub indexed to 4-8. The shared between would be another image and contain tiles 2, 5, 6 and 9 with indexes 9-11.

Shared palette method:
Check each tiles palette reference and then add any tile using the same sub palette (0-15, or 16-31, etc) to a new sub indexed array that can be exported.

If sub indexing is not possible, perhaps adding grouping to tile properties would allow us to export the tiles to individual images? Each tile already has the hex value, is that what I should be using or perhaps we can use that to set ranges of what files are in what exported image?
Otherwise adding a property with a string field to allow us to label each tile and then export each set of groups to an individual image?

4-
The tile library seems great in the current stable release, and especially the beta version, so no this is not something we are hindered by. Our tile maps are very basic: limited to 256 tiles on screen and loaded in memory with no layers and one 256 color palette subdivided.