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:
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.
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.
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?
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.