Tads3 cartographer extension

This year I’ve started working on a mapper extension for Tads3 called the Tads3 cartographer. It can be found at GitHub - toerob/t3cartographer: A library for the Tads3 programming language that creates an in-game graphical map from a tads3 objects and outputs it in either ascii, svg, graphviz dot or html. along with all the information you need, examples and screenshots.

What does it do? It creates an in-game/exported map out of your tads3 game. you can either choose a map in textformat or svg-format and some experimental formats like graphviz dot and html. I would like to emphasize though that it is the SvgTileMap and ScalableTextTileMap format that’s most usable at this stage.

I think it is time for a beta release so I can gather bug reports and see what directions you would the library to take from here on.

I have plenty more features that want to add but may not be aligned with what’s most sought after for you and your game. So I would appreciate feedback!

Otherwise I hope it will be useful for someone. Either as an aid at design stage or as a in-game feature.


Super cool Tomas! I wondered after looking through the readme if you think caching the crawl results will be necessary or it’s fast enough it won’t be an issue?

Thanks! That’s a good suggestion. I guess I’ve been a bit sloppy in the examples and done the crawling all the time since I’ve been switching between the setting to show all rooms at once or just visited rooms. But you should only need to crawl the rooms once if you want to display the whole map right from the start. I think I should update the examples to reflect this.

Caching only visited rooms will be trickier than for all the rooms but it’s probably a good optimization even though I think it should be pretty ok without it. It kind of depends on how big the game is, and if you’re using map regions or not.

(Map regions came about from an assumption I made that from a player’s perspective it would most useful to display only a limited part of the map depending on where the player is in order to make the map more readable. )

It would also be interesting profiling this a bit and I’ll definitely will look into it. I believe the bigger need for optimization lies in the renderers though. The svg-renderer for example needs slimming up in many respects. So I’ll keep working on that also.