More clear for whom? It's trivial for a computer to just count the 16 pixels, it doesn't need to 'see'. And eventually the whole process from start to finish would be automated, so nobody else would need to distinguish the tiles either.
For a person who is using the grid to figure out what they need to create.
Oh I see now what you mean.
Photoshop (and I assume Krita or GIMP) have features to display a grid of specified size, which solves that problem elegantly. If we want to embed information in the file, I would only do it on empty tiles, and checkerboard those with two different colors. In addition, add the tile coordinate on the empty tile.
So instead of a preexisting definition text you would have to set up the tiles in an image to match the predefined defintion text?
Yes. For existing graphics, this would happen automatically based on the old definition text. For entirely new graphics, you'd have to learn the coordinates from the standard definition file.
Right now, every graphic set artist has to draw all the tiles in whatever organization they deem best, and then type out all the creature definitions manually.
With standardized creature definitions, you have to type out
nothing and just draw. Downside is that you have to draw specific creatures on specific tiles. I'd still consider that a major improvement though.
This is, how I understand it, the main advantage of this whole endeavor: reduced workload for artists because the definition files are autogenerated. It can only be automated if it's standardized. And if we can take all the information we have from the raws, we never (or rarely) need to update the script.
As for professions, with "hardcoded rules" you quoted I was simply referring to the actual raw parser code. I.e. 'look for string "[CREATURE:<anything>]" and discard everything before and after' - that kind of stuff.
Regardless, you're right: If there's no way to get a correct and complete list from either the raws or DFHack trickery, I see no other solution than to hardcode it (In a separate file, ideally).
For reference, this is the ideal workflow I hope to see for graphic set authors once we have a working setup:
For existing graphic sets:
- run the set through the script
- done, your graphic set is now standardized.
- if you are missing creatures, the script comments out the entries
- if you want to use ADD_COLOR instead of AS_IS, you need to manually replace it
If a new DF version comes out that adds new creatures or changes names, or whatever, you simply run the script again and your graphic set is updated within seconds.
If you want to add new creatures
- ctrl+f through the definition text file, note coordinates
- draw new creature
For someone that wants to make a new graphic set from scratch
- download template and read manual on what to do
- decide on a tile size
- generate empty image files (could also be automated I guess)
- check dimension
- draw creatures
Current problems I see:
Do we have to hardcode professions?
What do we do with empty tiles? When the script can differentiate between an empty tile and a non-empty tile, it should be trivial to comment out that line. That seems to be the easiest solution.
We could instead fill the empty tiles with their default letter of the default tileset.
This would reduce the difference in the definition files, but as every graphic set needs its own definition file anyway (AS_IS vs ADD_COLOR), it would just complicate things, I think.