home *** CD-ROM | disk | FTP | other *** search
- Transcript of the Adventure Game COnference
- from the CBMART forum on CompuServe.
-
- 10/21/88
-
- Moderated and edited by Todd Heimarck (ToddH)
- ---------------------------------------------
- ! = I have a comment.
- ? = I have a question.
- ga = GA = Ga = go ahead.
- ---------------------------------------------
-
- The COnference begins at 6 PM PDT (9 PM Eastern)...
-
-
- ToddH/Sysop: I've read some Dungeons & Dragons books, and one
- point they make is that you've got to make a setting realistic.
- For example, if you have 50 trolls in one room, where do they get
- their food? (By the way, are my words coming through OK? I'm
- getting garbage on my end.) ga
-
- Lex: !
-
- ToddH/Sysop: Lex, ga
-
- Stephen: !
-
- Lex: (You're coming in clear.) A problem is how much of the
- setting do you have to develop? For example if the setting is a
- town, do you design every building? ga
-
- ToddH/Sysop: I would think so...
-
- Chad: !
-
- ToddH/Sysop: ...but you don't necessarily have to put treasure or
- monsters in every house.
-
- ToddH/Sysop: Stephen, ga.
-
- Stephen: About realism -- I wish computer role-playing games
- would STOP making their mazes have a 'wrap-around' ability. A
- couple of teleporter squares are OK, but a hallway that wraps
- around on itself after a mere 16 or so steps is absolutely
- ridiculous. GA.
-
- ToddH/Sysop: I'm going to add a new rule. I just realized that
- this CO is unusual because we don't have an official guest
- speaker, so type ! for a brand new comment or topic. Type !! for
- the same topic. Chad, ga.
-
- Chad: I think the settings can be as complicated as you want to
- make them or as simple as you want. It all depends on how
- complicated you are planning to make the game and how muchprogramming time you are willing to spend on it. Ga
-
- Stephen: !
-
- ToddH/Sysop: Stephen, ga
-
- Lex: ?
-
- Stephen: About settings, just watch out that you don't go to all
- the trouble to make the PERFECT town, with explicit detail in
- every building just to run out of memory, or simply become tired
- of programming ...
-
- William: !
-
- ToddH/Sysop: I think there's a balance to be struck...
-
- Stephen: ...and make a lousy dungeon, or scenario. GA
-
- ToddH/Sysop: The main thing is that the game is FUN for the
- player. So in a sense, the question of detail is this: Does a
- lot of detail make the game fun? If so, then do it. You
- probably also want a goal, like rescuing the maiden in distress
- or getting a quillion dollars worth of gold. And you probably
- want puzzles (a door that won't open without a key, say, or a
- sphinx with a riddle). Lex, ga.
-
- Lex: Having been a Dungeon Master of D&D for over 10 years, I
- have many...
-
- William: The trouble with explicit detail is...
-
- Lex: ...adventures that I would like to convert to a computer
- game. My question is, how do you decide what to keep and what to
- throw away? GA
-
- ToddH/Sysop: Anybody want to answer that? No answer. OK, I
- will. There are a couple of limits. One is how good are you at
- programming? Certain things are really hard to do. Another is
- memory. Your computer only has X number of bytes. If you do too
- much, you have to go to the disk drive. William, ga.
-
- William: I just wanted to add that the amount of detail used in
- an adventure also results in the programmer having to think of
- various inputs by the player. GA
-
- Stephen: ??
-
- ToddH/Sysop: Stephen, ga.
-
- Stephen: Let's talk about parsers. I've been wanting to do one
- for a game I'm working on, but I don't know where to start.
- Also, I would prefer to do a parser that recognizes MORE than
- just the verb-noun syntax. Without getting into too much
- detailed program-instruction level talk, does anyone know where
- to start? Ga
-
- ToddH/Sysop: I was thinking about that tonight as I was stuck in
- traffic. I thought about three types of "parsers" from simple to
- complex. The first is very ugly. It's like one of those dumb
- books that say, "If you fight the troll, turn to page 33. If you
- run away, turn to page 56." It's not a parser at all; it's just
- a series of decisions. The second is a fixed list of commands
- (usually on a menu). You give the player about 10 choices:
- (F)ight, (G)o, (L)ook, etc. I've seen some games like that that
- work reasonably well. The third is a real parser that figures
- out the meaning of GO NORTH. One way to do it (maybe not the
- best) is to list every single verb and every single noun and mark
- which ones make sense. EAT FOOD is OK, EAT SWORD is not OK. You
- could put the results in a two-dimensional array, with a code
- that tells the program where to go. Any comments?
-
- Chad: !! (does this mean same subject?)
-
- ToddH/Sysop: Yes. GA, Chad.
-
- Lex: !!
-
- Chad: I just finished a simple adventure written totally in C. I
- did it mainly for practice in C programming, but I did write a
- simple parser for it. At first I was going to make use of a menu
- system like you described, but I didn't think the game would
- feel...
-
- Stephen: ?s (same subject)
-
- Chad: ...like a "real" adventure game. I ended up writing a
- parser that would accept commands in verb/noun format that was
- mentioned before. The way I set it up was to put all of the
- characters up to the first space into a string and then all of
- the characters after the verb into a second string. I then
- compared the first string to a list of commands set up in an
- array. For each command I had a function set up which then
- evaluated the noun to see if it would work with that command.
- I'm sure there is probably a better way to write a parser, but
- that is how I managed to write a working one. Ga
-
- ToddH/Sysop: Let's use !! and ?? for "same subject." Lex, ga.
-
- Lex: In a BASIC version of a Scott Adams' adventure, he used a
- similar parser, like Chad's. Verbs, nouns, adjectives and
- conjunctions were put in separate arrays. The verb number was
- used for a ON x GOSUB command. The subroutine would parse the
- rest of the command. If a noun didn't make sense with the verb,
- a standard "You can't do that" message was displayed. Adjectives
- and conjunctions called other subroutines, until the entire
- command was interpreted and acted upon. Ga
-
- ToddH/Sysop: Stephen, ga. No one is next in line.
-
- Stephen: Lex brought up the very thing I had a question about --
- the "you can't do that" message. Naturally, that is the easiest
- way to handle: unprogrammed commands. But, it is also the most
- boring to the player. Fancier parsers, like the Infocom ones, at
- least say something like "You can't eat that", etc. depending on
- the 'foul' word in the phrase. But, my main question is: What
- about words with multiple meanings like RUN -- RUN NORTH, RUN
- MACHINE. Or even worse, ROLL -- ROLL NEWSPAPER, ROLL ROCK ACROSS
- FLOOR, EAT ROLL. I've seen that. Even the Infocom parser avoids
- this problem by carefully arranging that such words only require
- one of the possible meanings throughout...
-
- Lex: !!
-
- Stephen: ...the entire game. Anyone have any suggestions to make
- using such words in DIFFERENT meaning possible? Ga
-
- ToddH/Sysop: Lex, ga.
-
- Chad: !!
-
- ToddH/Sysop: !!
-
- Lex: First, ROLL would check for the curl synonym. If the noun
- doesn't make sense, try the MOVE routine (your 2nd example). In
- the 3rd example, ROLL would be a noun and wouldn't be checked as
- a verb. EAT would be [checked as a verb]. Ga
-
- ToddH/Sysop: Chad, ga. I'm next.
-
- Chad: What Lex said would be the most logical way to do it. But
- the problem lies in the fact that the programmer is going to have
- to try to guess at all of the possible commands and usages the
- user will enter. The same holds true for printing out error
- messages that are interesting. I love how Infocom handled
- "dirty" phrases in "Leather Goddesses of Phobos". Ga.
-
- ToddH/Sysop: Me now. Nobody is in line.
-
- ToddH/Sysop: I have several things to say. Feel free to
- interrupt with ! or ?. The first is about "bad" programming. I
- think it's nuts to do a sequential search of 500 commands. A
- binary search makes much more sense and is faster. Say you're
- looking up John Smith in the phone book. You DON'T start with
- AAA Locksmith and read forward through every name. You jump into
- the list halfway. Mick Murrow. Smith is > Murrow. In one step,
- you've eliminated half the names in the phone book. Then you
- divide the remaining names in half. Troy Tucker. Smith is <
- Tucker, and so on. To do this right, you need to alphabetize the
- names or commands...
-
- ...Another bad programming practice is a labyrinth of IF-THEN
- statements. IF VERB = EAT and NOUN = ROCK THEN GOTO 300... if
- verb = eat and noun = troll then goto 300. You can easily fill
- up memory with a zillion IF-THENs. ON-GOSUB makes a lot more
- sense (as someone pointed out earlier) and if you can't fit it on
- a line, use ON VERB-10 GOSUB 1,2,3,4,etc. In Commodore BASIC, a
- number that's too big drops you to the next line. (Anybody have
- comments so far?)
-
- Chad: !!
-
- ToddH/Sysop: Chad, ga.
-
- ToddH/Sysop: !
-
- Chad: I totally agree with using a binary search. The only
- reason I didn't was because I was writing a simple adventure with
- about 20 commands. Anything much bigger, it would be the only
- sensible way to do it. I also agree with your comments about
- using a bunch of IF-THEN statements. Ga.
-
- ToddH/Sysop: I wanted to say something about the C language.
- What's really neat about it is that you can use the address of a
- function so you could set up a 2-D array and both EAT ROCK and
- EAT TROLL would contain pointers to the function that says "Don't
- be ridiculous." You find the address and call the function at
- that address. In BASIC, you have to use ON-GOSUB. I'd also
- argue that the NONSENSE subroutine (or function) should contain
- about 50 messages. You pick one at random. It's really boring
- for a player to see "You can't do that" 600 times. Any comments?
-
- Chad: !!
-
- ToddH/Sysop: ga
-
- Chad: I am brand new to the C language. The adventure game I
- described was my program written in C, but I really love the
- language. It didn't occur...
-
- Stephen: ?
-
- Chad: ...to me to set up my program like you just suggested, but
- that is just one more way C is so great. Ga
-
- ToddH/Sysop: Stephen, ga.
-
- ToddH/Sysop: !
-
- Stephen: Oops, Lex is next, I think.
-
- ToddH/Sysop: Oh. Lex, ga. Then Stephen.
-
- Lex: In response to the NONSENSE routine: Infocom and others see
- the command of EAT TROLL as legal. However, it doesn't do
- anything except display a particular message. Ga
-
- ToddH/Sysop: Stephen, ga. Then me.
-
- Stephen: Changing the subject, I had a question about one of the
- other topics planned for tonight. How to keep a game from being
- too easy/difficult. This can apply to any type of game, but I'm
- working on a RPG...
-
- Chad: ?? (what is RPG?)
-
- Stephen: After playing games like Wizardry, Ultima, etc., I
- remember...
-
- Stephen: ...(RPG = Role Playing Game)...
-
- Stephen: ...my first experience with the game Bard's Tale. I
- spent several minutes creating my party of 6 characters, stepping
- outside of the 'Guild' (where the game starts) and encountered 8
- Orcs. I was still unarmed, unarmored, as I hadn't even had a
- chance of finding the store, and I was promptly annihilated! On
- the other hand, I found that Bard's Tale 2 felt far too EASY to
- start with. So, how does one go about making the...
-
- Lex: !!
-
- Stephen: ...game have that PERFECT balance between hard and easy?
- Ga
-
- ToddH/Sysop: Chad's convention is now official. If you can fit
- the question on one line (80 characters), type this: ?? What is
- RPG? Lex, ga.
-
- ToddH/Sysop: !!
-
- Lex: The answer is rather simple, but time consuming. If you
- read the credits to most games, you'll see the PlayTesters. They
- play and play, finding bugs and making suggestions. So the
- simple answer is Test, test and then have your friends test and
- test. Ga
-
- Stephen: ??
-
- ToddH/Sysop: Stephen, ga
-
- Stephen: Ok, I don't have a lot of friends with the same computer
- as I have (an Apple IIGS), so I foresee a shortage of
- playtesters. In addition I hope that upon completion of my game,
- it will be able to contain many new ideas/concepts, and a
- completely new, different feel than any other game thus far, so I
- hesitate just soliciting for unknown playtesters. Any ideas as
- to how to handle this dilemma? GA
-
- ToddH/Sysop: I have a few comments about the easy/difficult
- question. First, I think that testing is important. Testers
- give you good ideas and they find bugs that you yourself never
- imagined. One danger is this: Piracy is popular. You give out
- a beta copy of your game and suddenly it's on 500 BBSes around
- the country...
-
- Chad: ??
-
- ToddH/Sysop: ...Another danger is the "lean over the shoulder"
- problem. If the tester can't figure out something, you (the
- programmer) are tempted to say "Hey, try dropping the torch. It
- will set the carpet on fire." In real life, the programmer can't
- lean over and give a hint. One solution to the easy/difficult
- problem is to think as a player would think. For example, I've
- seen games that read the disk after every command and it takes 30
- seconds. I guess one rule is "Make it fun." Another is "Don't
- annoy the user." You might have a great game, but if you make
- the player wait 30 seconds between turns, he or she will just get
- mad. Plus, I think sometimes you have to create a room that's
- empty. Nothing's there. Or give them a tool they'll never use.
- You can pick up the crystal of awareness, but it never does
- anything. To sum it up, I think testers can give you valuable
- advice. Chad, ga.
-
- Chad: What level of programming is this being approached at? It
- makes a big difference in the testing procedures. If you are
- writing a commercial game you have to have all testers sign
- nondisclosure agreements, or ?? If you are just writing it for
- fun then you can show it to anyone you can get to come over and
- try the game. Ga
-
- ToddH/Sysop: I think we're talking in general. Might be
- commercial. Might be for fun. Ga, Stephen. No one is next.
-
- Stephen: I hope mine will be 'commercial' quality when I'm
- finished. Chad, do you (or anyone) know if nondisclosure
- agreements are 'generic',...
-
- Chad: !!
-
- Stephen: ...or does one have to hire a lawyer to draw one up on
- each and every occasion? Ga
-
- ToddH/Sysop: Chad, ga
-
- Chad: A lot depends on the wording of the agreement. You do have
- to have the people sign a new one for each project you show them.
- I think I have a book with a sample agreement that is a generic
- version. I'll see if I can find it. Ga.
-
- ToddH/Sysop: I have something to say. I think you could use a
- generic contract with only one new paragraph. At the top, you
- say "Green Aliens from Pluto" is hereafter referred to as "the
- program." Then you call it "the program" in the rest of the
- contract. Because of piracy there is a lot of paranoia in the
- software industry. If you submit a program to a big software
- company, they will use a double-non-disclosure agreement. They
- make you promise you didn't steal the program and they promise
- they won't steal it from you. Ed and Betty haven't said anything
- tonight. Do you have any comments about adventure games? ga
-
- Sysop/Betty: !!
-
- ToddH/Sysop: Betty, ga.
-
- Ed Flinn/Sysop: !!
-
- Sysop/Betty: I was wondering if before you start writing an
- adventure game, do you make a "flow chart" or "map" and then
- follow that logic with your coding? ga
-
- ToddH/Sysop: Chad, you've written adventure games. Wanna answer
- that one? ga
-
- Chad: OK. The way I started with my game was to first draw up a
- map of all the rooms and what they contained. Then I made a list
- of all the commands the parser would respond to and what those
- commands would do. I also wrote down any kind of puzzles or
- interesting twists in the game that I wanted. After that I
- really didn't use any sort of flow charting. I did do a little
- pseudo-code for the major routines but not very much, but then
- that is my programming style...
-
- Sysop/Betty: Thanks, Chad. ga
-
- ToddH/Sysop: Lex, you've written D&D scenarios. Want to add
- anything about games? ga
-
- Chad: ...I think everyone writes programs differently, so it is
- really up to you.
-
- ToddH/Sysop: OK. Lex, any comments about games in general?
-
- Lex: Well, I always start with the ending. I decide what the
- goal is and then work on how the people would get there. If it
- seems too easy, I work on puzzles and problems. But, mostly I
- work on the mood. My adventures are always good versus evil, and
- (hopefully) good triumphs. To set the mood, I spend a lot of
- time on descriptions. Also, I make sure that everything makes
- sense. I dislike being asked "Why is this here?" without having
- a GOOD answer. Ga.
-
- ToddH/Sysop: In a sense that's "top-down" programming. Start
- with the goal and work backwards from there. I guess I disagree
- with Chad a little: I don't think adventure programming is a
- coding problem. He mentioned pseudo-code, which is a valuable
- tool, but (personally) I would start with the data structures.
- I've got this map. I've got these commands. I have magic
- spells. How do I store them in arrays (or (in C) in structures)?
- If I know how to store the data, the code is easier to write.
-
- Chad: !!
-
- ToddH/Sysop: Ed, you're next. Then Chad. ga.
-
- Ed Flinn/Sysop: OK. Nothing profound to say. I think some
- people weren't meant to play adventure games. I enjoy them, but
- I never get very far. As a programmer, I'm supposed to be good
- at working with logic, but I never get very far <grin>. Ga.
-
- ToddH/Sysop: That's the same question we discussed earlier: the
- too easy/too tough problem. I hate (*H*A*T*E*) games where I die
- in the first 3 turns. But if I solve it in 3 minutes and reach
- the goal, I feel cheated. Chad, ga.
-
- Chad: I didn't mention it when I described what I did while
- setting up my game, but...
-
- Lex: !!
-
- Chad: ...I did do all of the data structures right after I
- finished my map. I had to decide how to do my room links and
- room descriptions, which was a major part of the task. I also
- want to mention that I agree with Ed. I like to program
- adventure games but not play them. I got through Zork I and then
- decided I would never play a major adventure game again. Ga
-
- ToddH/Sysop: Lex: I wasn't criticizing you. I just wanted to
- suggest another approach. The CO is scheduled to end now, but I
- think we should continue as long as people have comments.
- Stephen has left (but he said he'd download the transcript to see
- what he missed)...
-
- Chad: !!
-
- ToddH/Sysop: Something to think about is "Which games are great
- and why?" Lex, ga.
-
- Lex: I think that the term "too easy/too difficult" is too
- generic. I run two games: one for experts and one for novices.
- So I feel that adventure games can be geared toward either
- audience. Ga
-
- ToddH/Sysop: You have a good point. Maybe adventure games should
- alternate between easy and tough: Let the player win, win, win,
- then he loses. He gets stuck at some point until he figures out
- the puzzle. Chad, ga.
-
- ToddH/Sysop: !
-
- Chad: I'm sorry to say I have to go too. I'll be sure to
- download the transcript. This has been great and I think we
- should plan on doing it again sometime. Bye. Ga
-
- ToddH/Sysop: Bye, Chad.
-
- Lex: I second that motion.
-
- ToddH/Sysop: I guess that's the end of the CO...
-
- Lex: Great job, Todd!
-
- ToddH/Sysop: To other sysops: Should we huddle in CO after it
- ends? Thanks Lex.
-
- Sysop/Betty: Thanks for a great job of moderating, Todd.
-
- Ed Flinn/Sysop: If ya want.
-
- Sysop/Betty: OK.
-
- ToddH/Sysop: For 5-10 minutes, I think.
-
- Ed Flinn/Sysop: OK, lemme close my capture.
-
- ---
-
- ...and that ended the COnference about adventure games.