home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 19 Adventure Games / ADVGAM.CNF < prev    next >
Encoding:
Text File  |  2019-04-13  |  19.0 KB  |  511 lines

  1. Transcript of the Adventure Game COnference
  2. from the CBMART forum on CompuServe.
  3.  
  4. 10/21/88
  5.  
  6. Moderated and edited by Todd Heimarck (ToddH)
  7. ---------------------------------------------
  8. ! =  I have a comment.
  9. ? =  I have a question.
  10. ga = GA = Ga = go ahead.
  11. ---------------------------------------------
  12.  
  13. The COnference begins at 6 PM PDT (9 PM Eastern)...
  14.  
  15.  
  16. ToddH/Sysop: I've read some Dungeons & Dragons books, and one
  17. point they make is that you've got to make a setting realistic.
  18. For example, if you have 50 trolls in one room, where do they get
  19. their food?  (By the way, are my words coming through OK?  I'm
  20. getting garbage on my end.) ga
  21.  
  22. Lex: !
  23.  
  24. ToddH/Sysop: Lex, ga
  25.  
  26. Stephen: !
  27.  
  28. Lex: (You're coming in clear.)  A problem is how much of the
  29. setting do you have to develop?  For example if the setting is a
  30. town, do you design every building?  ga
  31.  
  32. ToddH/Sysop: I would think so...
  33.  
  34. Chad: !
  35.  
  36. ToddH/Sysop: ...but you don't necessarily have to put treasure or
  37. monsters in every house.
  38.  
  39. ToddH/Sysop: Stephen, ga.
  40.  
  41. Stephen: About realism -- I wish computer role-playing games
  42. would STOP making their mazes have a 'wrap-around' ability.  A
  43. couple of teleporter squares are OK, but a hallway that wraps
  44. around on itself after a mere 16 or so steps is absolutely
  45. ridiculous.  GA.
  46.  
  47. ToddH/Sysop: I'm going to add a new rule.  I just realized that
  48. this CO is unusual because we don't have an official guest
  49. speaker, so type ! for a brand new comment or topic.  Type !! for
  50. the same topic.  Chad, ga.
  51.  
  52. Chad: I think the settings can be as complicated as you want to
  53. make them or as simple as you want.  It all depends on how
  54. complicated you are planning to make the game and how much programming time you are willing to spend on it.  Ga
  55.  
  56. Stephen: !
  57.  
  58. ToddH/Sysop: Stephen, ga
  59.  
  60. Lex: ?
  61.  
  62. Stephen: About settings, just watch out that you don't go to all
  63. the trouble to make the PERFECT town, with explicit detail in
  64. every building just to run out of memory, or simply become tired
  65. of programming ...
  66.  
  67. William: !
  68.  
  69. ToddH/Sysop: I think there's a balance to be struck...
  70.  
  71. Stephen: ...and make a lousy dungeon, or scenario.  GA
  72.  
  73. ToddH/Sysop: The main thing is that the game is FUN for the
  74. player.  So in a sense, the question of detail is this:  Does a
  75. lot of detail make the game fun?  If so, then do it.  You
  76. probably also want a goal, like rescuing the maiden in distress
  77. or getting a quillion dollars worth of gold.  And you probably
  78. want puzzles (a door that won't open without a key, say, or a
  79. sphinx with a riddle).  Lex, ga.
  80.  
  81. Lex: Having been a Dungeon Master of D&D for over 10 years, I
  82. have many...
  83.  
  84. William: The trouble with explicit detail is...
  85.  
  86. Lex: ...adventures that I would like to convert to a computer
  87. game.  My question is, how do you decide what to keep and what to
  88. throw away? GA
  89.  
  90. ToddH/Sysop: Anybody want to answer that?  No answer.  OK, I
  91. will.  There are a couple of limits.  One is how good are you at
  92. programming?  Certain things are really hard to do.  Another is
  93. memory.  Your computer only has X number of bytes.  If you do too
  94. much, you have to go to the disk drive.  William, ga.
  95.  
  96. William: I just wanted to add that the amount of detail used in
  97. an adventure also results in the programmer having to think of
  98. various inputs by the player.  GA
  99.  
  100. Stephen: ??
  101.  
  102. ToddH/Sysop: Stephen, ga.
  103.  
  104. Stephen: Let's talk about parsers.  I've been wanting to do one
  105. for a game I'm working on, but I don't know where to start.
  106. Also, I would prefer to do a parser that recognizes MORE than
  107. just the verb-noun syntax.  Without getting into too much
  108. detailed program-instruction level talk, does anyone know where
  109. to start?  Ga
  110.  
  111. ToddH/Sysop: I was thinking about that tonight as I was stuck in
  112. traffic.  I thought about three types of "parsers" from simple to
  113. complex.  The first is very ugly.  It's like one of those dumb
  114. books that say, "If you fight the troll, turn to page 33.  If you
  115. run away, turn to page 56."  It's not a parser at all; it's just
  116. a series of decisions.  The second is a fixed list of commands
  117. (usually on a menu).  You give the player about 10 choices:
  118. (F)ight, (G)o, (L)ook, etc.  I've seen some games like that that
  119. work reasonably well.  The third is a real parser that figures
  120. out the meaning of GO NORTH.  One way to do it (maybe not the
  121. best) is to list every single verb and every single noun and mark
  122. which ones make sense.  EAT FOOD is OK, EAT SWORD is not OK.  You
  123. could put the results in a two-dimensional array, with a code
  124. that tells the program where to go.  Any comments?
  125.  
  126. Chad: !! (does this mean same subject?)
  127.  
  128. ToddH/Sysop: Yes.  GA, Chad.
  129.  
  130. Lex: !!
  131.  
  132. Chad: I just finished a simple adventure written totally in C.  I
  133. did it mainly for practice in C programming, but I did write a
  134. simple parser for it.  At first I was going to make use of a menu
  135. system like you described, but I didn't think the game would
  136. feel...
  137.  
  138. Stephen: ?s (same subject)
  139.  
  140. Chad: ...like a "real" adventure game.  I ended up writing a
  141. parser that would accept commands in verb/noun format that was
  142. mentioned before.  The way I set it up was to put all of the
  143. characters up to the first space into a string and then all of
  144. the characters after the verb into a second string.  I then
  145. compared the first string to a list of commands set up in an
  146. array.  For each command I had a function set up which then
  147. evaluated the noun to see if it would work with that command.
  148. I'm sure there is probably a better way to write a parser, but
  149. that is how I managed to write a working one.  Ga
  150.  
  151. ToddH/Sysop: Let's use !! and ?? for "same subject."  Lex, ga.
  152.  
  153. Lex: In a BASIC version of a Scott Adams' adventure, he used a
  154. similar parser, like Chad's.  Verbs, nouns, adjectives and
  155. conjunctions were put in separate arrays.  The verb number was
  156. used for a ON x GOSUB command.  The subroutine would parse the
  157. rest of the command.  If a noun didn't make sense with the verb,
  158. a standard "You can't do that" message was displayed.  Adjectives
  159. and conjunctions called other subroutines, until the entire
  160. command was interpreted and acted upon.  Ga
  161.  
  162. ToddH/Sysop: Stephen, ga.  No one is next in line.
  163.  
  164. Stephen: Lex brought up the very thing I had a question about --
  165. the "you can't do that" message.  Naturally, that is the easiest
  166. way to handle: unprogrammed commands.  But, it is also the most
  167. boring to the player.  Fancier parsers, like the Infocom ones, at
  168. least say something like "You can't eat that", etc. depending on
  169. the 'foul' word in the phrase.  But, my main question is: What
  170. about words with multiple meanings like RUN -- RUN NORTH, RUN
  171. MACHINE.  Or even worse, ROLL -- ROLL NEWSPAPER, ROLL ROCK ACROSS
  172. FLOOR, EAT ROLL.  I've seen that.  Even the Infocom parser avoids
  173. this problem by carefully arranging that such words only require
  174. one of the possible meanings throughout...
  175.  
  176. Lex: !!
  177.  
  178. Stephen: ...the entire game.  Anyone have any suggestions to make
  179. using such words in DIFFERENT meaning possible?  Ga
  180.  
  181. ToddH/Sysop: Lex, ga.
  182.  
  183. Chad: !!
  184.  
  185. ToddH/Sysop: !!
  186.  
  187. Lex: First, ROLL would check for the curl synonym.  If the noun
  188. doesn't make sense, try the MOVE routine (your 2nd example).  In
  189. the 3rd example, ROLL would be a noun and wouldn't be checked as
  190. a verb.  EAT would be [checked as a verb].  Ga
  191.  
  192. ToddH/Sysop: Chad, ga.  I'm next.
  193.  
  194. Chad: What Lex said would be the most logical way to do it.  But
  195. the problem lies in the fact that the programmer is going to have
  196. to try to guess at all of the possible commands and usages the
  197. user will enter.  The same holds true for printing out error
  198. messages that are interesting.  I love how Infocom handled
  199. "dirty" phrases in "Leather Goddesses of Phobos".  Ga.
  200.  
  201. ToddH/Sysop: Me now.  Nobody is in line.
  202.  
  203. ToddH/Sysop: I have several things to say.  Feel free to
  204. interrupt with ! or ?.  The first is about "bad" programming.  I
  205. think it's nuts to do a sequential search of 500 commands.  A
  206. binary search makes much more sense and is faster.  Say you're
  207. looking up John Smith in the phone book.  You DON'T start with
  208. AAA Locksmith and read forward through every name.  You jump into
  209. the list halfway.  Mick Murrow.  Smith is > Murrow.  In one step,
  210. you've eliminated half the names in the phone book.  Then you
  211. divide the remaining names in half.  Troy Tucker.  Smith is <
  212. Tucker, and so on.  To do this right, you need to alphabetize the
  213. names or commands...
  214.  
  215. ...Another bad programming practice is a labyrinth of IF-THEN
  216. statements.  IF VERB = EAT and NOUN = ROCK THEN GOTO 300... if
  217. verb = eat and noun = troll then goto 300.  You can easily fill
  218. up memory with a zillion IF-THENs.  ON-GOSUB makes a lot more
  219. sense (as someone pointed out earlier) and if you can't fit it on
  220. a line, use ON VERB-10 GOSUB 1,2,3,4,etc.  In Commodore BASIC, a
  221. number that's too big drops you to the next line.  (Anybody have
  222. comments so far?)
  223.  
  224. Chad: !!
  225.  
  226. ToddH/Sysop: Chad, ga.
  227.  
  228. ToddH/Sysop: !
  229.  
  230. Chad: I totally agree with using a binary search.  The only
  231. reason I didn't was because I was writing a simple adventure with
  232. about 20 commands.  Anything much bigger, it would be the only
  233. sensible way to do it.  I also agree with your comments about
  234. using a bunch of IF-THEN statements.  Ga.
  235.  
  236. ToddH/Sysop: I wanted to say something about the C language.
  237. What's really neat about it is that you can use the address of a
  238. function so you could set up a 2-D array and both EAT ROCK and
  239. EAT TROLL would contain pointers to the function that says "Don't
  240. be ridiculous."  You find the address and call the function at
  241. that address.  In BASIC, you have to use ON-GOSUB.  I'd also
  242. argue that the NONSENSE subroutine (or function) should contain
  243. about 50 messages.  You pick one at random.  It's really boring
  244. for a player to see "You can't do that" 600 times.  Any comments?
  245.  
  246. Chad: !!
  247.  
  248. ToddH/Sysop: ga
  249.  
  250. Chad: I am brand new to the C language.  The adventure game I
  251. described was my program written in C, but I really love the
  252. language.  It didn't occur...
  253.  
  254. Stephen: ?
  255.  
  256. Chad: ...to me to set up my program like you just suggested, but
  257. that is just one more way C is so great. Ga
  258.  
  259. ToddH/Sysop: Stephen, ga.
  260.  
  261. ToddH/Sysop: !
  262.  
  263. Stephen: Oops, Lex is next, I think.
  264.  
  265. ToddH/Sysop: Oh.  Lex, ga.  Then Stephen.
  266.  
  267. Lex: In response to the NONSENSE routine: Infocom and others see
  268. the command of EAT TROLL as legal.  However, it doesn't do
  269. anything except display a particular message.  Ga
  270.  
  271. ToddH/Sysop: Stephen, ga.  Then me.
  272.  
  273. Stephen: Changing the subject, I had a question about one of the
  274. other topics planned for tonight.  How to keep a game from being
  275. too easy/difficult.  This can apply to any type of game, but I'm
  276. working on a RPG...
  277.  
  278. Chad: ?? (what is RPG?)
  279.  
  280. Stephen: After playing games like Wizardry, Ultima, etc., I
  281. remember...
  282.  
  283. Stephen: ...(RPG = Role Playing Game)...
  284.  
  285. Stephen: ...my first experience with the game Bard's Tale.  I
  286. spent several minutes creating my party of 6 characters, stepping
  287. outside of the 'Guild' (where the game starts) and encountered 8
  288. Orcs.  I was still unarmed, unarmored, as I hadn't even had a
  289. chance of finding the store, and I was promptly annihilated!  On
  290. the other hand, I found that Bard's Tale 2 felt far too EASY to
  291. start with.  So, how does one go about making the...
  292.  
  293. Lex: !!
  294.  
  295. Stephen: ...game have that PERFECT balance between hard and easy?
  296. Ga
  297.  
  298. ToddH/Sysop: Chad's convention is now official.  If you can fit
  299. the question on one line (80 characters), type this:  ?? What is
  300. RPG?  Lex, ga.
  301.  
  302. ToddH/Sysop: !!
  303.  
  304. Lex: The answer is rather simple, but time consuming.  If you
  305. read the credits to most games, you'll see the PlayTesters.  They
  306. play and play, finding bugs and making suggestions.  So the
  307. simple answer is Test, test and then have your friends test and
  308. test. Ga
  309.  
  310. Stephen: ??
  311.  
  312. ToddH/Sysop: Stephen, ga
  313.  
  314. Stephen: Ok, I don't have a lot of friends with the same computer
  315. as I have (an Apple IIGS), so I foresee a shortage of
  316. playtesters.  In addition I hope that upon completion of my game,
  317. it will be able to contain many new ideas/concepts, and a
  318. completely new, different feel than any other game thus far, so I
  319. hesitate just soliciting for unknown playtesters.  Any ideas as
  320. to how to handle this dilemma?  GA
  321.  
  322. ToddH/Sysop: I have a few comments about the easy/difficult
  323. question.  First, I think that testing is important.  Testers
  324. give you good ideas and they find bugs that you yourself never
  325. imagined.  One danger is this:  Piracy is popular.  You give out
  326. a beta copy of your game and suddenly it's on 500 BBSes around
  327. the country...
  328.  
  329. Chad: ??
  330.  
  331. ToddH/Sysop: ...Another danger is the "lean over the shoulder"
  332. problem.  If the tester can't figure out something, you (the
  333. programmer) are tempted to say "Hey, try dropping the torch.  It
  334. will set the carpet on fire."  In real life, the programmer can't
  335. lean over and give a hint.  One solution to the easy/difficult
  336. problem is to think as a player would think.  For example, I've
  337. seen games that read the disk after every command and it takes 30
  338. seconds.  I guess one rule is "Make it fun."  Another is "Don't
  339. annoy the user."  You might have a great game, but if you make
  340. the player wait 30 seconds between turns, he or she will just get
  341. mad.  Plus, I think sometimes you have to create a room that's
  342. empty.  Nothing's there.  Or give them a tool they'll never use.
  343. You can pick up the crystal of awareness, but it never does
  344. anything.  To sum it up, I think testers can give you valuable
  345. advice.  Chad, ga.
  346.  
  347. Chad: What level of programming is this being approached at?  It
  348. makes a big difference in the testing procedures.  If you are
  349. writing a commercial game you have to have all testers sign
  350. nondisclosure agreements, or ??  If you are just writing it for
  351. fun then you can show it to anyone you can get to come over and
  352. try the game. Ga
  353.  
  354. ToddH/Sysop: I think we're talking in general.  Might be
  355. commercial.  Might be for fun.  Ga, Stephen.  No one is next.
  356.  
  357. Stephen: I hope mine will be 'commercial' quality when I'm
  358. finished.   Chad, do you (or anyone) know if nondisclosure
  359. agreements are 'generic',...
  360.  
  361. Chad: !!
  362.  
  363. Stephen: ...or does one have to hire a lawyer to draw one up on
  364. each and every occasion?  Ga
  365.  
  366. ToddH/Sysop: Chad, ga
  367.  
  368. Chad: A lot depends on the wording of the agreement.  You do have
  369. to have the people sign a new one for each project you show them.
  370. I think I have a book with a sample agreement that is a generic
  371. version.  I'll see if I can find it.  Ga.
  372.  
  373. ToddH/Sysop: I have something to say.  I think you could use a
  374. generic contract with only one new paragraph.  At the top, you
  375. say "Green Aliens from Pluto" is hereafter referred to as "the
  376. program."  Then you call it "the program" in the rest of the
  377. contract.  Because of piracy there is a lot of paranoia in the
  378. software industry.  If you submit a program to a big software
  379. company, they will use a double-non-disclosure agreement.  They
  380. make you promise you didn't steal the program and they promise
  381. they won't steal it from you.  Ed and Betty haven't said anything
  382. tonight.  Do you have any comments about adventure games?  ga
  383.  
  384. Sysop/Betty: !!
  385.  
  386. ToddH/Sysop: Betty, ga.
  387.  
  388. Ed Flinn/Sysop: !!
  389.  
  390. Sysop/Betty: I was wondering if before you start writing an
  391. adventure game, do you make a "flow chart" or "map" and then
  392. follow that logic with your coding?  ga
  393.  
  394. ToddH/Sysop: Chad, you've written adventure games.  Wanna answer
  395. that one?  ga
  396.  
  397. Chad: OK.  The way I started with my game was to first draw up a
  398. map of all the rooms and what they contained.  Then I made a list
  399. of all the commands the parser would respond to and what those
  400. commands would do.  I also wrote down any kind of puzzles or
  401. interesting twists in the game that I wanted.  After that I
  402. really didn't use any sort of flow charting.  I did do a little
  403. pseudo-code for the major routines but not very much, but then
  404. that is my programming style...
  405.  
  406. Sysop/Betty: Thanks, Chad.  ga
  407.  
  408. ToddH/Sysop: Lex, you've written D&D scenarios.  Want to add
  409. anything about games?  ga
  410.  
  411. Chad: ...I think everyone writes programs differently, so it is
  412. really up to you.
  413.  
  414. ToddH/Sysop: OK.  Lex, any comments about games in general?
  415.  
  416. Lex: Well, I always start with the ending.  I decide what the
  417. goal is and then work on how the people would get there.  If it
  418. seems too easy, I work on puzzles and problems.  But, mostly I
  419. work on the mood.  My adventures are always good versus evil, and
  420. (hopefully) good triumphs.  To set the mood, I spend a lot of
  421. time on descriptions.  Also, I make sure that everything makes
  422. sense.  I dislike being asked "Why is this here?" without having
  423. a GOOD answer.  Ga.
  424.  
  425. ToddH/Sysop: In a sense that's "top-down" programming.  Start
  426. with the goal and work backwards from there.  I guess I disagree
  427. with Chad a little:  I don't think adventure programming is a
  428. coding problem.  He mentioned pseudo-code, which is a valuable
  429. tool, but (personally) I would start with the data structures.
  430. I've got this map.  I've got these commands.  I have magic
  431. spells.  How do I store them in arrays (or (in C) in structures)?
  432. If I know how to store the data, the code is easier to write.
  433.  
  434. Chad: !!
  435.  
  436. ToddH/Sysop: Ed, you're next.  Then Chad.  ga.
  437.  
  438. Ed Flinn/Sysop: OK.  Nothing profound to say.  I think some
  439. people weren't meant to play adventure games.  I enjoy them, but
  440. I never get very far.  As a programmer, I'm supposed to be good
  441. at working with logic, but I never get very far <grin>.  Ga.
  442.  
  443. ToddH/Sysop: That's the same question we discussed earlier: the
  444. too easy/too tough problem.  I hate (*H*A*T*E*) games where I die
  445. in the first 3 turns.  But if I solve it in 3 minutes and reach
  446. the goal, I feel cheated.  Chad, ga.
  447.  
  448. Chad: I didn't mention it when I described what I did while
  449. setting up my game, but...
  450.  
  451. Lex: !!
  452.  
  453. Chad: ...I did do all of the data structures right after I
  454. finished my map.  I had to decide how to do my room links and
  455. room descriptions, which was a major part of the task.  I also
  456. want to mention that I agree with Ed.  I like to program
  457. adventure games but not play them.  I got through Zork I and then
  458. decided I would never play a major adventure game again.  Ga
  459.  
  460. ToddH/Sysop: Lex: I wasn't criticizing you.  I just wanted to
  461. suggest another approach.  The CO is scheduled to end now, but I
  462. think we should continue as long as people have comments.
  463. Stephen has left (but he said he'd download the transcript to see
  464. what he missed)...
  465.  
  466. Chad: !!
  467.  
  468. ToddH/Sysop: Something to think about is "Which games are great
  469. and why?"  Lex, ga.
  470.  
  471. Lex: I think that the term "too easy/too difficult" is too
  472. generic.  I run two games: one for experts and one for novices.
  473. So I feel that adventure games can be geared toward either
  474. audience.  Ga
  475.  
  476. ToddH/Sysop: You have a good point.  Maybe adventure games should
  477. alternate between easy and tough: Let the player win, win, win,
  478. then he loses.  He gets stuck at some point until he figures out
  479. the puzzle.  Chad, ga.
  480.  
  481. ToddH/Sysop: !
  482.  
  483. Chad: I'm sorry to say I have to go too.  I'll be sure to
  484. download the transcript.  This has been great and I think we
  485. should plan on doing it again sometime.  Bye.  Ga
  486.  
  487. ToddH/Sysop: Bye, Chad.
  488.  
  489. Lex: I second that motion.
  490.  
  491. ToddH/Sysop: I guess that's the end of the CO...
  492.  
  493. Lex: Great job, Todd!
  494.  
  495. ToddH/Sysop: To other sysops: Should we huddle in CO after it
  496. ends?  Thanks Lex.
  497.  
  498. Sysop/Betty: Thanks for a great job of moderating, Todd.
  499.  
  500. Ed Flinn/Sysop: If ya want.
  501.  
  502. Sysop/Betty: OK.
  503.  
  504. ToddH/Sysop: For 5-10 minutes, I think.
  505.  
  506. Ed Flinn/Sysop: OK, lemme close my capture.
  507.  
  508. ---
  509.  
  510. ...and that ended the COnference about adventure games.
  511.