Dabbling with Interactive Fiction
For many years now, I've dabbled off and on with writing Interactive Fiction, which is the modern name of the old "text adventures" like Zork. There is a thriving community writing tons of these games, fueled by a yearly competition. Nobody's making money on them (that I'm aware of, though some tried a few years ago), but the quality of the work, both in terms of robustness of the game engines and the quality of the fiction is really incredible. Playing Zork nowdays is downright painful... it's just so clunky and violates a lot of the hard-learned "rules" of good IF design.
When I say I've dabbled, I've dabbled semi-seriously... I bought TADS2 (the Text Adventure Design System) to get the debugger and printed manual. I bought the printed manual to Inform 6 when I came back after a few years and decided to give that a try. But I never actually finished a game. I've got several sketched out, but I think what gave me trouble was I couldn't figure out all the elements to the one game I was seriously working on... I recently looked at that code and noted that it was ten years old.
Over the weekend, I introduced my seven-year-old son to Zork. He reads at a high level, and I wanted to see how he handled the puzzles. But Zork's not very logical and not very well written. So instead of digging out Wishbringer or searching for some simpler modern game (which I'll still probably do), I decided to use this as an excuse to learn Inform 7, which is entirely, totally and completely different from Inform 6.
Inform 7 is a "natural language" programming language. When I first saw it, I almost laughed. Who would want to write games like that? A programming language should look like...
object dagger "shiny dagger" selfobj
with name 'shiny' 'trusty' 'dagger',
description "Your trusty dagger. It glints in the light.",
article "your",
size 2,
before [;
take:
print_ret "You feel a tingling sensation as you pick up the dagger.";
],
has light;
...not...
The player is carrying your shiny dagger. The description of it is "Your trusty dagger. It glints in the light." It is lit. It is small. Understand "trusty" and "trusty dagger" to be the dagger.
Before taking the dagger, say "You feel a tingling sensation as you pick up the dagger.";
Right? It turns out that the latter really isn't hard to program in. It does make things a little harder to read... I'm a programmer by trade, so I'm used to looking at things all neatly arranged like that first code snippet. A lot of the inference that Inform 7 is doing could have been done in Inform 6 if they'd wanted to, but it is nice to have it correctly guess what I mean without explicitly typing it.
I'm looking at bits of my old Inform 6 code and I can't remember what some of them are doing. I read Inform 7 code and instantly know what 95% of it is doing before I ever started reading a manual.
There's something weirdly fun about writing in this language. It's a lot more verbose, there's a fair amount of typing. But I'm guessing at a lot of stuff and it just works, because the "obvious thing" is very often the right thing.
So I'm writing Nathan a game based on the Magic Treehouse books, which he really enjoys. I won't be able to release it without taking some proper names out of it and rewriting the "trademark" prose that accompanies the treehouse's travels. But for Nathan, having those things in there will be a big hook.
Some fairly simple, straight-forward puzzles ought to get him into the game and understanding how it's all supposed to work fairly well. And it's going to be a short enough and simple enough game that I should be able to finish it without a lot of trouble.
Cruising careers
I don't do many memes, but this one sounds like fun...
1. Go to Career Cruising, www.careercruising.com
2. Put in Username: nycareers and Password: landmark.
3. Take their "Career Matchmaker" questions.
4. Post the top twenty results
5. Put the careers you have seriously considered in bold
I'm going to put the ones that I've done as part of a larger job in italics.
1. Director of Photography
2. Multimedia Developer
3. Set Designer
4. Costume Designer
5. Website Designer
6. Special Effects Technician
7. Industrial Designer
8. Desktop Publisher
9. Computer Support Person
10. Sign Maker
11. Computer Programmer (my actual career)
12. Technical Writer
13. Automotive Painter
14. Tilesetter
15. Fashion Designer
16. Cartoonist / Comic Illustrator
17. Animator
18. Security Systems Technician
19. Actor
20. Interior Designer
Computer programmer is my actual career. I've had a computer support position, but it was a temporary stepping-stone... I'd never tolerate it as a long-term job, let alone career.
Note that a quarter of the entries have "designer" in the title. Add in the other creative careers, and there's a strong trend toward my desiring a job requiring creativity... and looking at the list, I realize I reject out of hand any career possibility that doesn't involve creativity.
Oh, and I have a pretty high level of correspondence with my wife's list. Except for the math-oriented careers, since I indicated that I hate math. :)
