Something very idiosyncratic in Scott Adams’ games is how they structure the way they convey information to the player each turn. Let’s take the result of a command from Savage Island Part II: “LOOK MACHINE”
For example, instead of the “combined” message that you’d get in something like ZIL:
“I SEE SHIP’S ENGINES, LIFE SUPPORT, & ANOTHER LESS OBVIOUS DEVICE”
you get each component of the message on its own line:
“I SEE
SHIP’S ENGINES, LIFE SUPPORT
& ANOTHER LESS OBVIOUS DEVICE”
What is the cause of this? Is it because the Scott Adams system cannot make “compound sentences” like ZIL?
Namely, in the scott story file format there’s no description of the item in the location, so the look routine simply scans the object list for object with location = the current location, then printing the simple item name (I’ll look to the decompiled file here, but I will be not surprised that the engines have a smaller object number than life support)
yea, being printed after “Visible Items here:” (hardcoded string longer than “I see”, but in the early 8-bit era, saving even 15 or so bytes can matter…)
Any given Scott Adams game can only include 100 different messages, and the early interpreters always printed each message on its own line to avoid issues of punctuation. Getting enough mileage out of those 100 messages meant chopping them up into bits and pieces that could be reused as often as possible!
(Adventureland could only do 50, but that quickly proved insufficient so the cap was raised to 100. This doesn’t include the messages handled entirely by the interpreter, like “you can’t go that way”, “it’s too dark to see”, and “you used words I don’t recognize”; it also doesn’t include the names of objects and rooms, though these have their own separate limits.)
EDIT: Some later interpreters separated them with spaces instead, which tends to give a much nicer output. But the convention that’s caught on with modern interpreters seems to be the line breaks.
Remember, the text in these games were barely edited at all! Compared to the plethora of typos and such, a few line breaks aren’t that striking.
The current ScottFree used in Gargoyle doesn’t do line breaks, and I have a vague memory that was one of the things that I changed when working on it. Perhaps it would have been better to make it an option instead. It just seemed like a bug to me.
EDIT: No, I misremembered. After looking at the source, it turns out ScottFree uses hard-coded “style sets” which determine what systems messages (such as "“You are carrying too much”) are printed. These are declared in scottdefines.h and scottgameinfo.c.
The default “message delimiter” is still a line break, but many games, such as the TI-99/4a and ZX Spectrum versions, use a space or a period and a space instead. I looked at what the original interpreters did when deciding which style set to use.