Four in One

Four in One - TADS - Progress Chart
-----------------------------------

7-16-98  Transcript typed

7-16-98  4in1.T file opened; basic rooms built.

7-17-98  Room descriptions filled out.  Failed to get a clean compile.

7-18-98 (3:47am)  First successful compile.  All rooms built (except
		rigging).  Groucho NPC created as dummy char due to
		referencing in code. (~300 lines)

7-19-98 (3:12am)  Added all NPCs, including nearly twenty who didn't
		show up in the playtest.  Added daemon to hopefully stockpile
		these NPCs one at a time into Chico's room every 12 turns or
		so.  Haven't compiled yet to test. (~600 lines)

		(3:48am)  Finally compiled. Weird compiler error caused by
		improper use of {} for a simple two-line modify command made
		me tear my hair out. After axing all the new code for NPCs I
		just typed I was still getting the error on a line that was
		fine yesterday and had no typo.  It came about fifteen lines
		up from the bad modify command. Go figure.  (990 lines)

7-20-98 (4:38am)  Added to basic Actor class: code for following,
		saying Hello to the player.  Take/Drop correspond to follow
		commands.  (1100 lines or so)

		(4:59am)  The above worked, activating an actorDaemon called
		"follow," but because it was a daemon it didn't print the
		follow message in the right place.  I wanted it to print
		immediately after the command to move was entered, before
		the enterRoom method is run.  I modified Me's travelTo
		code, and had to create a list followList of the NPCs who
		were currently following the player in order to get it to
		work, but it seems to be.  Hooray.  (1132 lines)

		(5:25am)  Working out kinks to make the output conform to
		the playthrough transcript.  It now says if an NPC is
		following you after their ldesc if you examine them.
		Starting to add individualized following code. Val is
		already following you by default; a couple of characters
		decline to. Next is the Marxes, who will probably have
		their follow code activate their personal daemons (ie,
		Groucho's will count a couple of turns and then make him
		go back to his dressing room if there aren't enough of
		his brothers there, and won't come at all if Zeppo or
		Harpo isn't with you).

		(6:49am)  Whoops! The compiler just informed me that I
		hadn't created Zeppo's NPC yet! Poor Zeppo, left out
		again. I discovered this when working on Groucho's
		special follow code, designed to make him 1) refuse
		to follow without one other Marx being there, 2) stop
		following immediately if he's the only Marx following
		the player, and 3) leave the room if he's the only Marx
		there or if ten turns pass.

		(12:45pm)  Marathon stay here at METRO. Two hours ago
		I had finished both Groucho and Zeppo's basic behavior
		code, apart from a nasty run-time hang caused by forgetting
		the ampersand before the call to actorDaemon. Finally
		fixed that, and now I guess it's on to Chico and Harpo.
		(1334 lines)

		(2:39pm)  Decided to add more bells and whistles to
		Groucho and Zeppo. Now when they make their exits, they
		walk through each room before getting to their destination.
		I caught a funky bug by happening to time it right so that
		Zeppo's 6 turn counter and Groucho's 10 turn counter were
		synchronized, which meant that Groucho was trying to go
		back to his room even as Zeppo was luring him off the lot.
		Dueling daemons; the run-time lost the battle. I put a
		special check for that, and it seems to be working. These
		fellas are acting like they have minds of their own, wow!
		Getting lots done today; I'm amazed that I am actually
		figuring out how to code this game I invented last year.
		(1519 lines)

		(5:08pm)  Okay, I'm well past the twelve hour mark, more
		like fourteen, and I'm starting to get a stiff neck. But,
		now I've got Chico working too. He had the simplest code
		(if all four aren't there, he leaves), but somehow it was
		really complicated to code. Fatigue may have something to
		do with that. And playtesting with 3 working Marxes brought
		out all sorts of strange little quirks and bugs in the NPC
		movement methods, which I've fixed. There are likely more,
		and I haven't even gotten to Harpo yet. That's for tomorrow,
		or whenever I pick it up again.  (1715 lines)

7-21-98	(4:03am)  Four hours of sleep and I'm up and at it again.
		Started around 2:30am, and have ironed out many of the
		kinks with simultaneous Groucho, Chico, and Zeppo code.
		They now have more interrelation: any time Chico mentions
		a phone call, Zeppo (who normally is the most reliable in
		staying with you) immediately leaves to make his own call.
		Groucho is now even more grouchy, counting the minutes
		constantly unless all four of them and you are on the
		set. I've been able to streamline and even remove chunks
		of code I wrote last night that seemed necessary at the
		time; probably more can be done. Now it's on to Harpo.
		I thought of a good bit of business for him while in the
		shower tonight: if he sees the note (even if you're
		holding it) that zeppo and groucho leave behind he
		immediately tears it to littde pieces. His movement
		code is simpler: if there's but one other Marx with
		him he wanders off. I also thought of an "easter egg"
		which you see if you follow Harpo immediately when the
		game first starts -- he goes to the MGM commissary, where
		"More stars than there are in Heaven" are all eating brunch.
		Gable and Crawford and Beery and Harlow and Tracy and
		Stewart, etc. Unless you follow him there you can't get
		to that room, and he only goes there once at the start
		of the game. I'd like to think up more business for harpo
		like the note-tearing in every room of the game, so that
		he's just a busy nuisance to have around.  (1746 lines)

		(7:47am)  Wow. Harpo took a long time to do. There were
		some early frustrations due to the program file getting
		weirdly corrupted so that the compiler was bombing on a
		commented line. Then I had repeated problems with the
		program freezing up during runtime. Had to restart the
		computer about four times. Ugh. Finally used the debugger
		and a simpler solution to the problem and that was that
		for Harpo's random leaving. Playtesting is getting more
		difficult, because it is incredibly difficult to keep
		all four Marxes in the same room, let alone one or two
		of them. Harpo's original code was complicated, too
		complicated, but I reduced it to just the command that
		if Zeppo is there but not Groucho, Harpo will automatically
		leave to a random room. Then you have to leave zeppo behind
		to find harpo, but if you walk past zeppo on the way back
		he leaves again. Or if you try to get groucho first, groucho
		gets tired of wandering around and leaves, and if zeppo
		is there harpo will then leave. Or if you've got all four
		and groucho quits it can cause all four to leave (as it
		did in a playtest just now, which was quite delightful
		and amusing). I think the four boys are pretty much
		set as far as basic behavior actions. I need to add
		some things to some of the other NPCs now, like Scotty,
		Margaret Dumont, and Irving. I've had enough for this
		morning, though, I think.  (1935 lines)

		(8:23am)  I've just been playing through it some more.
		It is actually quite good fun, and it is coming out just
		right. The spirit of the Marx Brothers seems to be
		conjured just by these simple NPC behaviors. The
		frustration of trying to corral them all (which was
		the germ of the idea to begin with) comes through
		very well! However, in my playtest script I wrote a
		solution that involved making Harpo play cards. The
		way it was, I could just manage (just) to get all four
		to the set without any cardplaying code. I decided that
		it had to be impossible to do that, and that I needed
		to change perhaps one simple thing in order to make it
		currently impossible to get all four on the set. The
		way I decided to do it is to reduce Zeppo's wait time
		(before he goes back to the phone) by one turn. Doing
		that makes it impossible not to run into him while
		you're trying to bring Harpo somewhere; they always
		cross paths due to the fact that there are only at
		most 3 rooms Zeppo needs to cross to get to the phone,
		and the farther away you take him the farther you have
		to go to double back to get Harpo. However, this will
		also make the card solution impossible, because it
		makes it dependent on random chance (wherever Harpo
		goes when he wanders off) to get Harpo past Zeppo.
		Unless you get Zeppo and Groucho, go to Harpo, drop
		Zeppo, leave the room where Zeppo is before Groucho
		leaves. When he does, then take Harpo to Chico's
		room, get Zeppo, get Groucho, get Chico and Harpo,
		and hopefully get to the set before Groucho's fuse
		runs out. This is good, in that the playtest I wrote
		doesn't necessarily give away the solution to the
		game, because it's more impossible than that. Oh
		well, thinking about this is quite fun, quite fun. (8:30am)

7-22-98	(6:55am) Didn't get started till about 4am today. First
		I twinked around with modifications based on what I learned
		from reading chapters of the TADS manual yesterday. Then
		I added a "smile" verb. After that, I set about stream-
		lining and improving the travel code for the four Marxes,
		which used a lot of switch() statements and was redundantly
		re-done for each of them. In making a global.roomList of
		the 13 rooms in the game (to make traveling a quick table
		lookup instead of a bunch of case statements), I took the
		opportunity to renumber the rooms (first changing their
		"map = " values to 1-13 from 0-12, because TADS arrays
		count from 1, not 0), and then to reorder them because
		it had been kind of casually and non-intuitively ordered
		before, where GrouchoRoom was 6 but the other three
		dressing rooms were 10-12, and things like that. I haven't
		compiled yet! It's always a bad idea to change so many
		things without compiling in between, because you have to
		chase all over the code to find sniggly little typos that
		make the compiler balk. So, the game should run just the
		same as it did 23 hours ago, but the code is simpler. I
		was hoping to have more bell&whistle improvements to
		enjoy playtesting, but there you are.  (1928 lines)

		(10:13am) Although I have added a couple of routines to
		Harpo (a "chaseGirls" method), most of what I've spent the
		last 3 hours doing is revamping and streamlining code. I
		just finished making a boolean update method for adding or
		removing an NPC from the player's followList. I had been
		writing those lines to add/remove a follower from the list
		seperately over and over again. It finally hit me how
		redundant it was when I wanted to do the chaseGirls
		routine, because the girl who was leaving and Harpo
		both needed to be checked to see if they were following,
		and if so, to stop following, and then leave the room.
		I also did some restructuring of Harpo's (now quite
		complicated) code, making his wandering off a method
		of its own, and things like that. I've also been
		scratching my head over how I've written the NPC
		actorAction methods; I think I've been doing it wrong.
		I'm also convinced I've broken down the follow/drop
		commands incorrectly, but I haven't decided exactly
		what I'm going to do. It will require combing through
		all of the Marxes behavior codes line by line to make
		sure all of it works if I update the generic follow/drop
		methods for all NPCs. This isn't as much fun as adding
		more character behavior in the game, but weeding out
		ineffeciencies in the code provides a certain satis-
		faction. Again I've gone for hours without recompiling;
		silly me.  (2130 lines)

		(1:10pm) Well, that was interesting. Somehow I got off
		on a tangent of beefing up Irving's code, giving him things
		to do. In the middle of doing some of that I did a playtest
		to see if it were possible in the current configuration to
		get all four Marxes into Irving's Office. Because Groucho's
		wait counter pauses when you cross through the startroom
		("On the Set"), you are able to get everyone there with
		one turn to spare. In the back of my mind since I started
		the project I've had the idea that if you take them all
		into Irving's office they go mad, strip you naked, and
		hurl you out. This is of course based on real events I
		heard happened to some poor sap. Coding that was fun, but
		I haven't tried compiling it yet. At first I was going to
		code it so that you can still wander around after that
		fracas, naked, but it would be too much trouble to make
		all NPCs able to react to your state, so I decided to have
		the game end there. Because I did that, I finally put in
		the hard time limit counter (120 turns = "two hours" of
		game time). Oh, that's right. I started working on Irving
		because I wrote Harpo's easter egg chase, which ended in
		Irving's office with the two of them playing cards. Only
		after writing all of the above did I just now put something
		there to say that Irving is playing cards when you see him.
		But I've now reminded myself that I haven't put activation
		code which will enable either the Harpo chase or the Time
		Limit counter, so if I play it now neither of those will
		be in effect. Guess I'll do that, and also get something
		to eat -- it's been hours.  (2439 lines)

		(4:36pm) Well, I finally got the silly thing to compile.
		I had to deal with another of those peculiar compiler
		errors where somehow the file itself has become corrupted
		in a certain spot, such that perfectly fine code, code
		I imported, say, from STD.T without modification, balks.
		A couple of days ago it did this on a commented line. Chopping
		out the offending passage and re-importing it cleanly seemed
		to help. I noted that one character had become a ` mark
		instead of a letter in the problem passage, perhaps the
		only visibe symptom of this mysterious corruption. Other
		than that, all of the new code I just did had relatively
		few errors. Errors are usually typos and not serious coding
		flaws. Time to playtest and see if I can remember everything
		I've added since the last time (when was that, six hours
		ago? Wow.)  (2489 lines)

		(7:07pm) I can't believe it's 7pm. This time I haven't left
		the building since I got here. I've made sure the code I've
		done today works pretty well. I also discovered a handy cheat
		for quickly getting all four assembled. I had made it so that
		if Harpo frightens Margaret Dumont away he goes straight to his
		room instead of moving somewhere random. I didn't do it for
		any particular reason at the time, but I think I will leave
		it in for players to discover. Once he's there you fetch
		Zeppo, then Groucho, then Harpo, and then Chico, all in a
		row -- although I guess I was planning to have Harpo play
		his harp if he ends up in his room (and therefore not willing
		to be interrupted) so maybe that won't ultimately be an
		available cheat. It all seems to be working, with more
		ideas popping up. Appropos of these last two thoughts, the
		big next sequence is to give Harpo a bit a business in every
		room; one of those is in the rigging above the set. If Harpo
		is there too long he'll blow out all of the lights and the
		entire soundstage will fall into complete darkness. I laid
		the groundwork for that earlier today (changing some rooms
		into darkrooms) but haven't done the code for it. Well, I
		guess that's what's in store for tomorrow. Time for me to
		go home and unwind, I think.  (2533 lines)

7-23-98 (9:06am)  Today I'm marking my start time as well.  I didn't
		sleep much again, but I'm still not flagging in stamina or
		enthusiasm. There are several things on the docket today:
		cleaning up/streamlining the follow/drop code, adding the
		startgame and endgame, and whatever bells&whistles occur to
		me to do along the way.

		(11:47am)  Oh oh, I guess my mojo's not working today. Did
		a few clean-up things in Harpo's code, rearrangements mainly.
		Looked at the follow/drop code and decided it worked OK like
		it already is. There's still a problem with Chico's outtaHere
		code, which I'd like to fix. But, I'm going to go have lunch
		and catch a movie instead.

7-24-98	(8:52pm)  I didn't get started until about 3:30 today, and
		took a break for a half hour when a friend dropped by to chat.
		What have I done today, though? Let's see, I spent a lot of
		time adding a "Where is" verb, so that you can ask people
		where other people are. Or more specifically, you can ask
		Scotty the A.D. where anyone or anything is, and he tells
		you. This pointed out a problem: the way it's set up, if you
		want to follow a character TADS requires a separate entity
		called a follower that has all of the same noun attributes
		as the follower's owner. In order to make my whereIsVerb
		work, I had to make it applicable to all objects regardless
		of whether they are in the room with the character. What
		happened is that the parser wanted to disambiguate the
		(for example) real Harpo from the Harpo follower, but
		because they were both referenced by the same noun there
		was no way to specify which. The real problem was that it
		shouldn't have asked you to specify in the first place, which
		meant I needed to eliminate the noun attributes of followers.
		That entailed rewriting the follow code basically from the
		ground up, but I kept the idea of a follower object. I was
		able in doing this to finally change a default response
		that I was annoyed with. When one tried to follow a nonpresent
		actor, it said (e.g.) "I don't see any groucho here." Now it
		says "Groucho isn't here." I just compiled this, but I haven't
		playtested it to make sure following still works as it did
		before. Time to do that, I guess.  (2934 lines)

		(9:32pm)  Ok, time to quit for the night. I did want to
		mention, though, a strange bug I discovered that might be
		in the TADS compiler itself: if you're issuing a command
		to someone, and at the end of that turn they leave the
		room, if you use the command "again" it will process the
		command and issue the response despite the fact that they
		are gone. So I had to add a check to every actorAction
		method to make sure the actor was in the room with the
		player. I shouldn't have had to do that; if I remember
		to, I'll mention it on the rec.arts.int-fiction newsgroup.
		(2966 lines)

7-25-98	(7:06pm) Started about 4:30pm today, and added some code
		to Scotty. Now he can tell you where anyone is and also
		fetch them, bringing them to the set. This was an interesting
		command to allow -- I'm not sure if it affects how the game
		could potentially be won. I've tried to make it so that it's
		really not much of a help to have scotty fetch them one at
		a time. If he brings Groucho, Groucho comes with a fuse so
		short he'll leave before Scotty can bring anyone else there.
		And of course, without groucho, harpo will leave if Zeppo
		is there.

		The good thing about allowing this command, at least at
		the present, is that it pointed out hidden quirks in the
		behavior code I wrote a few days ago. Code I thought was
		set and done was suddenly acting strangely and bringing
		up errors. Mostly it was because I'd hardwired into it
		the assumption that the only force motivating the Marxes
		to move around was the player. For example, Chico is
		supposed to leave if the other three aren't there, but
		he didn't. When I made it clearer that he should, it
		pointed out oddities and redundancies in his dropMsg
		and actorDaemon and travel code. I just cleaned all of
		those up and it seems to work. I even discovered a
		hidden quirk in Zeppo, who for the most part is the
		most well-behaved of the four as far as playtesting.
		His "He isn't following you" message was getting
		double-printed if he left because Chico left (hearing
		the mention of a phone call reminds Zeppo to get back
		to his own call) and if he were not currently following
		you when this occurred. So, the code is getting cleaned
		up, which is nice. Although I already miss the days of
		having great new lively developments one after the
		other. All this work today just to basically make sure
		it worked like it did before. Oh well.  (3051 lines)		

7-27-98	(8:25pm)  Another four or five hours at it today.  I
		started with something fun, writing the script for the
		scene you're supposed to be shooting.  It's not the
		greatest Marx Bros. scene, but it's passable for the
		purposes of the game.  Then I fixed Chico's still-
		problematic travel code and then started tweaking
		things that I'd been wanting to work but hadn't been.
		When I was testing Scotty's ability to go and fetch
		someone and bring them to the set, I kept entering
		the command "Scotty, get <<so-and-so>>", and the
		takeVerb wouldn't parse if so-and-so were elsewhere.
		So, I spent more than an hour, I'm not sure how long,
		tinkering in the machinery of the takeVerb. Along the
		way, I remembered that I wanted to be able to issue
		the command "get everyone" and have all those in the
		room fall in line. It took a long time to figure out
		how to get all NPCs in the room available to the
		"take all" command without, say, having every NPC
		in the game (whether present or not) respond. I was
		for a long time baffled why "drop all" and (my new
		verbs) "find all" and "fetch all" worked correctly
		without any head-scratching run-time snafus but
		"take all" would not.  I thought I'd finally got it
		all working fine, but apparently it only worked for
		"get all."  Issuing a "get <<so-and-so>>" would
		issue their followMsg regardless of their immediate
		presence even though "get all" would take their
		absence into account.  I just fixed that... I think.
		I also added a silly rhetorical-question-and-answer
		feature for when you type "find me."  Oh, I just
		reminded myself to put in an "Xyzzy" verb.  I've
		been trying to think of just what that would do;
		activating Harpo's easter egg hunt is one idea.
		Changing the rules subtly somehow is another. It
		ought to do something (even if it tells you "Nothing
		happens.", something should still happen.)  Okay,
		that's it for now.  (3352 lines)

		(9:30pm)  Okay, I'm pretty fried for the day. I got
		the silly get/take/fetch all/so-and-so stuff working.
		Then I played around, just trying to get all of the
		Marxes on the set, and had a really hard time doing
		it. This is good -- it needs to be impossible without
		getting Chico and Harpo to play cards. Unfortunately,
		that is given away as a solution to anyone who reads
		the playthrough script. Oh well, no big deal. And I
		checked out Harpo's moving around stuff and discovered
		some quirks hidden in the easter egg code. Fixed
		those. I still need to check Chico's travel code
		for when he's outtaHere to make sure it works, but
		I guess that's for tomorrow. I also need to start
		adding more details like objects in the rooms that
		you can look at, and also the on-set commands for
		"action" and "scotty, roll" etc. Yep, I'm too tired
		to continue I think. Maybe 6 hours today? Wow.
		(3375 lines)

7-28-98	(8:20pm) Been at it since about 3:30, with maybe 45
		minutes off due to not being able to plug the computer
		in after its battery ran down. I've been doing weird
		cosmetic enhancements to the game. First I added the
		big list of MGM stars to the easter egg room, and had
		a strangely difficult time getting the run-time to
		say "You see <<list of big stars>>" here. I finally
		had to make them basically visible decorations, but
		I'm going to need to work on making them addressable
		NPCs at some point. I added a whoIsVerb and a whatIsVerb
		to complement my whereIsVerb, and a lot of time went
		into handling generic responses to that for all NPCs
		and the player itself, which can only be addressed
		by the strange syntax, "Who/What/Where is me" because
		"am" isn't a known verb and one cannot substitute the
		personal pronoun "I" because it's a synonym for "take
		inventory." I also realized that I'd misassigned all
		of the NPCs their names, making first and last names
		both nouns, because in order for the parser to accept
		input of the form "<firstname> <lastname>", the first
		name had to be an adjective modifying the noun last
		name. I also had redundantly assigned adesc and thedesc
		properties to all non-Marx NPCs instead of handling
		that assignment generically in the NPC class definition.
		Lastly, I twiddled with Harpo code for the new verbs
		I added. The game still plays pretty much the same,
		and I don't know if anyone will even use the who/what/
		where verbs, but they work just right for my taste.
		Oh, and I added an xyzzy verb that, like I promised
		yesterday, says "Nothing happens." but in fact changes
		a boolean toggle global.xyzzy. I haven't put in any
		code to do something when global.xyzzy = true, but
		the option is open.  (3970 lines)

7-29-98	(11:46pm)  Wow, it's gone from 5:30 to midnight rather
		quickly. What was the first thing I did? Again, I've
		been dancing around completing the game functions that
		will allow the play to emulate the scripted playtest
		(ie, the stuff on the set calling action and so forth).
		I added a few more MGM stars based on some research
		I did. I wish I knew where to find more MGM history.
		Then I added a bunch of system verbs for printing
		help screens and that sort of thing. I added some
		new verbs (and spent a while alphabetizing the
		sequence of verb definitions), including ones for
		playing the harp. So, I modified the harp in Harpo's
		room so that it can be played. I added a "followers"
		command that lists who is following you, and basically
		had to rewrite the listcont() function to do it. I
		couldn't just use it as-is because actors are ignored
		by listcont. Sigh. While testing that I suddenly found
		that Zeppo couldn't be dropped. Turns out it was a
		victim of a rather insidious, creeping problem: every
		so often the text file is corrupted during the Save
		command, so that random individual characters are
		changed to a different character. I'm concerned that
		there are more of these hidden that the compiler has
		not registered. The Zeppo one was ignored by the
		compiler, for example, and any corruption within
		a string to be printed will also be bypassed. Checking
		every single character in a program that's as long as
		this one is now is nigh impossible, which is why this
		is so frustrating. Well, that's it for now, I guess.
		Maybe it's even time to stop for the night; definitely
		I need to get some food.  (4442 lines)

7-30-98	(2:46pm)  I just wanted to mention that this morning
		I began my operation to port this game code to the
		Inform language. Any other mentions on that part of
		the project will go in a file called 4in1.inf_progress.
		Apropos of this version, it's interesting how many
		missing spots and discrepancies I never noticed
		before became obvious. Well, time to get cracking.

		(7:19pm) What! Four hours already? I've had a frustrating
		time getting simple things working. I spent a long time
		negotiating the room nrmLkAround code to list objects,
		indistinguishable actors, and actors separately. I feel
		like I'm not writing good code here; there's too much
		redundancy, and I can feel the run-time dragging on
		certain operations (like taking inventory). It all
		seemed to work eventually. One problem I'm having now
		is a randomly-appearing error message saying "numeric
		value is required," and I have no idea how to track
		it down. I got a similar message when I was trying to
		fix the code for playing the harp when Harpo is there.
		I wrote it last night quickly, and it bombed. While
		working on it I tried to use something the manual
		calls a handy feature, but which this compiler seemed
		to choke on (perhaps it hasn't been added to the
		version I've got) called doSynonym. After that, I
		was still getting the big error. Finally, I noticed
		that I'd used a = instead of := in the first assignment
		of a for loop. Sheesh! Oh, and while I was double-
		checking that I'd not done that elsewhere (I had, but
		it had never balked at it for some reason), I noticed
		by chance one of those randomly-corrupted characters
		in Irving's code. The variable "count" had become
		"cnunt." Argh, how many more are there? Perhaps it's
		a tiny changed character somewhere that is causing
		the random "numeric value required" error! Yiiiii.
		Even though 4 hours is a light day for me, I'm thinking
		of packing it in. This is just too wearisome today,
		somehow. This is probably why I started the Inform
		port -- it's fresh and at a clean state where the
		work is fun instead of awful. Well, awful is a harsh
		word. Time to get some hot coffee and a sandwich.
		(4578 lines)

7-31-98	(5:50pm)  Augh, what a drag! I've hit another one of
		those mysterious errors that causes the compiler itself
		to crash. Or not crash, it gets stuck in a loop, repeating
		one error message ad infinitum, requiring me to restart
		the computer. Restarting the computer takes a lot of
		time, and is especially annoying because the computer
		automatically asks me to back up everything to a set
		of floppies. I suppose I could disable the program but
		one of these days I need to do that, so I shouldn't.
		Anyway, I started today by play-testing, and found
		that I'd changed something in Chico's code at some
		point so that it was nigh impossible to get them
		to stay on the set. Dropping him anywhere will make
		him leave. The solution, I guess, is to not drop him.
		However, there was a loophole: if Scotty fetches him
		for you, he will stay put. Then I started tweaking
		Val's code, allowing her to go on a hunting mission,
		and I changed some basic NPC code to answer questions,
		and Scotty's code to do the same. It was when I tried
		to compile that stuff that this error happened, and
		the line number of the supposed error is in the middle
		of (argh) the code for playing Harpo's harp, which is
		the code that took all of the steam out of me yesterday.
		However, at end of day, it compiled fine (else I couldn't
		have play-tested today), so I don't know what's wrong
		It says "else without if," making me wonder if perhaps
		an "if" got randomly-corrupted to some other word,
		like "nf" or "i&", leaving the compiler hanging. So
		now I have to check every "else" in the code and its
		matching if -- what a drag! A game like this is almost
		entirely made up of if/else statements. Sigh... (4717 lines)

		(6:22pm) This is even more insidious than I thought.
		Without visible damage, certain portions of the file
		are corrupted. A check for ( it = Irving ) bombed
		because it didn't recognize "Irving" as "Irving" --
		in fact, even a search in BBEdit for "Irving" didn't
		return that string as being equivalent. The bugs with
		Harpo's harp and (now that I commented those out) with
		Val's code (which is fine) are displaying the same
		symptoms. Something invisible is wrong with the file.
		I just saved it to a floppy, erased the one on the
		hard disk, and copied it back -- but that's no guar-
		atee that whatever's wrong will get fixed that way.
		I'm thinking maybe I should open the file in a word
		processor to see if any weird extra characters show
		up.

		(6:54pm) This is extremely distressing! I tried going
		back and compiling yesterday's version and it had the
		same "else without if" compiler-crashing problem! I
		could not, even laundering the problem code(s) through
		other text applications, get the files to compile
		even though there are no coding errors. That yesterday's
		archived version is corrupt is really troublesome,
		because it just cannot be. What, then, is the game
		file that I was playtesting earlier today? It's that
		version; it compiled at the time. Did something change
		after the last time I compiled it? I can't believe this.
		And there's not much I can see to do. Perhaps go back
		to the version two days ago (which does compile) and
		step through line-by-line, looking for differences
		between that and the two newer versions, and retyping
		the new code that's been added since. What a test of
		patience that will be, but I don't know any other
		solution. I might have to take that project home
		with me instead of doing it here on the portable,
		because I'll need the bigger screen space to look at
		both files at the same time; even then, it's going to
		be a nettlesome, tedious process. Agh. It's Friday
		night and I told a friend I'd do something, but
		having this upset hanging over me is going to put
		me off a bit until it's corrected. Shoot. What a
		setback at the end of week 2!

		(10:30pm)  Phew. I came straight home and go to work
		on finding the problems in these files, and I found
		them. Some of my random problems might have had to do
		with file corruption, but I did solve the "else without
		if" compiler-crashing bug -- which appeared again in
		today's file as I was gingerly testing my new Val
		hunting code (the problem area). Yesterday's file
		did, in fact, have one little problem in Harpo's
		harp-playing code that indeed I must have done after
		compiling the game but before I shut down. I had a
		for loop enclosed in braces, and I deleted the
		opening { brace. So, the closing brace was read as
		the close brace for the immediately preceding "if"
		statement, which meant that the next "else" it saw
		was a big problem. Why it should throw the compiler
		for a loop (literally) I don't know. I note that I
		had to get all the way to that point in the code
		(line 2180), stepping through line-by-line with the
		version from two days ago, before I noticed it. Yikes.
		However, it gave me the gumption to start the same
		careful-pagethrough process with today's file. Comparing
		line counts ended up being an effective tool, but I also
		had to rely on my memory. Eventually I got up to Val's
		code and without adding anything, the file compiled.
		Then I added a little more, and it compiled. Then I
		added the problem code (and I am typing this manually
		on a clean new file, not cutting and pasting from the
		corrupt version) and it crashed again, this time with
		the "else without if" compiler bug. Ooh, I was steamed.
		I was so mad, in fact, that when I restarted I loaded
		the wrong file (the fixed version of yesterday's code
		rather than the being-fixed version of today's), and
		I nearly blew a gasket thinking somehow the restart
		had erased all of the changes I'd made. Duh. Anyway,
		so I chop that routine out entirely and add it back
		in one nested if...else at a time, and on the second
		one it bombs again. Looking closely, I finally discovered
		what had been the problem all along. I forgot to close
		a string with its final " because the line said this:

			"\nVal says, \";

		Where \" is the shorthand for "type a quotation mark
		within a string."  So, it was (to the compiler) an open-
		ended string, which means all of the lines of code up to
		the next " a few lines down were taken as a string, and
		then everything after that quote mark it tried to compile
		as code. Hooey. These are nasty little bugs to track down,
		I must say. Very, very tiny but (obviously) quite dis-
		tructive and exasperating on many levels. I am happy to
		say, however, that as of now today's version compiles.
		What has it been, five hours since I first hit this
		problem? And I was doing it just so I could merrily
		play-test today instead of really smashing my head
		against the rock trying to improve it! My simple day
		of seeing how the game felt to play turned into a
		nightmare bug hunt; augh. Although, now that I've
		fixed it, I almost feel like trekking back to the
		coffee shop and going at it again. Hmmm...  (4725 lines)

8-01-98	(11:17pm)  I started off today in an easygoing manner,
		adding more descriptions and some decorative objects to
		Irving's office and vicinity. I rearranged some of Harpo's
		code yet again (I seem to do this every two days or so),
		and was musing on that when I was interrupted for two
		hours or so by pleasant Saturday conversation. I picked
		up again after that by bashing forward on a new idea that
		I had just this morning which involves the massing crowd
		in Chico's room. I decided to have the throng be a
		physical force, driving you further and further from
		the door, so that it would take a number of repeated
		moves (depending on how many people are there) to get
		out again, and if more people arrive you are again
		pushed back one step. I symbolically made seven nested
		levels of "crowd circles" out of which the player must
		climb, depending on the size of the crowd. Also this
		morning, I came up with the idea of having the MGM lot
		teeming with NPCs of various guilds. This would be
		in honor of MGM's moviemaking tradition of hundreds of
		extras. I also decided to go to a bookstore and do what
		research I could (I know there used to be colorful
		volumes about MGM studios, but perhaps they're not
		in print now or simply not at the store I checked),
		specifically to double-check my starList for dis-
		crepancies. I had included Barbara Stanwyck even
		though I knew she was a little young to be there
		ca.1935, but I spent two days trying to remember her
		name, so when I did I put her in. Well, she's out
		again, and so, sadly, is Cary Grant: he was signed
		with Paramount, not MGM. I replaced him with Charles
		Laughton. Adding hundreds of extras to the game will
		probably be the last thing I do, and most of them
		will be inert unless the player goes on the Easter Egg
		hunt. When I do, though, I may drop real names of
		MGM workers. In fact, instead of my generic sound
		mixer, or in addition to, I ought to add Douglas
		Shearer, Irving's brother-in-law and their top
		sound technician for that era. Shearer is in fact
		listed in the credits to A Night at the Opera. Which
		reminds me, I'm toying with the idea of having the
		game be unwinnable! I've dropped hints that if the
		player fails in his task, the picture will be scrapped
		in favor of "Opera," and history will forget "Holy
		Mackerels" ever happened. Ah, so! This will be a
		big surprise to anyone who plays this who happened
		also to read the playthrough transcript beforehand,
		which seems to show a solution to the game. I do
		want to make it unwinnable by following that script;
		it may already be (notwithstanding that I haven't
		yet implemented the "call action" and "rehearse"
		commands). Well, time to test the ChicoRoom crowd
		code some more. Adieu.  (5088 lines)

		(1:45am)  The calendar day says it's the 2nd now,
		but I'm still counting this as the end of the same
		day's activity. Gosh, after I got started again this
		evening I've been burning full-flame on this. However,
		I've reached the point where I realize I have to stop
		because I haven't eaten and ought to, and I might
		start making dumb compiler-crashing typos if I don't
		leave it be for tonight. The Chico Room trap works
		very well now, and I think really adds something to
		the game. Before, people crowded in, but there was
		no tangability to it, just a lot of names. Now all
		of those crowds are a force to be reckoned with. I've
		lucked out several times tonight in having these new
		situations point out holes in the code. Notably, a
		couple of times Harpo has spoken up, saying things
		like "Hello, Sam" and "Come in." Whoops. I finally
		decided that Harpo would speak in the game, provided
		you use the xyzzy verb in his presence. I'm still
		scratching my head over Val's locate-code, which
		should work the same as Scotty's (which works fine),
		but doesn't. It activates and deactivates in the
		same turn. Gosh, that reminds me that I put a print
		statement in there to help me figure out what's going
		on, and I fiddled with other stuff after that and
		forgot to test it out. See? Time to quit. If I run
		the program I'll be tempted to keep working on Val's
		code to get it right, but I need to order myself to
		stop. Sigh. Okay, bye for tonight, I think.  (5194 lines)

8-03-98	(4:01pm)  Hello, I started up just two minutes ago,
		with my first goal of the day to figure out why Val's
		locate-code was screwing up. Taking a day off helps,
		I suppose, because I immediately spotted the problem:
		an erroneous ; after an if statement but before the
		if statement {} code. So, the if statement was handled
		but then aborted by the ; and the rest of it was run
		without the if having a gating effect. That's nice.
		I guess now I'm going to do the special on-the-set
		rehearse/action/ready code.  (5193 lines)

		(8:59pm)  Whoa, seven o'clock has become eight has
		become nine, all because of this phone. Right after
		an initial stab at calling "action," which didn't
		work like I really wanted, I got distracted with
		making the soundstageNorth phone operational. That
		took hours, and added many lines to the code. It's
		one of those things where I spent a whole day making
		it work, and it doesn't even have a thing to do with
		playing the game. However, you can just bet people
		will want to use it just because it's sitting there,
		so I had to do it. For a "small" game, the code is
		ballooning to an enormous size, mainly because of
		all of the fiddly details I'm adding. In fact, it's
		going to be, code-wise, a large game, even though
		there is a small number of rooms and a limited
		puzzle-goal. I'm thinking of taking it easy tonight,
		and maybe stopping here now that the phone works.
		(5583 lines)

8-04-98	(2:03am)  Well, that must be a first. I got here
		and started hacking away at adding the "roll"
		and "rehearse" verbs, which made me rearrange
		how I did the "action" verb earlier so that
		code for seeing who was on the set and who wasn't
		could be re-used as its own routine. Also, I added
		code to make "X, TELL ME ABOUT Y" the same as
		"ASK X ABOUT Y."  I must have spent an hour on
		this (darn it, I forgot to look at the clock when
		I started, again), but going by the line count I've
		added 160 lines of code. What's "a first" is that
		when I compiled, it didn't find any errors! Not a
		single slipped " or ; or {}. How very pleasant.
		(5743 lines)

		(3:14am)  You know, this game is actually getting
		close to complete. Uh oh, you just know that as soon
		as I say that I'm going to be in for another six weeks
		of work on it. However, what I mean is, most of the
		NPC code is in, most of the game-solving verbs are
		implemented, and the rest is adding details. For
		example, I'd kind of like the game to understand the
		word "picture" (meaning the movie), and have the
		player be able to ask what people think about it.
		Adding details (again, Harpo business in every
		room, including blowing out the lights in the
		soundstage) could take weeks to finish. I need to
		add food to the catering table, for example, and
		miscellaneous film equipment around the stage, that
		sort of thing. I think I'm going to leave it here
		for the night, with "rehearse," "ready," and "action"
		ready to go (but without doing anything yet) and the
		game darn near playable. The vortex in Chico's room
		seems single-handedly to succeed in making the game
		unwinnable, because when you get trapped in the
		vortex the Marxes don't consider you to be in the
		same room, so therefore if you bring (as has always
		been necessary) the other three into Chico's room,
		Chico leaves to go gambling, and Zeppo and Groucho
		leave to go joyriding (or whatever) immediately if
		you're shunted to the back of the room, so climbing
		out again is moot because the game can't be won any
		more. Up till now I've had Harpo's easter egg hunt
		start on the fifth turn of the game, but that was
		just to reliably test it. I haven't decided what
		exactly will trigger it in the final version; it
		needs to happen at a point where only a lucky player
		will think to follow him, or happen to come across
		him at the right moment. Ideally, only a small
		percentage of people who play the game will find
		the easter egg room. Hmmm. Okay, that's enough
		typing for now. Time to kind of start unwinding
		for the night.  (5816 lines)

[ Due to a computer failure, the progress reports for 8-5-98
  are currently, and perhaps permanently, unavailable. I
  recall griping about spending hours picking out those
  fiddly random-character-corruptions, and about making
  Harpo's easter egg hunt begin when you play his harp,
  which seemed an appropriate activation method. I can't
  believe that this one time, just because I was so beat
  and disgruntled from hunting down those little errors
  for a whole day (the game code became suddenly riddled
  with them on the afternoon of 8-4-98), this one time I
  neglected my dutiful habit of backing up the progress
  report file onto floppy disk at the end of the day. I
  saved the game code, but not the progress check. Argh,
  argh, argh.  ( ---jrw 6 August 1998  4:23am )  ]

[ Wait, I recovered it.  ---jrw 7 August 1998 4:13pm ]

8-05-98	(3:24am)  I worked a little bit yesterday, but only
		as long as my Powerbook battery held out. I took the
		game home to compile what I'd done (I didn't risk
		compiling it, because in case of a crash, restarting
		the computer completely drains the battery) and found
		the file riddled with those random character corruptions.
		I went through by hand, just eyeballing code, and caught
		a number of them. I've actually been lucky that way since
		this problem first appeared; many's the time I've happened
		to glance at some code that's long been set and done and
		noticed a corrupted character somewhere. Tonight it was
		the worst it's ever been; there were dozens of them.
		The compiler caught some more, but I bet there are
		still some lurking. I don't know how to reliably proof-
		read the entire file given its current size. I'm wondering
		if it has something to do with running off of the battery.
		Anyroad, I finally got it to compile at home, and then
		caught some more corruptions that caused run-time errors
		or which just happened to catch my eye as I tooled
		through the game. I'm very close to the stage when I'll
		hand it to beta-testers to take for a serious spin. I'm
		no longer sure if it's possible to win the game or not.
		I did decide to make Harpo's easter egg hunt triggered
		by playing his harp, which seemed appropriate. Time, I
		guess, to play the game and see what happens. Perhaps
		I'll record a transcript of what I do.  (5948 lines)

8-07-98	(1:02am)  By some miracle, I managed to get my computer
		to turn on tonight.  Yesterday I came here and it refused
		to power up!  Tonight I solved that by the traditional
		American method of hitting it with my fist.  Probably
		not smart, and it shows that I really need to get this
		thing fixed. Unfortunately, the warranty ran out, what,
		one week ago?  Grrrr.  It shouldn't be broken!!  I wonder
		if bringing it here did something to it.  Anyway, I can't
		trust that I'll have the ability beyond tonight to bring
		the work here, which I much prefer somehow, so I'm going
		to try to see what I can do to get it fully functioning
		by beta-test terms, meaning the director commands all
		have to do something, and I need to figure out when/how
		the Marxes leave the set at the beginning of the game.
		If I get that working, I'll see if I can't add some more
		details here and there (like things to eat at the catering
		table).  (6067 lines)

		(3:04am)  I can hardly believe it. I dumped in a bunch of
		code for handling repeated takes and rehearsals, which
		involved adding weird notify code to check for this and
		sundry, as well as a very brute-force "win the game"
		scenario, a kludge just to test that it can work. Then
		I tried to compile, and it did! I'm still catching those
		nettlesome corrupted characters here and there, but this
		may be pretty close to being "it."  (6284 lines)

		(4:52am)  Time to stop for the night, I think. I haven't
		done much testing, but things seem to be working. I found
		out I had some problems in the telephone callOnVerb code
		that were always there but had never shown up before, so
		I think I've fixed that. I also finally got around to
		fixing some code that prints a message on the MGMlot when
		Chico finally escapes -- or at least, I think I've fixed
		it. (6571 lines)

		(5:49pm)  I just went through the whole file with a word
		processor's spell-checker, adding every weird variation as
		a legal new word, so that I have a custom dictionary for
		future checking of the file. I caught several more of those
		persnickety character corruptions that way, but it took an
		hour or so to do.

8-08-98	(4:34am)  I've been play-testing for an hour or two now,
		and by golly if I can't seem to win the game. I've even
		loosened up on some of the rules to make it more possible,
		like making the crowd circles in Chico's room activate
		later, but it's still impossible. One time I got close,
		but by then I'd already tried to shoot three takes, and
		the magic formula is 3 rehearsals, 3 takes, and you win.
		I've added little bits of code here and there, like finally
		re-instating the Harpo's Leg deal (activated when you ask
		him to follow you). There was one point when I was trying
		to make Groucho less persnickety; his absolute limit of
		agreeing to follow you four times got me in trouble when
		I entered Chico's crowded room (forcing you to drop him).
		Of course, since modifying Chico's room, I haven't had
		that problem again. I tried to write a bunch of quips
		for Groucho when he agrees to follow you on the fifth
		or greater time, but I guess I'm so tired I couldn't come
		up with anything particularly good for him to say. I wrote
		seven quips and they're all duds. Sigh. However, I received
		confirmation tonight that beta-testing can begin, and I
		think I will this weekend pass it along to them, calling
		an end to these three weeks of intensive, solo testing and
		programming. There are still lots of bits of business to
		do, and details (I've been saying this for over two weeks
		now), but I think the game is playable. I don't think it's
		winnable, but I think it's playable. Hooray! I've done it!
		And I'm going to have it thoroughly beta-tested by the
		start of the competition, which will put me in pretty
		good shape to compete. I know I'll make a good showing;
		I've really put in the effort to make this competitive.
		There are some pretty sharp IF writers out there, so I'm
		hoping the crowd-pleasing nature of using the Marx Bros.
		will tip the judging in my favor. Here's hoping, but that's
		still six weeks away. Gosh, I've even managed to time this
		(as if I were responsible for choosing the timing) so that
		I'm well ahead of schedule. Having the time to get it tested
		by other people is really going to make a difference. I'm
		starting to repeat myself. Time to say goodnight.  (6732
		lines)

8-10-98	(4:54am)  I spent two hours filling in those missing details:
		decorative items described in room ldescs that heretofore
		were unavailable to the parser in case the player wanted
		to examine them more closely. I made a catering table full
		of tasty items that can be eaten, for example. I compiled
		all of this only to find the game code re-riddled with
		random corrupted characters (RCCs). I corrected all of the
		ones that the compiler caught, but I'll have to wait until
		I'm at my home computer until I can run it through my
		spell-checker. However, that still won't catch every
		last one! Anyway, what I'm really steamed about is that,
		after 3 weeks, Groucho's code suddenly isn't working.
		His was the first I implemented! I tried to add a modification
		to catch a double-daemon situation, where a daemon is
		already running but a second one is activated; this
		causes problems where timing counters are involved; they
		are incremented once per daemon per turn. It is annoying
		to have Groucho not working when he has been set and
		running fine every day from the first week until today.
		Note that it is so annoying I have to say it twice. Argh.
		One of the problems is that, in part because I coded him
		first, he operates in an non-standard way from the other
		three. I lifted some code from Chico that prevented a
		case of double-daemoning for him, and copied it into
		Groucho's, and it just didn't work for Groucho. I'm going
		to have to rethink (and possibly rewrite) Groucho's code
		now just because of this; however, it's something I knew
		I might have to do eventually, I just didn't want to fix
		what wasn't broken. Now it's broken. Argh. This is only
		vexsome mainly because I planned to send this off to the
		beta-testers this morning. It's better that I caught it
		myself before it went to them, but it's still a bit off-
		putting. Lastly, the game code is now officially longer
		than the First Things First game code, which has dozens
		more rooms and a lot more objects! This amazes me; what
		still qualifies as a "small game" is now a gigantic file
		of program code. Well, it just shows you that I put a lot
		of extra detail into it.  (7222 lines)

		(5:51am)  I've added some more stuff. I noticed there was
		a problem with the counter that kept track of the number
		of takes, and when I went to fix it I took the opportunity
		of writing another "cut-scene," as they call it, when I
		as the author spit a pre-written scene at the player which
		is not interactive. I also stuck in a bit of cut-scene
		dialogue from the playscript, the bit about Zeppo betting
		Chico that they don't get the shot done, because the last
		line of the "win" scenario (and it is possible to win, now)
		referenced the bet. I may have to call it a night, now,
		but everything seems to be working reasonably well. It's
		a good game.  (7929 lines)

		(6:09am)  All right. I had another of those "else without
		if" compiler crashes, but that was easily fixed. After I
		compiled that, I decided the last thing I wanted to do was
		to implement a simple hint menu. It tells the player how
		many rehearsals and takes are needed to win the game, but
		nothing about how to navigate the Marxes' behavior. Oh,
		I just remembered: I need to deactivate the line that
		says Groucho's waitCount. I might also deactivate the
		current xyzzyVerb function, which deactivates all of the
		Marx daemons. Other than that, once I spell-check this
		file at home, I think it's ready to be beta-tested. Hoo-
		ray hoo-rah!  (7330 lines)

8-17-98	(4:40pm)  Over the weekend I got some suggestions from a
		beta-tester. I was embarrassed to find out that there was
		a major bug in the Groucho code that made him keep saying
		"Well this is a waste of time." over and over without
		ever leaving! Augh! That alone makes the game look really
		buggy and unfinished, and it was some of the first code I
		wrote that had worked fine for weeks! I'd added a gate that
		I shouldn't have, checking to see if Zeppo was in the room.
		Duh. Sigh. Anyway, most of this guy's comments had to do
		with asking questions of people. Everyone directs you to
		Scotty, saying he "knows everything!", but when you ask
		Scotty he just has a bland comment. In fact, I'd done
		very little in the way of getting information out of NPCs,
		which he pointed out was a big problem in a game so full
		of them.

		So, today I sat down and started writing routines for
		every possible topic in the game: every NPC, every object,
		even objects that otherwise didn't exist except that another
		topic might have mentioned them! That code alone is now
		1729 lines! I fixed a couple of the bugs the guy found in
		my main code, but not all of them because I wanted to work
		out the conversation stuff. It is definitely going to make
		the game more alive, but I'd always said that adding details
		was going to be one of the later embellishments. I didn't
		realize how thin the game was going to look for the beta-
		testers without them, though. I may have to upload a new
		version in a day or two and let them have at it a second
		time.  (7612 lines + 1729 lines)

8-19-98	(7:58pm)  I got a bug report from a second beta-tester this
		morning. It was interesting how different his report was,
		in that he experimented in very different ways than the
		first fellow. The first tester was not only thorough and
		fussy, but he seemed to be only vaguely familiar with the
		Marx Brothers. In a way, it's good to have someone not so
		familiar with them testing the game, but I did think it was
		funny when he said he was "completely baffled" when he tried
		to do something and it told him he couldn't because he was
		"holding Harpo's leg." He'd never heard of that schtick
		before. Actually, his bafflement is a genuinely comic
		reaction. Anyway, I spent all afternoon today going through
		this (first) guy's list of 37 bugs (he numbered them, like
		an index). Naturally it led me to throw in a few extra
		things along the way, like some new lines for Groucho. In
		fact, I went mad at one point and had triply-imbedded
		switch() statements, first choosing between (say) six
		random lines, two of which had another switch between
		three random choices, and one of those had another switch
		for even more variety. What this does is make Groucho
		much less likely to say the same thing over and over.
		Only by dumb luck will you see the same thing very often.
		I might do the same for Harpo. I definitely need to throw
		in more quips for Groucho, but thinking them up is not
		easy! I did flip through his autobiography yesterday, and
		I may steal a line here and there from that book, which is
		basically a hundred pages of quips. I don't want to plagiarize
		material if I don't have to, however. Any-anyway, I surprised
		myself by getting through the entire list in this one session.
		What's sad to see is that, though I'd been free of it for
		the past week or so (in working on the Inform version, and
		in writing the Consult responses), the RCCs returned today.
		I don't have a spell check library for the consult topics
		so I'll have to make one so that I can work on that in
		earnest again tomorrow. I'm happy to know that I will be
		able to upload a much-less-buggy version for a second
		round of testing over the weekend, or maybe on Friday.
		(7872 lines)

8-28-98	(6:30pm)  I've been working on Vincent Lynch's list (now
		numbering 83, some of them redundant) yesterday and today.
		I'm pretty tired of it!  I took a break earlier this week
		to write a quick puzzle game in Inform, and that really
		helped boost my morale again, mainly by showing me that
		I've really learned Inform quite quickly.  Today I planned
		to work on finishing the consultWords stuff, but I didn't
		bring my research materials.  Actually, what I did (and
		this started as handling the case of following someone
		through a closed door, which shouldn't be allowed) was to
		do something I'd sort of been planning to do for quite a
		while, which is to re-write the whole idea of following
		NPCs around.  I made it generic, so that it works for
		everyone, not just the Marxes.  The built-in TADS method
		of allowing you to follow NPCs is really hoakey, in my
		opinion -- it creates a ghost object that stays one room
		behind the character.  However, this ghost object appears
		in the contents lists of rooms, which caused odd things
		to happen in room-contents-specific code, like calling
		on the phone to Chico's room, which might have a number
		of ghosts in it.  Notably, a ghost named "Chico," but
		who would appear as "A Chico" when the ghosts's adesc
		property was used.  Took me a while to figure that one
		out (having seen the "A Chico" a number of times). So,
		I scratched all that. No more ghosts.  Now there's one
		object, a genericNPCfollower, that doesn't exist anywhere,
		but has code that can figure out where the person you
		indicated by "FOLLOW _X_" has gone to, how many rooms
		away that is, or if it's nowhere at all, and if it's
		in an adjacent location it will move you there, if it's
		through a door you have to deal with the door, if it's
		farther than that away it says that they "gave you the
		slip," and if they're gone from the game (nil) it says
		that the person "isn't here."  The Marx followers,
		inheriting from the NPCfollower class, only needed a
		small change in the couldntFollow( this_actor ) property,
		which is run when it's not a successful follow.  And so,
		everything is much cleaner and easier.  Hoo-rah.  The
		problem is, and this is a big problem, I haven't compiled
		the code in over a week, despite working on it quite a
		bit.  It's full of RCCs again, so I need to spell-check
		it.  Who knows how many typos are lurking in this thing
		from what I've added.  I'm really lost as far as checking
		to make sure fixes I've added really work or do something
		else that's screwy!  This is how far I've gone in terms
		of throwing up my hands and saying "Phooey!" about how
		bloated the game's gotten.  At times I think I should
		just go back to the version I had in week 2 where all
		four of them worked and you could just barely manage
		to get them to the set, but nothing else functioned.
		At least that version was fun to play.  Hmph.  Oh well,
		I'm happy that I ironed out this follower code.  I may
		upload it as a generic routine for other people to use,
		although some of it is so specific to my game that it
		wouldn't be of much use (my limited map is very easy to
		sort through to check how far away one room is from
		another, for example).  Well, time for a bathroom break.
		Or something.	(8879 lines)

8-29-98	(3:23am)  Hey, it compiled.  Consult.T didn't, though --
		and I was tearing my hair out (it's the end of a long day)
		until I put two and two together and came up with a problem
		that I read about on rec.arts.int-fiction a month ago. You
		can't have a single object in TADS that's bigger than 128K.
		My consultwords function was just one big mess of data, much
		bigger than 128K.  I need to figure out a way of breaking
		it all up into small chunks.  I guess some sort of consult
		word class, with each word having etc etc.  That's for
		tomorrow (or Sunday, or whenever), as well as making sure
		that the code I wrote to handle the 80-or-so listed bugs
		works okay.  There's even stuff I've now thrown in that I
		don't even remember I did.  My "who are you" question might
		work now, and the parser, and the floatingItem that's the
		scenery in the MGMlot and MGM5.  I've got doors everywhere,
		now, and who knows what else.  I've even put in all of the
		handlers for having the soundstage go completely dark, but
		I haven't written any code to cause that to happen... yet.
		There are things I had on a to-do list four weeks ago (such
		as Harpo business, which would include making the lights go
		out) that I haven't even gotten around to doing.  Yeesh, I
		say.  Enough already.  Time to retire for the night, I think,
		and test this stuff out tomorrow.  I'm just glad I can go to
		bed knowing that the version which has all of the 88 (or
		however many) bug fixes	compiled successfully.  (8894 lines)

9-09-98	(5:41am)  After a bit of a hiatus, I'm back on the job
		tonight, working with some amount of steam for the first
		time in quite a while.  My laptop is completely dead, by
		the way.

		Tonight I started at about 10:30pm, worked for a few hours,
		took a break to watch part of a movie and eat something, then
		got back to it until 5am.  First I twiddled a couple of things
		that I noticed hadn't been working quite right -- for example,
		the new follower code: You could follow someone who had never
		moved, or who hadn't been seen yet.  Then I launched into an
		attack on the "who are you" code, really wanting to get that
		to work, and I finally did.  Now you can ask "Who are you?"
		"What are you?" "Who am I?" and "Where am I?"  Oops! I forgot
		"Where are you?"  I'll have to remember to do that.  After
		that, I made a big effort to get the consultWords working.
		I'd been thinking of how to do that for the past week or
		more; it involved breaking down the big function into little
		parcels that the individual words would handle themselves,
		and I had to make sure that I took into account the bloated
		size of certain objects (the Marx Brothers, for example) --
		they probably wouldn't be able to take on any more code.
		Speaking of the Marx Brothers, I made a couple of dummy
		objects that handled commands directed to the cast (whichever
		castmembers are in the room) or to the Marx Brothers (whichever
		are in the room), such as "actors, rehearse" or "get the
		marx brothers" or "marx brothers, follow me".  By 5am I got
		all of this working enough to compile.  The other big thing
		I did tonight was to get rid of Scotty's ability to bring
		people back to the set; it destroyed the original point of
		the game, which was to figure out from the Marxes behavior
		the right order to pick them up so that you could get all
		four to the set.  My beta-tester suggested that I shouldn't
		do this because it would radically change the game -- even
		after I told him that it was added only because it seemed
		logical for an A.D. to be able to do that, not because it
		followed my intentions for the game.  This was another thing
		I thought about while taking a break from working on the game.
		Pity, I'd just added a lot of extra functionality to the
		Scotty.huntDown code; however, I saved that into a separate
		file as a memento.  I don't otherwise regret cutting it from
		the game, no matter what my beta-tester said.

		I haven't done a full test of the 88 bugs I fixed yet, but
		I did want to do the above work. There may be very few people
		who even figure out that you can ask "Groucho, who am I?" and
		"what are you?", but I like very much that they exist.  I think
		they should be standard functions in IF works.  (9928 lines)

9-16-98	(2:27am)  Last night I worked on the game for the first big
		burst of energy in, again, a week or so. Racing to get a new
		version uploaded for a second round of beta-testing, I cranked
		on it for about eight hours, starting in the early morning and
		going until after noon. I did end up finishing what I felt was
		a full upload-worthy version: the new follow code worked, all
		of the NPC knowledge was programmed (forced out of my head,
		finally), and little minor bugs that I noticed were cleaned
		out. I started the game in a different place, outside Irving's
		office, and I made sure that even if you went directly to
		the set the Marx Brothers would still split on you right away.
		I implemented a scoring system that adds up to ten points. I
		put in minus points for over-rehearsing -- which qualifies as
		a hint that says, "Hey, enough already. Stop at three."  This
		should make it easier to win the game, unless the player has
		already done more than three takes without rehearsing once.
		In that case, they're sort of screwed. I need to remind myself
		to fix that. What else? Oh yes, I also want to remind myself
		to rewrite the opening scene (text) so that -- or wait, do I?
		Maybe it's fine. I only needed to do that if I made another
		change (which I haven't), which was to make it so that it's
		already lunchtime, you've already done 14 takes, and you
		still don't have the shot done. This would be in character
		for Sam Wood, such as I've read about him, and would explain,
		perhaps, the churlishness of the Marx Brothers. It would also
		explain why there's a big lunch going on in the commissary.

		Skipping ahead, tonight I followed the mental reminder I'd
		left myself and coded in (at loooong last) the scene descriptions
		for the Easter Egg MGM lot locations. Having learned how to do
		things I didn't know when I started this game, I invented a
		generic "busy_personnel" object that existed in all three of
		those rooms. It has a daemon (which, for once, can be activated
		multiple times, overlapping, to good effect) which plays out
		little bits of prose from a list of 45 canned messages I wrote
		that sound like snatches of on-the-set activity: people running
		back and forth, orders being shouted, etc. It works very well,
		and saves me from doing what I'd at one time imagined, which
		was to write a bunch of NPCs that would mill about. This is
		much more sensible from a programming point of view, and also
		from the player's point of view. It's just kinetic scenery,
		really. I'm very happy to finally have those in the game,
		because I didn't want to forget and release the game in the
		competition without them! It used to just say "[scene missing]"!
		As of yesterday, the game passed 10000 lines, and that's
		without the consult file (or the three other files I've
		linked in)! What a huge thing this has become, but I'm back
		to being proud of it again. Probably, I will miss it very
		much once it's done and I don't have it to work on any more.
		(10599 lines)

9-27-98	(7:22pm)  Did a little bit last night -- deadline is the 30th,
		and I had to force myself to do it.  After straightening out a
		few things with doors and such, I stopped and picked it up
		this afternoon.  I've finally gotten the phones to work
		correctly!  At least, Zeppo's phone in soundstage North does.
		An hour ago I thought I had it and could go get some dinner,
		but no, little quibbly things in it took ages to weed out.
		However, they are successfully weeded, and it works much more
		intuitively (calling and hanging up, that is).  Hooray.  There's
		some more bugs to straighten out, but the game is in very good
		shape, as far as I can tell.  I never thought it would get this
		close to the wire, though, considering how much of a head start
		I had.  Whew.  (10745 lines)

9-30-98	(1:34am)  By some miracle I remembered to email Lucian Smith
		to be officially entered into the Comp98 playtesters program,
		something that randomizes the titles. I got email about it a
		week or so ago, and then it completely slipped my mind, which
		is why I call it a miracle that suddenly this afternoon I
		remembered.

		Fortunately, today hasn't been a mad rush to finish up, but a
		somewhat relaxed run-through, cleaning up the last few things.
		All of the bugs that the beta-testers spotted on the second
		uploaded version have been taken care of, and the game looks
		pretty sound. Perhaps there's something I've forgotten. One
		thing that gave me pause was a note about Chico saying that
		he was dialing the phone when he wasn't yet in his room.
		The code that printed that was definitely out of place, but
		I had to stop and consider what I was doing before I moved
		it. This is the kind of thing I'd done twice before -- just
		before uploading, I found some piece of code to be just com-
		pletely in the wrong place, and moved it brute force. I never
		stopped to think, "Why did I put it there in the first place?
		I must have had a reason." Often, there was a reason, and a
		good one. So, I modified it slightly instead of eliminating
		it, and moved a copy of it to where it seemed more likely
		to show up properly -- but even then, I put a double-check
		code on it to make sure it didn't pop up wrongly. It may still.

		However, I think I'm ready to upload it. I really OUGHT to
		test it one last time, despite how tired I am of doing that,
		just because, as I said, that was a mistake I made with both
		beta uploads. I changed a few things and didn't test it first,
		boldly assuming all was well, and both times there was a daemon
		out of whack that just kept printing the same silly message
		turn after turn after turn. I think all such things are
		subdued and restrained, but I can never be sure. There's
		always some bug hiding somewhere, especially in a program
		of this size.

		What an adventure!  I think it's time I called it "finished."
		(10845 lines)

		(1:48am)  AHA! For once I took my own advice, and sure
		enough I caught an errant daemon, printing text where it
		had no business doing it. The "busy personnel" on the
		secret MGM lots were activated when Harpo went into those
		rooms, even though they should only be activated when the
		player goes there. In fact, since the player wasn't in
		those rooms, they shouldn't have been printed at all!
		Gosh, I'm glad I checked this. Something had been nagging
		at me, telling me to check the Easter Egg stuff one last
		lousy time. I'm very glad I did, because besides this
		there was a problem with not being able to follow Harpo
		on the trip -- sort of the whole point! -- due to the
		rewrite of the follow function.  (10849 lines)

		(2:12am)  Just made one last change (eliminating an extra
		new_line) to the commissary room description. I think that's
		the last one!  (10848 lines)

		(2:36am)  Yeah, I always speak too soon. I cleaned up some
		very old code, the harp-string-playing (which, at one time,
		was quite a headache!). There was nothing wrong with it,
		and I probably shouldn't have messed with it, but I suddenly
		thought that the warning message "You oughtn't do that..."
		would discourage people from playing the harp at all. Now,
		it only says that if Harpo is there in the room. I also
		had to change something in the Commissary -- I'd never put
		in the notification to give the player the last, lousy point
		for entering that room! Whoops! So, that's fixed, everything's
		working fine. I think I'm going to send this file to the
		competition manager and go get some coffee to celebrate!
		(10846 lines)

EOF.