Verbs? Nouns?

There are a lot of things about TableMaster that are dated, some of them painfully so. Some are things that I have to deal with as a programmer, such as the fact that TableMaster used to be two programs, not one, and there are some housekeeping issues raised as a result. (I was just dealing with one involving closing all open table files for .INCLUDE this morning) Some are matters of style and appearance; I’ve kept many of those for the sake of continuity and tradition, though the UI does look less Win3.1-ish than it used to. Some are simple practicality, such as my decision to continue using an .INI file (just like in the old days) instead of the Registry, so that TableMaster will be fully portable. But there is one that seems both quaint and, well, weird.

Specifically, I’m thinking of the terminology in the manual. For those of you who don’t remember it, or never saw it, I called keywords “verbs” and operands “nouns” because I was trying to make TBL less intimidating to people who weren’t really comfortable with computers, let alone the realization that what they were doing was actually writing a computer program.

But I decided on that terminology in late 1993, when I started writing what was to become the TableMaster manual. It’s over 20 years later now, and my audience has either grown up with computers or at least has had 20 more years to get comfortable with them. I don’t think anyone who reads the manual is really going to be put off by the fact that at TBL translation of a random gem table is, in fact, a simple computer program. So the terms “noun” and “verb” and all the rest of my circumlocutions look painfully dated now.

When I start updating the manual, I can go two ways with this: I can keep the existing terminology for nostalgia’s sake, which has the additional advantage of avoiding a lot of search-and-replace in the manual files (it’s several separate files). Or, I can update it to something that looks, well, less silly. Which, to be honest, would be almost anything. My gut feeling is to go with the latter, though I don’t know exactly what terms I’ll actually use. But that’s just what I think.

Y’all out there must have some ideas on the subject. If you’re an old TableMaster user from the 1990s, how much do you want it to look like what you remember from the Good Old Days? And if you’re just coming to this now, do you think I should modernize everything, including the terminology in the manual?

Another bit of nostalgia: I was looking at a Little Blue Card this morning, mostly because it fell out of the binder with the manual I’ve been using for some reference. A Little Blue Card is a user registration card, with installation instructions, the serial number/activatino code, and a card to mail in to let me know who you were. (by the way, about 50% of buyers did indeed mail in their Little Blue Cards — I still have a file of them packed away somewhere) It’s amusing because of some of the questions I asked, which were mostly about computer configuration. The choices for operating system, for instance, were MS-DOS, OS/2, Windows 3.x, Windows95, or “other.” I wanted to know about CPU speed, HD space, memory, even video type. It all looks kind of laughable now, when your average smartphone could blow the doors off the computer I first wrote TableMaster on. The answer to things like memory size is “far more than enough!” (there are a lot of things in my old code that were written the way they were to use memory most efficiently, because I couldn’t count on more than 640k) Ah, the Little Blue Cards.

Oh, and if you’ve ever wondered, yes, the name Table Building Language is indeed a back-formation from the .tbl extensions I used for table file names. In the beginning, I didn’t really think about it as a computer lanugage. And the earliest version wasn’t, really — it had no decision-making capabilities, no variables, etc. Even calling it a scripting language would have been a stretch. But with the addition of variables (eventually integer, real, and string), and various decision-making, um, verbs, such as .CHANCEOF, .IFYES, .IFNO, and so on, it slowly grew into a language, and I needed to call it something. So I played around with what I could make out of “.tbl” and came up with Table Building Language. I tend to assume most people figured that out a long time ago.

So … should I stick with “verbs” and “nouns”, call them “keywords” and “operands”, or something else? What’s your opinion?

8 thoughts on “Verbs? Nouns?”

  1. Hi! (Would use your name but I don’t know it…) Nice to see you’re back! I remember that there was a thing called TableMaster back in the day, but I didn’t own it. I started gaming back in the 70’s, however, and tried a few bits of DM software over the years. There was a city program I remember that I fooled with but never used in a game. It kept track of wandering NPCs, and you could make entries in the various buildings. Can’t remember the name. I also bought the oldest version of Campaign Cartographer, which I actually used for a few things. I didn’t like the line-drawing look though, and the learning curve was too much for me. Not worth my time, especially since I can draw by hand. I had the TSR DM Assistant, which I used a little. I still have the Dragon Magazine archive on CD somewhere. I own Hexographer, Dungeonographer and Cityographer from Inkwell, although I’ve never done anything but fiddle with them for five or ten minutes. Anyway, I love the old Judges Guild products, and was just having a conversation on Google Plus about them. Someone mentioned setting up something to randomly generate from JG tables, and I thought of TableMaster. A quick Google search and here I am! I think I could use something like TableMaster, but I’m not in any way a programmer and so the GUI and simplicity are important to me. If you want feedback. Just give me a pop-up where I can type in the entries for the table, indicate a subtable where necessary, and press the “run” button. If you get into too much depth, I’m going to get scared away. IAC, I stuck your blog site into my Feedly feed, so I’ll keep track of your progress. BTW, there are a few groups on Facebook and Google Plus where I spend a little time; I could mention your site if you like. Ought to get you some followers! There are also some sites where I could do the same: Dragonsfoot, Citizens of the Imperium, The Piazza, Basic Roleplaying Central… Let me know. And best of luck!

    1. Hi, Baron Greystone! My name’s Jean, by the way.

      I remember the program you’re talking about with the wandering NPCs and the buildings. I can’t remember the name, though — I think it’s one of the very few from back then that I don’t have somewhere. (we all used to swap software with each other at GenCon, so I’ve got a lot of the old stuff) By the way, don’t blame yourself re: Campaign Cartographer. I had CAD experience and I still found that learning curve to be a bit steep; it was faster to just get out the graph paper. CC would have been great for doing really nice maps for publication, but for anything I needed, it was easier to sketch it out on paper; the odds were that my players wouldn’t be back there after that session anyway, so anything more than a rough drawing was going to be wasted effort.

      You should be right at home with TableMaster. I wrote it (and am re-writing it) for non-programmers. Remember, tables are programs — they’re programs written to execute on a system of humans and dice. TableMaster just transfers them to the computer.

      Let’s say you have a table like this:

      Gem Table
      Roll 1d6
      1-3 emerald
      4-5 ruby
      6 diamond

      Here’s the actual TBL for that table:

      .table Gems
      .roll <1d6>
      1-3 emerald
      4-5 ruby
      6 diamond

      Pretty straightforward, eh? If you’re just doing something like the JG tables (I teased Bob, back in the day, about the raisin trees!) it’s easy. The really complex stuff comes in when people try to treat TBL like a real programming language, like one notable individual who was doing orbital mechanics with it. (very detailed and realistic star systems, I believe) Most people don’t do that; they just set up simple tables, like the names of all of the inns they have in a town and what rumors the players might find at one, that kind of thing. Or they take one of the tables that comes with TM, or in the Table Packs, and modify it to fit the specifics of their game, without ever having to do the complicated parts — I already did those.

      Feel free to tell the world about the return of TableMaster! I’ve been feeling a bit like I’m shouting into the void here, and I’d also really like some feedback from old TableMaster users. Plus, of course, I want to say hi to people I maybe met at GenCon 20 years ago, back when I was younger and crazier and thought that driving 1300 miles in two days was a good idea.

      I remember one time I did that … I think that was the year the convention center staff decided, instead of the two blue-draped tables I’d ordered, to fill my booth completely with four yellow-draped ones. (did they think I was putting in a dance floor?) Once I finally got that sorted out, I told people “I’ll be under my table if you need me,” crawled under there, used a box of product for a pillow, and grabbed a couple of hours of Z’s until I could check in at my motel. (check-in was at like 2)

      1. Well, I posted all over. Apologies, but without having any clue I made an incorrect assumption. My post, copied and pasted again and again, says “the author…he…his.” Someone just pointed out to me that my assumption was incorrect. Sorry!

        1. Don’t worry, I’m generally assumed to be male by anyone who hasn’t met me physically. Hell, even by a few who have. I’ve been a gamer since … well, since my original copy of the D&D rules came in a little white box that didn’t say “Original Collector’s Edition” on it. From my point of view, what matters is that I’m a gamer, not my plumbing; I’m one of the guys, even though I’m not actually a guy. Call me anything you like except late to dinner.

          GenCon story … back in the day, I was quite active in the CompuServe RPGAMES forum. A group of us decided to get together at GenCon, get a back room at a local restaurant, you know the whole thing. I was somewhat late — this having a lot to do with a friend who said “let’s walk, it’s just a couple of blocks” … for about two miles — so everyone was pretty much seated when I got there, and I was one of the last to pick up my nametag. The guy hosting it looked at me in shock. “Wintertree is a woman. I can deal with that. Really I can.”

          Also, um, be careful not to spam. Nobody likes that!

          I should get back to coding, but right now I’m working on some changes to the error-processing routine in TableMaster, and that’s about as exciting as it sounds. If I drink enough caffeinated beverages to keep me awake, I’ll still be wired at this time tomorrow. Sleep is an inadequate substitute for caffeine, but the body does seem to have an unreasonable fondness for it. So I’m counting replying to comments as sort of a productivity booster.

      1. Me either. 🙂

        I learned the hard way, back in the day, to never mention dates, because any date is taken as a promise, and any promise is taken as a binding commitment, and life, the universe, and programming just doesn’t work that way. But it’s coming along faster than I expected (not least because modern Delphi is soooo sweet, at least compared to what I was using the first time I wrote a lot of this code: TurboPascal) and if I can get myself to stop yammering on my blog and get back to coding, we may have something here.

  2. Hi Jean!

    I wanted TM in the way back times, and I don’t remember if I actually ever got it.

    I’d be happy to test a copy of the DOS version on my old HP DOS based palmtop, though. 🙂 HP 1000CX but you don’t have to Google that and waste your time as I was being facetious.

    As for your question, I don’t personally care if you call them verbs and nouns, or opcodes and operands.

    I can’t write complex scripts, or Javascript or Python, but I can do simple command line scripts in bash or MS batch file format.

    I personally would prefer a Mac OS X or Linux version of TM II. Or better yet, for Android tablets. 🙂 Although I’d be interested in buying it in a Windows format since I could try running it in Wine (a Windows emulator for Mac/Linux). And I do have a Win7 partition I can boot into on my Mac Mini if Wine doesn’t work out. I volunteer as a beta tester for that if you’d like. Or as a beta tester for the Mac or Linux versions if you get that far.

    I’ve gotten interested in solo role playing in the past couple of years, and see great utility in TM II for that in conjunction with some other resources for solo roleplaying. Specifically Ruins of the Undercity and Mad Monks of Kwantoom that I got from RPGNow, and the Mythic Game Master Emulator. There is also an article on the Freelance Traveller website for doing Traveller solo. It was quite a bit of work to roll through all of the tables manually for all of these, so doing it in TM II will be nice.

    Thank you for revisiting this!

    Andrew aka Freddyboomboom

    1. There are several reasons I’m starting with a Windows version, primarily that I’ve done it before, the cheapest option for my compiler was for a Win32 target, and the perhaps regrettable fact that’s what the largest installed base is, so probably the largest market.

      If this really takes off, then an OS X version is almost a certainty (I’ll need to get a fancier edition of Delphi anyway, due to their licensing terms, and that should be able to build for OS X with just a click of a dropdown menu). Linux will be a bit trickier (and probably spendier) for compiler reasons, but it’s not out of the realm of possibility. The minor good news is that since TableMaster doesn’t do anything weird/rude/hardware-dependent on the system level, it should behave quite well in WINE.

      iOS and Android are somewhat more complicated, but also on the horizon. My personal mobile devices are an iPod Touch (think iPhone without the phone) and an Acer A1-830 tablet, and I’d love to get some form of TM on one or the other of those. That’s one of those things I’m not even thinking about a schedule for, but it’s very definitely something I want to do. Years ago, I was trying to get my hands on a bunch of old GRiDPad computers (not nearly as old in those days!) to build a portable TableMaster system. It fell apart for an assortment of reasons (not the least a bad charger that murdered my test GRiDpad) but I wanted to create a mobile TM even back then.

      One of my crazier ideas is to get some version of TM running on a Raspberry Pi, and be able to sell a package complete with computer! I’m not sure if it’s even practical, let alone if there’s a market for it, but it might be crazy enough to work.

      I have rather a lot of computers lying around here, and a corresponding urge to run TM on all of them. Aside from what’s already been mentioned, and the Win7 box that’s my development machine, there’s a WinXP machine making like a fileserver, a Mac Mini, a couple of Pis (2 and 3), a netbook running a very old distro of Xandros Linux, and assorted other random weird hardware — including a ten-ton, magnesium-cased GRiD 1520 that is, apparently, worth some money to collectors (there are old computer collectors?). That was my old utility machine for conventions; given that it’s been sitting in a closet for the past 16 years, I may sell it off to get development funds — and a couple of cubic feet of closet space back.

      I used to use that GRiD to build discs. You stuck in a floppy, picked what you wanted off a menu, and out it came. Anything would fit neatly on a 3.5″ floppy, even TM/Win and all its tables. Now, well, I looked at the stats for a test build last night. It’s already up to 11 meg (admittedly that’s with all the debugging turned on) and half the table parser isn’t even in yet, let alone the table execution! When you figure that the first computer I ever used was an IBM 1130 with 16k of core (yes, with real cores), and my first home computer was a Sinclair ZX-81 with 1k (my first computer-related business was selling 2k upgrade kits mail-order), you can see why this seems scandalously sloppy. Incidentally, I wrote a dice-rolling program for that ZX-81 — the germ of TableMaster was incubating even then.

      I guess I ought to get some coffee and start coding. I figured out a good solution to an operand issue last night, and I want to get that implemented ASAP.

Comments are closed.