It’s a wonderful feeling to look at TableMaster running for the first time since I upgraded from Win98. The output is stuffed with diagnostics, of course, but it’s TableMaster output, just like it should be.
In the TableMaster manual, on page 5, there is the following table — the first sample table in the tutorial section:
.table Gem-Table .roll <1d10> 1-3 Topaz 4-5 Garnet 6-7 Emerald 8-9 Ruby 10 Diamond
And here’s its output, from a run just before I started typing this:
Garnet Topaz Topaz Topaz Emerald Ruby Ruby Ruby Emerald Topaz
That’s real TableMaster output, from a real run of that table; I just edited out the diagnostics that it’s still cluttered with (and will be for a while — it’s easier sometimes to just look at some print statements than step through it with the debugger). So if you just wanted to copy off the tables you find in rulebooks, it can already do about 90% of that.
Of course, that’s not what TableMaster is about. It’s about being able to go far beyond anything you find in a book, which might be something like my generic gem table there. It’s about being able to roll up entire medieval towns, with the names of shopkeepers and their businesses, or fantasy taverns complete with menus and the innkeeper’s personal problems, or detailed post-apocalyptic settlements that would fit right in with the latest Mad Max or Star Wars, or newspaper headlines for a science fiction starport town. That’s coming. But even before that’s done, at least for me it’s really cool to have a running TableMaster again, after all these years.
By the way, why is it always gems? Well, that was what I started testing TableMaster with, back in the day, and I’ve just kind of kept it for consistency’s sake. As for why I first tested with gems, instead of, say, Chinese restaurant names (yes, I once wrote a table for that!), it’s because of a friend of mine. Waaaaaay back in the day, mid 80s or so, my friend Bill wrote a program he called Gemgen. All it did was roll up gems, sort of like this table (but, I believe, with values too; that’s coming). It was a big deal at the time (after all, there was nothing like TableMaster) and definitely impressed his friends, including me. It was just plain cool. So I had Gemgen in mind, I think, when I wrote that first gems table. And it’s been my standard test table ever since.
Now I’m looking at actual output, I’m thinking of some design questions. For example, the original line-length default was 80 characters, since that was the width of CRT screens and most printers. Should it still be? Should it be something else? Should there be an option in the UI to set the default, instead of having to set .WIDTH in every table? Any suggestions here?