Sunday, 12th July 2015, 16:36 by gammafunk
OP there's not really an underlying technology change needed, but there are two significant technical issues to deal with: (1) regenerating the large tilesheet images (required by dcss for efficient display) from the individual images either at startup or on-demand and (2) moving a bunch of tile data out of the binary and into a data format.
The first thing is easier do, since we already have an executable (called tilegen) that we generate on every platform to turning the individual images into tilesheets. Instead of shipping the tilesheets only like we do now, we'd ship the individual images, the association definition text files, and an updated version of this executable that could look at the modification times of these files to know when to regenerate a given tilesheet. The could be called by crawl when starting Tiles, but it might add too much startup time checking all images (we already have some startup time from checking all .des files for modifications). We could instead install a menu options or app to run tilegen in a terminal, so a user would update the image and then run tilegen as necessary.
The second issue involves moving at least the individual tile size and offset data out of autogenerated source that gets compiled into the binary and into a data format. This data is necessary for crawl to know where to find a given tile in the tilesheet. There's other data that's currently in autogenerated source that you'd likely want to move into a data format as well: the data on any variants for tilesets like those for plants, trees, and "animated" monsters like boulder beetles, the descriptive names of the tiles, and the order of the tiles in the tile index. Moving all of this data out of the binary would allow any changes done to the tiles definition files (rltiles/dc-*.txt) to apply to the final tilesheet when tilegen is run.
You can't achieve what you want just through the Makefile, since we don't ship a dev toolchain with crawl, and if we only cared about people who had a working toolchain installed, we'd just tell them to download the source, modify the image, and recompile.
Anyhow these changes would be nice to have, and would make it easier for tiles artists to make changes without thinking about compilation, but there's significant work involved. Patches are always welcome, and if you or anyone is serious about this (and is reasonably self-sufficient), you can stop by ##crawl-dev on IRC and ask me, |amethyst (neil), and others in the channel for help.
- For this message the author gammafunk has received thanks:
- Sprucery