My old web-page at MTS has come down and as this is linked in a few places on-line, I thought I'd archive it here. Google never deletes anything, right? This is not perfect as the only place I could find it archived was the original Usenet post, when it was called "Amateur Author Annoyances." I've gone through the suggestions after the post and tried to re-incorporate suggestions I likely incorporated at that time but it's likely not exactly the same as it was.
* * *
I decided to jot down a few things I've noticed in a lot of the amateur games I've tested or tried out.  I've tried these games for reasons I can't entirely fathom; admittedly, it's easier and leaves fewer 
disfiguring scars than self-flagellation.  It is not necessarily any 
less painful though.
This is not intended to be a "You know you're dealing with an amateur IF 
author when..." list.  It is intended to be useful to new writers, to 
know some of the things that scream "WARNING: Amateur author ahead, 
proceed with Caution."  I have also, in a couple of spots, mentioned 
ways to avoid the behaviour in question or even how to specifically 
avoid it in your game code.  I've mentioned Inform only because it's the 
IF-programming language I'm familiar with.
I don't claim any special knowledge of amateur mistakes.
Also note that I have used the generally accepted practice (at least by 
me) of using the words "he" "him" and "his" in a gender-neutral fashion. 
  I'm fully capable of wasting enough space as it is without the added 
weight of fussing about typing 'his or her' every time.
1. POINT PROFUSION (or SCORING SURFEIT)
For some reason, amateur authors like to have games with absolutely 
massive numbers of points.  I'm not sure whether this is because it 
makes the game look bigger or better or what.  It strikes me as very 
adolescent: "My game is so awesome!!!  It has ten times as many points 
as Zork II."
Rather than have a game with 100 points maximum, the amateur will have 
the number of points be, say, 10000, and every time the player does 
anything he receives 100 or 500 or 1000 points.
SOLUTION:
If you never award < 100 points for any action, follow this algorithm:
- take your maximum score and divide it by 100.
- take your awarded points, and divide them all by 100
2. SYNONYM SICKNESS
a) Lack of synonyms for objects mentioned as being present
b) Objects mentioned but given different 'name' properties, eg. "You can 
see a toolbox here", but 'tool' and 'toolbox' don't work to refer to it, 
only 'box'.
SOLUTION:
MINIMUM: the name used to describe the object to the player MUST work to 
refer to it (e.g. the toolbox above)
BETTER: all the words used to describe the object, including adjectives, 
should work, e.g. 'shiny red toolbox' should generate matches for 
'shiny', 'red', 'tool', 'box', 'toolbox'
BEST: you should also match reasonable synonyms that you DON'T mention 
in the text (e.g. 'chest' 'tools').  Use a thesaurus and check for synonyms. Of course, don't overdo it if you have multiple items that are similar, e.g. a leaflet, a pamphlet, a letter and a notebook. Overloading all of these when you have several of these items can lead to parser difficulties.
> take book
Which book do you mean, the spiral notebook, the small pamphlet, or the encyclopedia?
In this case, disallowing 'book' from the notebook and the pamphlet is better.
ABOVE AND BEYOND: If you're really feeling generous, you'll make sure that words that are complicated to type in your game (e.g. Montagnolo) have commonly misspelled variants in their list of matches and maybe some short forms as well.
3. TEXTUAL TRUNCTIONS (a.k.a. hard carriage returns in displayed text)
This room is pretty
big, you cant see
any exits to north
or south but there
might be a door
east or west.
I think this error stems from working with IF-languages that don't 
automatically word-wrap for you.  I've seen this in a lot of ports to 
Inform.  It may also stem from a desire to avoid having lines in the 
source code file that run off the editor screen.
INFORM SOLUTION:
Beginners: if you want to wrap your printed text so that it appears 
nicely in your editor, just hit enter in the string.  Inform interprets 
this whitespace as simply a space.  Works beautifully.  Let the player's 
interpreter worry about word-wrap—it knows how wide his window is.  You 
don't.
4. EXCITING EXCLAMATIONS!!!
You are in the bank.
There is a crazed person
here running toward you!!!
> x person
You can't see that here.
> x crazed
You can't see that here.
Oh no!!! The crazed person just
shoved it's ax in your head
now you're dead!!!!
The profusion of exclamation points in amateur writing (both IF and 
non-IF) is always astounding.  It may stem from a desire to turn bland 
unoriginal text into more exciting EXCLAMATION-POINTED text.  Any 
writing can be made more exciting with exclamation marks, can't it? 
(Some would argue that's reason enough to sprinkle them all over this 
document).
SOLUTION:
Exclamation marks tend to be overused.  Use them sparingly, and don't 
use more than one at a time.  Please!!!
INFORM NOTE:
Note that there 
should be exclamation marks sprinkled all over your 
Inform source code file.  If they're not inside printed text, they're 
COMMENTS and comments are good.
5. ABERRANT ARTICLES (or Definite Article Errors)
Torcher Chamber
You can see a Lord Blackadder here.
I don't really understand how these sorts of errors can exist. 
Presumably the author runs through his game while developing it.  If I 
notice this as a jarring error, why doesn't he?
(Another problem apart from the definite article error is the lack of an 
initial description.  Even if the article is correct, the message "You 
can see Lord Blackadder here." smacks of laziness.  See below.)
6. ORAL OFFENSES (or Abuse of the Player)
This is something that seems so adolescent and immature, and yet you see 
it from authors who, by several other measures, appear to be adults.  An 
overwhelming tendency to insult the player when he does something that 
the author doesn't want to permit.
Why do authors do this?  What goes on in their head that tells them 
these abusive responses will be appreciated?
Most players can tolerate mild sarcastic comments, especially if they do 
provide useful feedback (or are amusing):
> fire arrow
It would be difficult to do that without a bow.
But downright abuse should be out:
> cut thread
You cut the thread.
<lots of other things done in between, puzzles figured out>
> cut thread
You already did that!!! PAY ATTENTION!!!
SOLUTION:
The people playing the game are your CUSTOMERS.  Admittedly, you're not 
getting paid for this IF work most of the time, but you want it 
well-received and well-reviewed.  Don't insult your target audience.
In the example above, if you're going to respond with more than a "But 
you've already cut the thread." message, at least be clever and original 
about it, rather than simply heaping abuse on the player:
> cut thread
You cut the thread.
> cut thread
You painstakingly retie the piece of thread back to the spool, and cut 
it again, gaining yourself vast amounts of satisfaction.
(note: the above makes no claim to be either clever or original, but may 
serve to indicate the idea).
7. ENCUMBERING EXPOSITION
I've seen many games with massive exposition in the introductory text 
explaining everything that has happened in the player character's (PC's) 
life to bring him to the point he is currently at as the story opens.
This is a tricky one, and is less indicative of an amateur IF author 
than it is just of an amateur author in general.  It's very hard to get 
right--striking the balance between giving the player the information he 
needs in order to understand who he is and play the game with some sense 
of that, but also avoiding having things sound like "the story so far...".
There are two extremes.  You can relate everything that has happened to 
bring the PC to this point, or you can relate nothing at all.  There are 
some very excellent games in the latter category, but there are not very 
many good games in the former.
Remember, as the author of the piece, it's important that you know and 
understand exactly how the PC got to where he is.  What you need to 
decide is how much of that the player needs to know.
Try to avoid the need to relate everything that has happened to the 
player until now.
This is bad:
(based on an exposition-heavy game I have seen, but translated to 
Planetfall universe for example purposes):
Your big moment has finally come. After much struggle and study, you 
managed to win a scholarship to Stellar Patrol University. You have 
graduated and attained the rank of Ensign Seventh Class, and after all 
your hard work and study, you have been assigned to the Stellar Patrol 
Ship Feinstein for its voyage to a far-away planet that was recently 
discovered by Stellar Patrol patrols.  But there was a massive accident, 
and the ship is going down.  Your job is to escape from the ship before 
it explodes.
Deck Nine
This is a featureless corridor similar to every other corridor on the 
ship. It curves away to starboard, and a gangway leads up. To port is 
the entrance to one of the ship's primary escape pods. The pod bulkhead 
is open.
>
Compare that to the actual way in which Planetfall opens, which I think 
is a pretty good example of a game with light exposition, which handles 
it pretty well.  Way back when, I was able to start playing Planetfall 
the day I got it, without having glanced at the documentation and 
feelies, and know exactly who I was, my position on the ship, 
everything.  And all this in a relatively short opening paragraph:
Another routine day of drudgery aboard the Stellar Patrol Ship 
Feinstein. This morning's assignment for a certain lowly Ensign Seventh 
Class: scrubbing the filthy metal deck at the port end of Level Nine. 
With your Patrol-issue self-contained multi-purpose all-weather 
scrub-brush you shine the floor with a diligence born of the knowledge 
that at any moment dreaded Ensign First Class Blather, the bane of your 
shipboard existence, could appear. 
Deck Nine
This is a featureless corridor similar to every other corridor on the 
ship. It curves away to starboard, and a gangway leads up. To port is 
the entrance to one of the ship's primary escape pods. The pod bulkhead 
is closed.
>
And then the game makes you wait around, scrub the floor, bump into 
Blather, the Blow'k-bibben-Gordo ambassador, until eventually, the 
massive explosion rocks the ship, and you know the imperative is on you 
to escape.
What does the Planetfall opening tell you?  It tells you everything you 
need to know in order to play and enjoy the game, and, significantly 
VERY LITTLE MORE.  The information about Blather could arguably not be 
needed, but it's pulled in again at the end of the game to tie 
everything together neatly--those two parts of the story bookend the 
game beautifully.
A useful exercise is to take every sentence in your opening and figure 
out what it tells the player about the game, and his role in it. 
Evaluate each sentence's effectiveness and decide whether it 
communicates meaningful information to the player.
Evaluate your opening against the four W's (Who, What, Where and Why. 
There's also When, but the immediacy of IF makes it less of an issue for 
most works).  How well are they answered by the time you get to the end 
of the opening?  As an example, let's try that with Planetfall and see 
how it stacks up.
1) Who?   You are a lowly Ensign Seventh Class.
2) What?  You have been assigned to scrub the deck.
3) Where? You're aboard the Feinstein, a Stellar Patrol ship.
4) Why?   You're scrubbing the floor because you're following orders.
All the questions are answered, and with a brief paragraph, the player 
knows a lot about who he is and what his immediate goals are.
It's a good idea to check the opening text of many different IF games, 
of many varied styles, and see how effectively they communicate the 
opening situation to you, without overloading you with weighty exposition.
Trinity is another very good example of a concise opening that conveys a 
lot of information.
All this is not to say that initial exposition is bad—but if you need a generous infodump at the beginning of your game in order for the players to play it effectively, you may want to rethink how the game starts. Or if the information can be parceled out in an interactive fashion, that's even better.
The main thing to avoid here is the life story of the character dumped out in a blur of poorly worded "Then...", "then...", "and then..." type sentences. The title of this section is Encumbering Exposition and exposition can be fine if done effectively so it doesn't encumber the story.
8. SHOCKING SPELLING AND GRISLY GRAMMAR
A basic command of English (or whatever language you're writing in) is 
essential.  The IF community is full of well-read players and authors. 
If your game suffers from poor language and grammar, it will definitely 
not rise to the top of the pile.  There is so much IF that's very 
well-written that if your game isn't, I don't think it's overreacting to 
say it's doomed to insignificance.  The odd typo is tolerated but 
consistent poor grammar, spelling and diction will annoy most of your 
players.  As for the rest of your players, they will be members of the 
militant wing of the (to spoof Planetfall) "Speller Patrol" and will 
immolate you in the fires of scorn and derision.
Leniency (or burn cream) is given to those whose first language is not 
the language in which they're writing, but in general:
if you lack confidence in your command of the chosen language, ask 
people to review it for writing style, spelling, grammar, etc.
Running your game through a spellchecker is difficult, because it's 
source code, right?  Well, turn on the scripting facility of your 
interpreter, run through your game, performing all the actions to win 
the game, and trying to examine all the objects.  Then take the 
transcript generated, and run it through your spellchecker.  This will 
ensure at least that anyone who runs through most of the standard things 
in your game won't encounter any glaring errors.
Remember though that spellcheckers never catch homonym misuse, e.g. it 
won't flag:
You can see that their is a piece of paper here.
Grammar checkers might catch that, but they make enough other mistakes 
that they should probably be avoided.  Though there are a few works of 
IF I've seen which are so bad already that running through the grammar 
checker would definitely have been an improvement.
On another grammar-related note, specific to a lot of Inform games: if 
you're going to use the -ize endings of words like "realize", then 
please define DIALECT_US in your code, so that we don't have 
incongruities like:
You struggle to read the piece of paper, but you don't recognize the 
language used.
> study paper
That's not a verb I recognise.
9. PLAYER PERUSAL
Not 
everybody shares this opinion, but I believe that implementing anything other than the default response for 'examine 
me' smacks of a lazy or amateur IF-writer, as well as a poorly-developed 
PC for the story.
SOLUTION:
Think about who your PC is.  Is he male or female?  Tall or short?  Ugly 
or attractive?  How is he dressed?  How is the response you print from 
'examine me' affected by the PC's opinion of himself?
Another question to consider—how does the appearance of the player change during the course of the story? Do events happen that should cause the response to 'examine me' to change?
One additional point: much as it's bad form to insult the player, it's 
very cliché to have all the NPCs in the game treat the PC like dirt, or 
refer to him as ugly, smelly, dirty, whatever.  Unrealistic too.  In the 
real world, there are lots of helpful people, so if the PC is in a 
generally nonhostile environment, your NPCs should at least be civil 
towards him.
10. LACONIC LOCATIONS
Many games seem to operate from the idea that giving a location a name 
is sufficient for fully describing it.  It's not.
Yes, if you say "You're in a bank." most players will be able to imagine 
what a bank looks like.  But the point is: we want to know what 
this bank looks like, how you the author have envisaged it.
Also frustrating are room descriptions that all begin with "You are 
in..." and the idea of variety is to start a room with the description 
"You are standing in...".
One of the worst I've seen recently (paraphrased to protect the guilty):
You look around. The only way out of here appears to be North
as there is a wall to the south. East and West do jack-all for you.
Another one:
You check your surroundings. You can go east or west. Southward appears 
to be blocked.
> north
Didn't you read my instructions? You CAN'T go south.
The key problem with the last one is the use of "appears to be blocked" 
which implied to me that there was a barrier there that could be 
circumvented.  Not the case.  You just couldn't go south.  No mention of 
what the apparent blockage was, of course.
SOLUTION:
Be imaginative when describing your locations.  If you have trouble 
knowing how to describe things, observe the world around you.  Look at 
pictures that resemble the locations in your games.  Try to describe 
them to someone else, or have someone else describe them to you, and see 
how much of a picture you receive based on just the description.
Bear in mind though that location descriptions do not need to be long. Vivid and memorable is good, but functional is important too.
Beyond Zork is an excellent example of terse location descriptions, though of course, it benefits in that the automap mostly removes the need to clutter the description with exits.
11. ACTION ADVANCEMENT (via Location Descriptions)
This is another one I've seen quite a bit.  Here's a quick example to 
explain.
We've got your average run-of-the-mill IF game.  We're standing beside a 
car.  There's only one way to get through the second-story window above, 
and that's by standing on the hood of the car when it explodes.  So the 
amateur writes the "Second Floor" location of the house like so:
Second Floor
The car has exploded, and you are
in the second story of the house
where you were blown by the
exploding car.
>
SOLUTION:
An easy rule would be: NEVER put plot action into the room descriptions.  It doesn't matter if 
the given plot action is the ONLY way the player could EVER get into the 
location; do you want the player to see it every time they say 'LOOK' ?
What if, 37 room locations later, you decide that you do want 
the player to be allowed back into that location? So you put a link 
from the hallway back into the second story room.  Guess what?  If you 
don't remember that location which you wrote two months ago has a 
plot-centric description, you'll be in trouble.
For the more sophisticated, you 
can put some level of plot action into your room descriptions through the judicious use of logic.
For example, in Inform, you can use the "visited" attribute to figure out if this is the first time a room has been entered, e.g.:
Room    Guild_Hall_Foyer "Guild Hall Foyer"
  with  description [;
          print "The opulent splendour of the guild
          hall foyer is almost overwhelming. Huge
          marble columns rise up to hold the vaulted
          ceiling in place, and the marble walls
          and floor seem to glow and shimmer with a
          queer internal light.^";
          if (location hasnt visited)
            "^A bored-looking guard glances at you
             as you enter. ~Welcome to the Vechlee
             Guild Hall,~ he booms in stentorian
             tones.";
          "^The guard nods at you. ~Welcome back.~";
        ];
12. INSIPID INITIALS
I don't mind seeing "You can see a <whatever> 
here" a few times in a 
game.
I also don't mind seeing that for things that the player has 
dropped in a room.  It's nicer if everything has a describe routine, but 
that's a lot of work.
As well, if you have a describe routine for 
everything, and a player drops everything he has in a room, it makes for 
a very lengthy pile of text when he types 'LOOK'.
What I do mind seeing is objects that are still in their initial 
location being described as merely:
"You can see a <whatever> 
here."
It's not really reasonable that all these things are just lying around 
to begin with, but throwing that aside, let's see some originality in 
describing them.  Have them sitting on the table, discarded on the 
floor, lined up in a row, anything.
It should also be self-evident that you should not mention items that players can pick up in the room description (unless of course you're also testing to see if they're still there and avoiding that printing if so).
Along with this idea, let's introduce some sense into the locations 
where you find things.  Far too many games seem to get all the puzzles 
created and then the objects needed to solve those puzzles strewn about 
the map at random.  Why is there a wrench in the kitchen?  Why is there 
a flask of acid in the bedroom?  Invent reasons for why things are where 
they are.  Put a leaky faucet in the kitchen, explaining the wrench.  Or 
put things in places that make sense.  A wrench in the toolshop, acid in 
the laboratory.
The cardinal sin in initial descriptions is doing this for NPCs.  How 
boring is it if everytime Jack is in the room and you issue a Look, you get:
"You can see Jack here."
It doesn't take much to change the game to make it look like so much 
more than just the standard library with some rooms tacked on.  Even a 
simple:
Jack is lounging against the sofa here, looking bored.
does wonders for adding realism to the game.
Preferred is doing a 
switched random(x) statement of some kind, so Jack does slightly 
different things every time the player issues Look.
13. MANGLED MIMESIS
Lots of games break their mimesis 
through deliberate and forced injection of the author's voice.  One 
example I saw recently makes tantalising references to:
... but what exactly is it for?
Only the game author knows!!!
upon examining an object.
Or, worse yet, upon trying to attack an NPC:
If you keep trying to do stupid
things like this, I will find you
and kill you personally.
This was not said by the NPC, but by the game itself.
For me, nothing pulls me right out of the environment of a game worse 
than this.
There are also incongruities of technology and culture, say where a 
dungeon contains a copy of a modern magazine, or a modern naval vessel 
has, for some inexplicable reason, a 150' tall wooden mast.
There may be artistic reasons for doing this sort of thing, say in a 
game involving time travel or some sort of really warped technological 
world, or a certain freedom in a laissez-faire world of fantasy like the Zork or Enchanter series.
However, if you're trying to write a game with a consistent 
setting, make sure you understand the level of technology appropriate to 
the setting.
14. ACTION ABORTION
Trapping actions in order to disallow them and provide the "correct" 
syntax.  This one really annoys me.  When I type a sequence of commands 
in an IF-game, I can understand if they don't have the right effect.
But if I type:
You can see a rug here.
> sit on rug
Psst, try STAND ON RUG instead
or:
You can see a cannon here.
> put cannonball in cannon
Hey!!! Use LOAD CANNONBALL IN CANNON instead.
I get extremely irritated knowing that the author anticipated my typing 
the "wrong" phrase, obviously knows what I wanted to do (because he 
suggests the proper phrase), but doesn't bother to do the right thing 
for me.
SOLUTION:
If you're going to bother to catch the alternate way of phrasing the 
action, and tell me the correct one, why not just have the "incorrect" 
one work, and keep quiet about it?
15. CLOSEMOUTHED CHARACTERS
NPCs that do nothing unless the magic words are said to them
e.g.:
You are in the queens torcher
chamber. Baldrick is running
around and screaming let me
out let me out!!! he's in prison
for meeting the queen the
other day then he didnt bow to
her. So she told him to and
he did but not low enough!!!
You can see a Lord Blackadder here.
> ask blackadder about baldrick
There is no reply.
> ask blackadder about queen
There is no reply.
> blackadder, tell me about baldrick
There is no reply.
> talk to blackadder
That Baldrick is going crazy!!! We
have to find a way to get out of here
and YOU have to do it."
SOLUTION:
At the minimum, give your NPCs a default response to Ask and Tell. 
Personally, I don't like the "I don't know anything about that." type of 
response.  That clearly says to me, as a player, "Here's a hole in the 
game."  I prefer something like "You're busy worrying about that when 
we've got to escape this prison cell?"  Something that works in the 
context of the game, and the context of the NPC, and why they're there 
with the player.
Try to predict the reasonable topics of conversation that the player 
might initiate with the NPC, and program responses in for them.
Think about the objects the player is likely to have when they meet the 
NPC, and have the NPC respond meaningfully to the more important ones. 
And create a nice default response for being shown the rest of them:
"So you've got a fox who's so cunning he's just been appointed Professor Cunning at Oxford University," sighs Lord Blackadder. "Too bad it 
doesn't help us get out of here. Actually, now that I think about it, it probably would."
* * *
References:
- thanks to the following for their suggestions to the first draft:
  - Jim Aikin
  - Cedric Knight
  - Mike Roberts
  - Andrew Plotkin
 
No comments:
Post a Comment