AIF 101

Johnny Freebase's "AIF 101," a series of instructional postings on AGX by a well-known AIF author.

  1. Ideas
  2. Plot
  3. Characters
  4. Events
  5. Dialogue
  6. Mapping
  7. Coding
  8. Testing
  9. Polish


Ideas

Often, new authors are given the advice that the first thing they should do is pick an IF authoring language. I disagree. In my opinion, the language used is nothing more than a tool, the media through which you get your game across. Different languages are suited for different tasks, so how can you choose which one to use if you don't know your needs yet?

Personally, I tend to use TADS 3, but I've worked in TADS 2 and Adrift as well.

The very first step is to develop an idea. You need to figure out what your game is going to be about. If you're lucky, you might have some kind of idea in mind. Many authors can just pull inspiration out of their daily experiances, dreams, and fantasies.

If nothing comes to mind, pick something at random. Choose one of Polti's basic 36 plots. Draw some Tarot cards. Grab a random CD, put it on shuffle, and use whatever song comes up. Whatever you have to do to get at least the germ of an idea.

Here are some examples. Feel free to use any of these in a game.

Polsti's 36 plots: DELIVERANCE: Appearance of a Rescuer to the Condemned

Tarot: The Moon - A yearning for fulfillment. Unforseen perils; threatening situations, psychic forces.

Song: Jimi Hendrix - Manic Depression

Some people like to make fan games. Those can be fun... but all they give you is setting and characters. You still need a plot. Sometimes you can weave plot around an interesting character idea as well.

So, you have a very basic idea. Next, you need to brainstorm that into an actual plot... the basis of what happens in the story. You need to figure out who does what, and to whom.

For the above examples;

Polsti's: Deliverance. Well, perhaps the PC is rescuing someone, say a generic princess.

Tarot: The Moon. Psychic powers. Hmm... perhaps a mind-control game wherin the player and his loved ones are threatened!

Song: Manic Depression. The song is about a guy wishing he could make love to music. Perhaps this could be someone who meets and falls in love with his muse. Or some other Greek mythological figure... perhaps the PC (Hercules?) has to seduce his way through the Goddesses! And Xena!

See that last one? Don't be too attatched to your original idea... they tend to mutate. Just get an idea and flow with it. You don't need to figure out how the sex fits in just yet... it should arise naturaly from the plot, but you can come up with some ideas.

So, I'll take and flesh out the second idea, the Tarot Moon card.

TAROT: Moon The player somehow begins to develop telepathic powers. This brings him to the attention of other psychics, who threaten his family and loved ones. One focus of the game will be the development of the players psychic abilities. POSSIBLE SEX SCENES: Various sorts of mind control, voyurism, possession, etc.

Group Activity:

Go ahead and generate a basic idea. How did you come by this idea? Flesh it out into a general plot for us. It doesn't have to be big, it doesn't have to be ambitious.

NEXT: Developing the Plot.


Plot

Okay, last time we brainstormed a bit, and have a basic idea. Now, we can begin some more serious planning, turning that idea into a story.

There's no one way to turn an idea into a fully fledged plot, but there are some generalities. Here, our goal is to build the foundation for all of the elements that are to follow, such as character and setting.

Before I go into examples, allow me to digress on the physicality of planning for a moment. I do all of my planning on the computer, usually just in a simple text editor. Sometimes I use the freeware program MyInfo, which is a sort of indexing/note taking program you can pull off of http://www.milenix.com/myinfo I find it helpful, but you'd do just as well with Notepad.

What you are building as you plan your game is a design document. Depending on your proficiency and style of note-taking, this can be either a really big or a really small file. I prefer to take my notes on the computer as opposed to on paper simply because you never really know how much space you're going to need to allocate to a given topic.

Lets take one of the ideas spoken of last time... the Deliverance plot. A princess being rescued by someone. Well, that gives us a character right away, a princess. We'll go into character development in a later lesson, but for right now you can simply note her existence under the Character's heading of your notes.

For the purposes of this game, we'll assume that the player is the one doing the rescuing. The player could be the kidnapper, or an assistant to the rescuer, but for right now, we'll add the player as Rescuer. You can add the player to your Character notes, or as a separate heading.

Now, someone has been kidnapped. By whom? If we come up with a good idea, thats great. If not, we can go with our random idea generation... lets give that a try.

First, a tarot card: The 7 of Wands. This suggests a man overcoming great struggles.

Now, a random song: Jethro Tull - Locomotive Breath. A dragon!

Well, lets be classic and go with the second option. A dragon has kidnapped the princess! The dragon is our antagonist. Add him to the Character notes, with a tag denoting him as the Antagonist.

We decide to continue in the classic venue and decide that the player is the King's Champion, a top knight, assigned to rescue his daughter. We can add the King to the list of Characters, and why not add Queen while we're at it?

Now, lets pause for a moment and talk backstory. What lead to things being the way they are? Why was the princess kidnapped? How did the PC become King's Champion?

A common literary and cinematic convention is the role reversal. Simply put, the protagonist's goal changes midway through the plot. Sometimes this can happen several times. Let us plant the seeds for one now.

The princess wasn't kidnapped. She ran off, ran away with the dragon, her lover. Perhaps there is no dragon after all, but instead a powerful sorcerer who makes it look like there was a dragon to cover his tracks!

The princess was from a foreign country, here to be married off against her will to the Prince for political reasons. Add him to the character list... lets make him a bit of an asshole, too. The King, his father, has gotten old and feeble, and now all the Prince needs to replace him is a Queen of his own.

The "dragon" is actually a sorcerer from the Princess's home kingdom. He "rescued" her, and they've fled. The Player, one of the aging king's greatest knights (perhaps now getting a bit on in years as well), has been tasked by the Prince to rescue his fiance.

Another backstory element is the general game setting. Fantasy is the most obvious match for our project, but it could easily be adapted to space opera, cyberpunk, whatever. We'll leave it as fantasy for now. I won't get into too much detail, but as far as world creation goes, we need to determine the following:

  1. Our PCs culture
  2. The Princess's culture
  3. The political situation between 1 and 2
  4. The nature of magic

For our PCs culture, we'll leave it as "Generic Medieval European." No elves or dwarves or any other races... we'll leave anything we don't define as being basically "Generic medieval Earth".

We want the Princess to be exotic. She can be from some vaguely Asian culture.

To make things more dramatic, we'll make relations between our two defined nations uneasy at best. Perhaps the union of the Prince and Princess is to avoid a war... or end one. Nah, that makes our player's eventual decision way easier if the fate of nations hangs in the balance! We'll say that the Princess's nation is subjugated by ours, and that she was taken against both her and her family's will.

Hey! Maybe the Dragon isn't a forgotten lover, but her brother. This opens up the avenue of a relationship between her and the PC!

That's the backstory.

Now, eventually in the game the player will have to choose... show loyalty to the king's misguided and arrogant son, killing the sorcerer and returning the princess, or stay true to his knightly virtues and assist them in escaping back to their homeland?

Lets note that honor vs loyalty will be a strong theme in the game, and to bring up the Prince's dark nature and the tenets of chivalry often. A possible climax: The player has to choose weather to assist the Prince or the Sorcerer in a showdown.

"Wait!" I hear the cry. That's not very AIF sounding at all! Where's the sex?

There are lots of opportunities for sex. Perhaps the player is having an affair with the queen. Perhaps he can demand "payment" from the Princess in exchange for helping escape the prince. All I've established is the main plot... much more will occur in the game than that.

Even so, if you want something more directly AIF, the process is the same.

In a "Night With XXX" game, the plot is simple: The player wants to fuck character XXX. What must be done to accomplish this?

Or, as in many AIF games, the goal is to score with a certain character, and for some reason you have to screw a number of other characters first. Moist, Camp Windy Lake, Ideal Highschool, whatever. You still have characters and a plot. The particular game I've presented may be more story than character based, but its the same general process.

So, our plot summary:

An aging knight is ordered to rescue the King's arrogant son's fiance from a dragon. After it turns out that the "dragon" is actually the woman's brother from her homeland there to rescue her, he must choose to help them escape, or turn them in.

GROUP ACTIVITY: Take an idea you've had (or generate a new one) and flesh it out. Make a list of characters, figure out who the protagonist and antagonists are. Craft the backstory. Design what elements of the setting you have to.

NEXT: CHARACTERS


Characters

Even though my projects tend to be story driven, it is the characters that can make or break an AIF game. Detailed and creative characterization can enhance every aspect of a players's interaction with an NPC, from sex to dialogue.

Player Objectivity/Subjectivity:

Before anything else, special mention must be given to the player's character. There are basically two schools of thought in IF regarding the persona adopted by the player. One proposes that generic characters are best to play, letting the player decide who he is and how he reacts to things. Attempts are made to avoid putting words in the player character's mouth. The other school of thought is that players enjoy stepping into a well developed role, and that the persona the player adopts is important to define.

In my eyes its really a question of subjectivity versus objectivity. If the player's character is set by the author, than everything presented to the player must take the character's prejudices in mind. Every room description, object description, and action result should be crafted with an eye towards how the individual character would interpret such an event... is the glass half full or half empty? On the other hand, with an objective generic character an author must be very careful to avoid ever telling the player how he feels about anything. State what is, and let the player decide how to feel about it.

AIF deals very heavily with sex, a very intimate activity. When describing someone's involvement with sex, it is very difficult to do so in an objective manner and still have it be 'hot' (or at least entertaining.) In this I recommend that, especially in AIF, the player's character be as thought out and developed as any of the NPCs.

Secondary Characters:

If you've been following along with me thusfar, you should have a list of characters. Among them should be listed a Protagonist (usually the PC) and an antagonist. There are some other archetypical literary roles we can fill out. As we do, if you have an established character that would fit the role, use them, otherwise don't be afraid to create new NPCs for them. Not all of the following roles are strictly required, but they can add much to a game.

Sidekick: The sidekick is a character who accompanies the character, and can act as the author's "voice" when need be. There is a strong tradition of "followers" in Interactive Fiction, from Floyd the Robot and beyond. The sidekick can offer advice, hope, and comic relief. The girls in BBBen's Outworld series and One Eyed Jack's Sam Shooter II count as sidekicks.

Foil: The foil, who may also be the sidekick, is a character in the same position as the protagonist who chooses differently. He usually chooses wrong, and serves as both an example to the PC and to provide mood.

Romantic Interest: Who, throughout the course of the rest of the action, the protagonist is pursuing romantically. This is, in lots of AIF, the "Main Girl".

The more characters you include, the more coding you have to do. Keep that in mind.

There is a large branch in the plot of the game we've been developing. The player comes to a crisis point... he can help the Princess escape, or decide to bring her back to the Prince. Because of this, our antagonist can change mid game.

Protagonist: Knight.
Antagonist: Dragon at first, may become Prince.
Romantic Interest: None set initially, may become Princess.
Sidekick: Another knight sent by the Prince. Lets say a younger knight. An idealistic younger female knight, perhaps. If the player chooses to side with the Prince, she may become the Foil, trying to help the Dragon.
Foil: Lets add another companion... perhaps a bounty hunter. He can act as Foil if the player decides to side with the Princess, and is sent to get the player as well.
Other Characters: The King The Queen

Character Design:

Character design is important. You can be as sparse or as detailed with this as you like, depending on how important the character is to the game. There are a few general things to decide about the characters you design.

Appearance: AIF is a text based medium, so knowing what different characters look like is important. Here's a list of things to consider: Gender Age Height/Build Skin tone Eye Color Hair Color/Style/Length Piercings/Scars/Tattoos/make up Clothing style

For male characters, you may also wish to consider facial hair, genitalia size, etc.

For female characters, you may wish to consider breast size, pubic hair (trimmed? Shaved? Natural), etc.

Also, characters may have a certain accent/way of speaking, or a distinctive body language.

Personality: This is of importance as well, for it is a guide to how they react to the player. Here are some things to consider: Intelligence Sensitivity Creativity/Openness Discipline Introversion/Extroversion Friendliness Emotional Stability

Sex! Knowing a character's idea of sex is very helpful in AIF. Not all attractive characters have to by Nymphomaniacs, but its up to you. Sexual Orientation. Strength of Sex Drive Sexual Experience Sexual Habits (Spit or Swallow, etc) Kinks Turn Ons Turn Offs

And, basically, anything else you need to come up with for game purposes. Backstory, etc. Names. Hobbies. Likes. Dislikes. Try to come up with at least 5 personality quirks.

Here are some examples:

THE KNIGHT Sir Jordan is an aging but still virile knight. He's of average height with a muscular build, a well crafted physique maintained despite his age. He has dark green eyes, and his short black hair has long since gone to grey. A lifetime of battle has left numerous scars across his body, including a prominent one running through his left eye.

As the player's character, Sir Jordan's exact personality and sexual habits are not too terribly defined, but in general he is an honorable and disciplined soldier... if a little weary.

Jordan was the eldest child of a powerful knight. He took to a life of military service to the king, performing great deeds and garnering much renown, eventually earning the title of King's Champion. Now in his autumn years, he feels his reflexes slow as his body begins to fail despite his discipline. He privately wonders how much longer he can remain active "in the field", serving a king who can no longer even recognize him most days.

THE DRAGON Kaosuan is a powerful young monk skilled in both the martial and the magical arts. He is tall and somewhat lanky, with a powerful build. His brown eyes turn briefly red when he uses his magic, and his black hair hangs long. His body is covered with mystical tattoos which he uses to focus his magical energies.

Kaosuan is devoted to the concept of honor, and to his sister. He does not go out of his way to kill his opponents, but can be ruthless when he needs to be and is not afraid of death. He hates the player's home kingdom for what they have done to his homeland, and has developed a mildly racist dislike of all Westerners because of it. Even if the player helps them escape, he will remain cold, distant, and suspicious for some time.

Kaosuan is a member of a reclusive order of monks. He has trained since he was a little child in arts both martial and magical. He is feared by the populace of his homeland, and only his sister has ever shown him any kindness. Upon hearing she had been brought against her will to your Kingdom, he set out to rescue her. His goal is to rescue his sister.

THE PRINCESS Kanetsu Keiyama-hime is the eldest daughter of a respected daimyo in her homeland. She is a lithe and slender young woman with pale skin and brown eyes. She wears her hip-length black hair tied back into a pony tail. She wears little makeup, and always manages to carry herself with elegance and style.

She is very bright, but also rather shy. She is kind, but slow in opening up to new people. Artistically talented, she loves to paint. She has no sexual experience, and would tend to be a little submissive in bed.

Keiyama-hime was more or less kidnapped at behest of the Prince, who saw here both as a trophy bride and as a way to symbolically show his dominance over her country. Her goal is to return home.

SIDEKICK Lady Elva is a young knight, tall and athletic. Her skin is freckled, and she has hazel eyes. Her shoulder length blonde hair is wavy, and she wears it with long bangs. She has a tattoo of a musical quarter-note on her right shoulder blade. She tends to dress flashily, in bright colors.

Elva is an enthusiastic young knight, as well as a tad gullible. She has a very idealistic take on the tenets of chivalry, and tends to romanticize her position as a knight. She sees the player as the pinnacle of knightly virtue, and has been obsessed with him since she was a little girl. Sexually, she has fooled around a little bit, but remains a technical virgin. She has slight masochistic tenancies. Her goal is to learn from you what it is to be a knight.

THE PRINCE Prince Duncan is the heir to the throne. He is tall and muscular, fond of the hunt and trained in personal combat by some of the greatest warrior's of the kingdom, including yourself when he was younger. He keeps his blonde hair cut short, and has icy blue eyes.

Prince Duncan is a cold and ruthless man, unsympathetic to the plight of the peasantry and the wellbeing of others. He is viscous and aggressive, ordering severe punishments for the slightest of offences and constantly pushing his father to conquer. His goal is to replace his father and forge his kingdom into an empire.

He doesn't really care about Keiyama-hime, but he needs a bride to claim the throne from his mother before his father dies. He's not quite ruthless enough to murder the old man. In addition, his pride has been stung by the abduction, and he wants what he has rightfully stolen back.

THE FOIL Sir Burton is the Prince's personal retainer. He is built like a linebacker. He shaves his head, and has cruel blue eyes.

Sir Burton covets your position as King's Champion. He has never had any respect for you, or for the code of chivalry. He is cruel and sadistic, and has murdered to advance his and the Prince's goals. His goal is to replace you as King's Champion through any means necessary.

THE KING King Theodore is the aging monarch. Now old and frail, his hair has gone snow white and his once steely eyes are cloudy. He often has a far away look in his eyes, age having subdued his once great mind.

He is a very friendly, if somewhat befuddled old man. On his more lucid days he can summon up some of his old kingly presence, but in general he wanders about aimlessly holding conversations with the portraits of his ancestors.

THE QUEEN Queen Penelope is much younger than her husband, in her mid 40s, and has aged fairly well. She has taken over much of the administration of the kingdom from her husband, ruling in all but name, and is the only real opposition to her son's ambitions.

Having sexual desires that her husband can no longer fulfill, Penelope has set her eyes on Sir Jordan. She sees him as powerful and virile as he was the day they met.

You get the point, more or less. More characters will probably be added as you continue making your game, but these are your primaries.

GROUP ACTIVITY:

Identify the Protagonist, Antagonist, Foil (if any), and Sidekick (if any) in your game. Figure out who the Romantic Interest is.

Go ahead and develop the main and secondary characters in your game. Use whatever criteria and format are most useful to you.

NEXT: EVENTS


Events

We have characters. We have a setting. We have a plot. Now, all we need to do is make things happen.

I use the word events here. Events are basically the things that happen in the game, weather initiated by the player or not.

The first thing we should do is make a list of events... of what is going to happen.

There are, more or less, three parts to every story. Three Acts.

Act 1: Introduce the major characters Acclimate the player to setting Start the adventure with the protagonist's initial goal

Act 2: Complicate matters. Throw obstacles in the player's path The lowest point for Our Hero. Goal Reversal.

Act 3: Climax. Resolution.

We'll list, as our first event, the intro. The intro can be done in many ways, from a block of text spelling things out for the player to an interactive scenario allowing the player to get used to the game. In any event, before the player enters his first command he should have a good idea of Who He Is and Where She Is... unless you actively don't want them to. Ideally, they should have some sort of goal, even if its only to get dressed and take a shower.

THIS IS IMPORTANT: At no point should the player be without a goal! It can be as simple as going downstairs for breakfast, but unless exploring the game environment is a goal in and of itself, the player is going to get bored fast.

The events that make up any given game are going to depend on the game itself, and its scope.

Every event has two aspects, a trigger and an outcome. The trigger is whatever causes the event to occur, and the outcome is what happens. Your game may only have a linear series of events, each of which is encountered in order, or a matrix of events that can be triggered in any order. A flow chart helps immensely.

Here's an example event:

INTRO: TRIGGERED BY: Start of game - display introductory text. Tell who player is, describe kingdom.

You can write the actual text now if you're in the mood, or wait until you're actually coding. If you plan to wait, just summarize it.

So, lets figure out what we want to accomplish in Act I.

  1. Give player mission to find Princess
  2. Have player meet Prince, Queen, King, Sidekick, and Foil.

Eventually we want the PC to get his mission. At the start of the game, the Princess has not yet been kidnapped. We need an initial task to set the game in motion and reveal the nature of the characters.

Okay... a royal ball. The player is attending a dreary royal ball, and is informed the Queen wishes to see him. He wanders about, encountering the principal characters (with the option to interact with them) until he finds the Queen (out on a balcony, or in the garden, or something.)

EVENT 1: Triggered by: Finding Queen. She attempts to seduce you. The player can either resist or go with it, but then the Dragon attacks.

EVENT 2: Triggered by: messing with the Queen, or refusing and leaving. There is an off screen ruckus... explosions, screams.

EVENT 3: Triggered by: Player's return to ballroom. Player is hastily informed of events. Charged by King to rescue Princess, despite Prince's desire to send assassin/body guard. Sidekick sent along, as she got the best look at the dragon.

At this point, the player has the goal of finding the Princess. Lets make a note to put the title screen here.

Thats the end of Act 1.

Act 2 will be filled with encounters which may or may not have anything to do with the Dragon and the Princess. For now, lets leave 3 blank spaces, and skip to:

EVENT 7: Triggered by: The player catches up to the DRAGON and the PRINCESS. The player hears the gist of things from the fugitives, and must decide to let them go or take them in.

EVENT 8A: Triggered by: Letting them go, escorting them to the port. The Prince's assassins have tracked them down. Player has to outwit them and protect the NPCs.

EVENT 8B: Triggered by: Not letting them go, making camp. Sidekick, now Foil, helps them escape to tunnels leading to port city. Player has to follow, evading natural dangers and Dragon's traps, then show down with Dragon and Foil.

EVENT 9A: Triggered by: Hiding in city with PRINCESS while SIDEKICK and DRAGON are out. Possible romantic interlude if you play your cards right.

EVENT 9B: Triggered by: Capturing them, accepting PRINCESS'S body in exchange for freedom. Ends the game. You return empty handed, are disgraced, Prince ousts you.

ACT 3 is the endgame.

EVENT 10A: Triggered by: Escaping unharmed to boat. Assassin fights, wounding dragon. You MIGHT save him, if you go back for him (He's been cold to you the whole game) instead of helping SIDEKICK (who tells you to go, she can handle this!)

EVENT 10B: Triggered by: Returning Princess unmolested. Given rank advancement by Prince, sex with Queen?

EVENT 11A: Triggered by saving Dragon, didn't blow romantic interlude with Princess. 2nd Romantic interlude with Princess.

GOOD ENDING: Triggered by end of 11A, skipping 11A You accompany Princess back to her homeland, possibly as her Champion/consort.

So, there we have a basic event listing. You can develop events into scenes:

Scene: Intro TEXT: You've never been terribly fond of royal balls, but as the King's Champion you are bound by both decorum and duty to attend. You hate the useless ceremonial armour you are forced to wear, hate the disgusting "gourmet" food they serve, and most of all, you hate the looks these soft courtiers give you, a battlefield veteran who earned his position not through an accident of birth but through the spilt blood of the kingdom's foes.

You'd much rather be out in the rain drilling with the guard, performing maneuvers in the mud. Still, for now, you're a soldier, and you follow orders. You may have gone a bit grey, but you're not deaf and the painful whispers that you have passed your prime and should retire still reach your ears. You're determined to cling grimly to your title until one of the younger knights manages to wrest it from you at tourney, or until your body at last fails you.

Your morbid musings are interrupted by a page.

"Sir Jordan", he politely speaks. "Her majesty desires your presence."

- Player is in auxiliary ballroom with page.
- Player looks for QUEEN, encountering PRINCE, KING, SIDEKICK, PRINCESS, and ASSASSIN.
- Expository text whenever meeting new NPC.
- PRINCE snootily ignores NPC, maybe subtle jibes.
- KING is friendly, but senile, in main ballroom.
- SIDEKICK is awestruck and hero-worshippy, guarding PRINCESS.
- ASSASSIN is disrespectful and rude, taalking with PRINCE.
- QUEEN is in secluded garden.
- Random other courtiers, a few guards

So, as above, you can see we've added a minor NPC page, and probably a few minor npc Courtiers and guards. We have a few location ideas, a garden and a few ballrooms. We've also established some of the player's starting gear... a ceremonial breastplate. Note that I wrote some intro text... that isn't required at this stage, and it'll probably be revised.

Here's another scene.

SCENE: Queen Seduction
- Scene begins with initial contact betwween Queen and PC
- Queen is lonely, wants to seduce PC. - Queen is in secluded side garden - Queen will greet PC seductively.
- Queen will be wearing elegant ball gown as befits the situation
- Queen's advances will grow bolder and bolder until PC either gives in or flees.
- As soon as either occurs, the dragon attack will commence.

We could either work out the queen's plan of attack now, or leave it for later.

GROUP ACTIVITY:

1. Events 4 to 6 in the timeline were left blank. Come up with 1 to 3 possible events for the timeline.

2. Take an event from the timeline and develop it into a scene. You can use one of the events from activity 1 above if you did it.

3. Work out an event timeline for a game, one you've already made, or a new one. It doesn't have to be long, or follow a three act formula.

NEXT: DIALOGUE


Dialogue

I'm going to define dialogue as characterization in action. One of the most fundamental ways players interact with npcs is by talking to them. There are many ways this has been done in IF. I'll provide an overview, but http://tads.org/howto/convbkg.htm has several articles on the subject. It is a TADS site, but the first few pages are language independent.

The simplest conversational implementation is a simple TALK command. The player enters TALK TO [character], and this launches whatever the character's dialogue is given the current game state. This allows for minimum interactivity, and greatly simplifies both writing and playing the game. Its largest downside though is that with only one command, conversational puzzles are impossible to implement.

Some games include menu systems, allowing the player at different points to choose from a limited number of dialogue options. This allows for more options than the simplified TALK TO command, but can be difficult to implement, and still confines the player to a fairly linear conversational storyline.

Many games make use of an ask/tell system, in which the player can ask characters about topics (ASK [character] ABOUT [topic]), or tell them about them. This offers the basic conversational functionality, and allows for the player to mine information from the other characters. It is, at the moment, the most powerful and versatile option.

What you choose depends mostly on your game and your needs. If you are using the TALK TO method, all you need decide is what every speaking NPC will be saying at any given point in the game. Minor NPCs may only have one line of dialogue to repeat throughout the game. More complicated characters might change their lines dependant on the game state.

When designing a menu based system, it would be easiest to draw out conversation trees. What dialogue option results in what response, at different points in the game.

I've worked mostly with ask/tell systems myself, so I'll focus for the moment on those. I find that when planning a character's conversation, I work best away from the computer screen with an old fashioned pad of paper and a pencil. First, I make a list of general topics that all characters in the game are likely to know about. These include other characters, the player, events, places, things, whatever. Then, I go through each character and make a conversational web... I write each topic down, and summarize more or less what the character's response to being asked or told about said subject might be. If this offers up additional conversational topics for that character, I'll draw a line from that topic to a secondary topic.

This can be hard to describe, so here's a crude ASCII diagram.

TOPIC 1 --- SUBTOPIC 1
| \
| \
| SUBTOPIC 2
|
SUBTOPIC 3

So, for our hypothetical game in progress, we work up a list of general topics.

<>The Player
The Princess
The Dragon
The Prince
The King
... etc other characters
Our Kingdom
The Princess's Kingdom
The Castle The Port Town
...etc other places
The Ball
The Kidnapping
...etc other events

Let us assume that we are developing the Prince as a character. We take the first general topic, the Player, and start a web. We decide that the Prince will say the player's an okay sort, but that he should consider retirement. Our web would look something like

PLAYER --- RETIREMENT

This gives us a subtopic for the prince, the concept of retirement. We decide that if the player asks about retirement, the prince will consider it an excellent idea.

Eventually, when you're done with your list, you can figure out the specifics of the dialogue. I like to type all mine up in a word processor for the advantages spellcheck gives me. Here's an example of the Prince's Dialogue:

PLAYER: "You have served my father well," the prince speaks, "and your deeds are renowned throughout the kingdom. You certainly have earned a nice, quiet, retirement."

RETIREMENT The Prince perks up at mention of your potential retirement. "Given the matter some thought have you? It is for the best... you're not getting any younger."

Of course, new conversational topics will arise as you continue planning your game out, and your betatesters will undoubtably have suggestions for topics you may have missed.

GROUP ACTIVITY:

Work up a list of possible conversation topics appropriate for a work in progress.

NEXT: Mapping


Mapping

When I first began programming text adventures in Basic on my TSR 80, each separate location had an x y co-ordinate. If you left to the west, you subtracted 1 from the player's y co-ordinate. If you went east, you added one. Every object had a co-ordinate, specifying where its current location was. You could only interact with objects whose x/y matched yours.

This of course lead to all of my early games being mapped out like square grids. I mapped them out on graph paper most of the time

The IF languages available today are much more versatile than the games I used to make. Each location links to another location; there is no need for a strict x/y grid. I have found that, when mapping, instead of using a series of equally-sized boxes connected by lines, drawing out an actual map of the game area is much more useful. You can get a real idea of the relative size of areas.

Since by now you've already developed the basic story line and event listing for your game, you can start mapping by making a list of needed maps. In our sample game, we need a map for the castle, the road, the port city, a boat, and some tunnels.

Furthermore, under each map, there are certain locations needed by our events. In the castle, we need a ballroom and a garden. When we draw the actual map, we can add other logical areas to it as well. We can add a balcony to the side of the ballroom. We decide that the rest of the castle isn't really important, but be can separate the ballroom into three separate locations... its a big area!

Sometimes the map can give us ideas for puzzles and encounters. These are effectively "mini-events", and you should make note of them as you go along. Suppose that, while on the road after the Dragon and Princess, the player comes across a washed out bridge. Brainstorm a number of possible solutions for this puzzle, and choose the one you like best. Lets say there is a ferry a ways down the bank, for example... but upon arrival, the player finds that the captain has gone missing. This gives us another "mini-event", finding the captain. Turns out he's in a roadside tavern, deep in his cups, and not really in the mood to pilot his boat. This being AIF, perhaps Lady Elva can be asked to "persuade" him otherwise, leading to a voyeuristic scene for the player if he chooses to watch.

In the above example, we'd need to add a new character... the Captain. He's a minor character, serving only to have sex with another npc and to ferry the players across the river.

There's not much more to mapping than that. Make sure to denote any objects located in any given area, and you can draw obstacle based puzzles directly on the map.

A WORD ON MAZES:

Mazes suck. Don't use them. They were a novelty in the days of IF infancy, but they are the most basic and frustrating of puzzles. I'm talking about the mazes comprised of a number of identical rooms, each without variation or detail. Trust me. Nobody likes them, and they're not very clever anymore.

GROUP ACTIVITY: For a work in progress or a hypothetical game, write up a list of maps you'll need, and a list of locations vital for one of those maps. Brainstorm a few additional logical locations.

That's pretty much the end of the planning stage, unless anyone has anything else they like to do before coding begins.


Coding

Now that you know pretty much what your game is about, you can choose an IF language in which to make it. You know what you need, now choose a language that allows you to do it. Don't feel hemmed in by forcing yourself to choose a language that you already know... there's nothing wrong with learning a new skill.

Generally speaking every language has its own good and bad points. Adrift is very simple to use for simple games, and has a nice built in auto map feature. If you dislike planning, its also easy to make up games "on the fly". TADS 2 or 3 is better suited for games involving complex NPC interactions and dialogue, as well as almost anything involving arithmetic functions or randomization.

Complex work in Adrift is accomplished through tasks. You take the line of input that a player might enter, like PULL LEVER or KISS MARY and decide what the results are. In TADS, the results of actions are stored as methods (little mini programs) within objects.

I don't have any experience with Inform, AGT, Hugo, or any other language, so I really can't comment. I survey I took of posters to alt.games.xtrek some time ago found that while approximately half of the authors who responded preferred to work in Adrift, over 80% of responding players preferred TADS games.

Coding a game can be a daunting project. It can take a long time to code a game depending on how much time you spend on it. I find that it is best to work on programming/coding for at least an hour every day to keep it fresh in your mind. This isn't always feasible with work/school schedules and waxing and waning interest in a project. I recommend creating a log file for every project.

A log file is simply a record of the progress you've made in a game; it is usually a simple text file. I usually just list the project, its start date, and then a daily list of what was accomplished during that time. If I find myself skipping anything as I program, or am struck with inspiration that I cannot immediately implement, I make a note of it at the end of the log file under a TO DO heading. Keeping an accurate log file is imperative when working with someone else, so you both know what has been done and what needs to be done.

Organization is very important when programming. I keep all files associated with a project in its own directory. Art or sound files, ADRIFT ALRs, and anything for TADS. I usually call my log file "project name".LOG.

TADS TIP: When programming in TADS, I divide every map and important npc into a separate file. NPC files I give the extension .NPC, maps get the extension .MAP. If the player object is complex, they become "project name".ME. Each of my libraries gets its own file (SEX.LIB, NPC.LIB, CLOTHING.LIB etc) and I include copies in the project folder. I usually have little more than the intro in the "project name".t file.

The game's introductory text is usually the first thing I work out. I usually already have it written out to some degree during the planning stage. The needs of your introduction vary from game to game, but in general you want to get certain things across to the player... namely WHO and WHERE they are in at least a general sense. If the character or setting are not likely to be familiar with the player, you can sprinkle the early game with books, newspapers, scripted npc dialogue, etc that reveals these things to the player. Large text dumps are boring... the old creative writing adage of "show, don't tell" definitely applies to IF. The player should also have some sort of initial goal, even if it is just a minor push that will change within the first few turns of play.

Let us examine the introductory text we wrote for the Princess/Dragon idea.

---

You've never been terribly fond of royal balls, but as the King's Champion you are bound by both decorum and duty to attend. You hate the useless ceremonial armour you are forced to wear, hate the disgusting "gourmet" food they serve, and most of all, you hate the looks these soft courtiers give you, a battlefield veteran who earned his position not through an accident of birth but through the spilt blood of the kingdom's foes.

You'd much rather be out in the rain drilling with the guard, performing maneuvers in the mud. Still, for now, you're a soldier, and you follow orders. You may have gone a bit grey, but you're not deaf and the painful whispers that you have passed your prime and should retire still reach your ears. You're determined to cling grimly to your title until one of the younger knights manages to wrest it from you at tourney, or until your body at last fails you.

Your morbid musings are interrupted by a page.

"Sir Jordan", he politely speaks. "Her majesty desires your presence."

---

This tells us who we are (A knight, the Champion, getting on in years), where you are (a feudal kingdom, a fancy ball), and gives us an initial goal (meet the queen). Type it up, spell check it, and drop it into wherever it needs to go.

As I've mentioned, coding is less intimidating if broken up into easier-to-manage chunks. Divide your game up by major scenes or locations, depending on weather your game is more location or event based. For each thusly divided scene/location, you will go through the following stages.

1. Locations Code each "room" in your game. Room descriptions should be fully typed up at this point, as should any necessary objects in the rooms. You can, if you like, make all included objects "fully functional" if you like, or simply leave them as "skeletons" that you can't really interact with yet and get back to them later.

Room descriptions should take sight, sound, and smell into account. NEVER include a player's actions in the room description, unless its a description they only ever see once. If a player LOOKS while in a room, and the description includes them looking around while they climb in through a window, that can be very jarring.

Here are the initial locations in our example game.

NORTHEAST CORNER OF BALLROOM

Soft elegant music fills the grand ballroom, which has been lavishly decorated for the King's 74th birthday ball. Delicate purple and gold streamers adorn the walls, and beautiful glass ornaments hang high above you from the distant domed ceiling. This is a quieter corner of the grand ballroom, almost devoid the guests filling the spacious room to the south and west.

Objects to code: music, streamers, ornaments, ceiling, ballroom, guests

We have two more ballroom locations, to the south and west. Each will include the same first two lines.

SOUTHERN BALLROOM

Soft elegant music fills the grand ballroom, which has been lavishly decorated for the King's 74th birthday ball. Delicate purple and gold streamers adorn the walls, and beautiful glass ornaments hang high above you from the distant domed ceiling. The crowd of party goers here is clustered about a slightly raised dais upon which rests a long banquet table laden with rich foods. Through the crowd you can spy a relatively quiet corner to the north, and you think the King is off somewhere to the northwest. An almost hidden doorway leads out into a small garden to the east.

Objects to code: music, streamers, ornaments, ceiling, ballroom, guests, table, food, corner, King, doorway, garden

WEST BALLROOM

Soft elegant music fills the grand ballroom, which has been lavishly decorated for the King's 74th birthday ball. Delicate purple and gold streamers adorn the walls, and beautiful glass ornaments hang high above you from the distant domed ceiling. The crowd here is particularly thick, offering relief only in an isolated corner to the east, and a balcony to the west. You can see a banquet table off to the southeast.

Objects to code: music, streamers, ornaments, ceiling, ballroom, guests, corner, balcony, table

GARDEN Well secluded from the vibrant party within the ballroom to the west, this peaceful garden seems almost grey under the pale moonlight. Exotic night blooming flowers from far off lands fill the garden with a soothing atmosphere, and the chirping of crickets overpowers the soft distant music from within.

Objects to code: ballroom, garden, moon, flowers, chirping, crickets

BALCONY This balcony offers a temporary refuge from the hustle and bustle of the ball back inside to the east. It looks out over the moat around the castle at the surrounding countryside, bathed in pale light from the full moon overhead.

Objects to code: ball, moat, countryside, moon

Keep in mind that after the dragon attacks, we'll change these to something else reflecting the loss of a party atmosphere, and possibly include the sight of the dragon flying away with the princess visible from the balcony.

2. NPCs

Next, we code the NPCs. In TADS, I give each NPC its own #included file. At this point, it might be prudent to also include any items the npcs carry, body parts, what have you. At this point all that is needed is to code the NPCs as static objects with little interactivity. If you like, you can code up an NPCs dialogue responses and AI scripting, or you can leave it until later.

3. PUZZLES

If you've decided on any puzzles involving the NPCs, Objects, or travel, you can implement them now. For example, lets say the door to the garden is stuck shut. To open it and gain access to the queen, you'll need to get some grease from the food on the banquet table. In ADRIFT, that would require you to create a greasy food item (lets say butter), and add a RUB BUTTER ON HINGE or whatever task, and add a hidden hinge object that appears to be stuck, and obstruct attempts at opening the door. In TADS, you'd need to create the butter, door, and hinge items, make the door only openable if the hinge is greased, and add the functionality of greasing the hinge.

4. EVENTS

At this point you can add the coding for the major events occurring in a scene/map.

For our example, first we'd code in the queen's seduction attempt. Each turn she'd make bolder and bolder advances on the player... innuendo, teasing caresses, exposing a bit of leg, groping, whatever... until the player relents or leaves the area.

This would trigger the second event, the chaos and confusion of the dragon attack. Screams and sounds of conflict from the ballroom... by the time the player returns we can change all of the descriptions to reflect the carnage. Stunned party goers, some scorch marks, and the princess is gone. Some generic guard NPCs can be milling about. When the PC gets to the area where the Princess was, the Prince will make some sort of plan, only to be interrupted by the king's assertion that only you, the Champion, can rescue his son's bride. Lady Elva is selected to go as well. As soon as the player heads out of the ballroom to get prepared...

We have a title screen. Display credits, the title, whatever. Transition to the next major scene/location.

If you get to the end of the game in this scene, work that out as an event as well.

5. DETAILS

Finally, we have the detail work. Add in any objects you'd expect to find in the area, flesh out what you need to flesh out, and fill out the NPCs dialogue actions. Make sure everything is as interactive as you have the patience to get it.

When you've done, alpha test the completed section by trying to do everything, make sure it works. Later you'll have beta testers, but right now just make sure you can do what you want to, that everything is presented as you want.

Repeat this 5-step process for every major scene, making sure the scene transitions work as well.

GROUP ACTIVITY:

1. Work out introductory text for a potential game or a work in progress. 2. Work up an example room description.

NEXT Testing


Testing

You're not done yet. Testing is a very important aspect to any project. There are two types of testing; alpha and beta testing.

Alpha testing is simple. Run through the game yourself, testing everything out, and make sure it works. It would be nice if that was all we had to do, but alas, there are some major problems with alpha testing. Number one, you already know everything. You know what the player is supposed to do. You won't get stuck. Number two, you are only one person, with one person's ideas (unless you're collaborating, but thats not much better.) You will only try out as much as you can.

The purpose of a beta tester is not to beat the game offered. A beta tester's mission is to destroy it. You need to look for the game's critical bugs, areas that don't work, ways around puzzles.

Beta testing isn't a simple process. It is a cycle. You give your games to your beta testers, have them check it out, make modifications based on their feedback, and repeat. And repeat. And repeat. Give different versions to different testers, change groups mind-process, whatever.

When does beta testing end? Whenever you decide it has. There is no real end to beta testing... you just have to decide when to stop.

Make sure you give your testers a deadline with each version. You have to begin working on the next version. Let them know what format you need their responses in, and weather you want a transcript of their play. I recommend that you do get a transcript... next to standing over their shoulder and watching them play, this is the best you can do. You can see what parts of the game they get stuck on, and what things they try, what seems logical to them.

Its a good practice to give all of your testers feedback, if only to say thank you.

What should beta testers look for? Typos. Spelling errors. Interactivity with all things... everything mentioned in the room descriptions should be there, if only to examine. Missing synonyms you think are logical for both nouns and verbs. NPC interactivity. Whatever.

GROUP ACTIVITY:

1. "Beta test" an already released AIF game. Try and break it. Post your results.


Polish

Congratulations! You have made a fully functional, working game. Are you ready for release?

Perhaps. You could just get the game out now... or you can add a little polish to help it stand out. There are several things you can do to give your game that little extra edge.

This is, however, a nice time to announce the existence of your game, and suggest a potential release date. Doing so earlier creates meaningless hype for a game you may never finish... promising a game you never deliver on can only hurt your credibility.

Most AIF platforms now allow for the inclusion of both graphics and sound. Title screens, end scenes, important event/character introduction cut scenes... all of these can enhance a game. Some AIF has gone so far as to include graphics for every location, and some (plan 69, sexbot) have used graphics instead of text for the sex scenes. How much or little you use is your choice.

If you cannot draw the graphics yourself, or take photos, you can hook up with an artist or photographer to provide this for you. Tell them what you need, give them a deadline, and let them at it. you could simply use pictures snagged off the web, but if it isn't public domain, you can get in some legal trouble.

Using music or sound effects is similar.

In general, if you are to outsource your art or music, have an idea of what you need by the time you begin coding. This will give your artist time to finish up.

Feelies are another issue, and one that hasn't come up in AIF. What's a feelie? A feelie as I'm using the term here is basically anything "extra" included with a game. Back in the day Infocom included little extras with some games... keys, necklaces, rocks, whatever. As a primarily electronically distributed media, AIF feelies are likely to take the form of graphic and text files.

Decide if you are going to include any feelies in the distribution of your game.

Possible Ideas:

If your game has a readme file, nows the time to make it. Include whatever instructions you feel necessary for people to play your game. Include contact information.

All that's left is to release your game to the world. Upload it somewhere, announce its release, and deal with your feedback. Ignore it, revel in it, or use it to make a new version of your game. Its all up to you.

Thats it. Feedback? Anything I didn't cover? Any questions?

GROUP ACTIVITY: Make a game, dammit!



Hosted by www.Geocities.ws

1