Things I Learned During Beta: 2010 Edition — Part 2

Here is the revelation I’m sharing today:

You didn’t start testing early enough.  If you think you did, you’re not testing the right things.

I don’t mean just implementation and technical issues, although the statement is true enough for that as well.  You really can never have enough time to root out obscure bugs and corner-case responses, un- or poorly-implemented items, and so forth.  But even if you managed do do a perfect job at that, there’s a whole other component to your interactive fiction work.  Are you testing that other component?

Your interactive fiction game is, as the quote from Graham Nelson goes, a crossword at war with a narrative.  Discussions of testing usually center on fixing programming bugs, which all fall on the crossword side.  Sometimes there’s discussion of “polish”, which is generally understood to mean cleaning up grammatical errors, misspelled words, and awkward phrasing.  That’s more on the narrative side, granted, but it’s not heavy lifting by any means.  If your underlying story has flaws, that kind of “polish” is on the order of rearranging the deck chairs on the Titanic.

So let’s say you’ve been writing a game for the past six months to a year.  You’ve built some cool technical features, crafted some intricately-coded puzzles, and written a lot of room descriptions, response messages, and NPC actions and dialogue.  The Comp is coming up, and you have a month left to go.  You’re close to feature-complete and the game is winnable, so you package up a beta version and send it out to some willing or coercible testers.

The transcripts start coming back, and the game has quite a few bugs.  More than you expected, really, but although some of them look pretty bad and have significant in-game effects, when you drill into them you find they’re not that hard to fix.  Your construction is basically sound, and it looks as if you have plenty of time to root out the remaining problems and lacunae in implementation.

And then a transcript comes back from someone who knows how to write and how to critique writing.  She isn’t concerned with the bugs she’s running into, but she thinks your scenes are unfocused, your main character’s personality is unclear, his backstory is ambiguous if not self-contradictory, and that the pacing of the action is too slow.

Wait a second, is that legitimate for a beta tester to report?  Aren’t they supposed to just find bugs?

Actually, she’s worth her weight in computronium.  She is finding bugs.  The problem is that they’re bugs in your writing, and by the time you’ve written months worth of text in your story, it can be daunting to go back and make the kind of fundamental changes that a poorly-chosen authorial voice might require.  Even correcting pacing and plot issues can be major undertakings, as they might require structural changes to your story that have serious technical repercussions.

Others have addressed this, most recently Aaron Reed in his new book Creating Interactive Fiction with Inform 7.  What he advocates there, and what the methodology Emily Short calls the “transcript fully, then implement” approach facilitates, is to get feedback on your story and writing early on, almost from the beginning of your project.  By doing this, you can get a better feel for how your story is going to come together without having to start major textual surgery one month out from your release date.

It’s not rocket science — this is something that print authors have known about forever — but it may not come naturally to authors arriving at interactive fiction from the programming side.  Even though code review and beta testing are fundamentals of software development, programmers don’t always think of collaboration in the context of writing.  In the non-interactive sphere, writing critique groups and authors’ circles are very common, both in the real world and online.

My testing experiences this year have certainly woken me up to the value of early feedback on story issues and writing quality — you can’t make a truly great interactive fiction without competent execution on both sides of the Fundamental Divide.  I think all IF authors, but particularly new ones with a great idea and lots of enthusiasm who want to enter their first Comp, should keep this in mind and take both time and pride in polishing their narratives as much as they do in burnishing their crosswords.

Tags: , ,

Things I Learned During Beta: 2010 Edition

I’m in the process of tightening up my upcoming game for IFComp, and that means beta testing!  I’ve had several transcripts come back so far, and among the game-breaking bugs and writing issues it’s uncovering, I found one issue that is tripping up so many people that I feel confident I can state it as a universal rule:

If you output text before the room description block, no one will read it.

It doesn’t matter if the person is an absolute IF newbie, or a seasoned veteran; there’s something about that boldface room name line that draws the eye and says “start reading here”.  I had several places in the game where I was outputting text using a “before going” rule, and in the transcripts you can always see the players flailing around for turns afterward without realizing what happened.

I’m guessing this is a side effect of the move to keeping verbose room descriptions on all the time.  Personally, I always did this anyway; from what others have said I think the preference for verbose mode is probably up over 80%.  But what it means is that you often reread (or quickly scan-and-bypass) the same room description multiple times as you move around the map, which could easily lead to the tendency to just skip over the real differences.

Most of the time, it’s easy to fix this type of problem.  Either shift to using a later point to generate the output (I use a custom specific action-processing rulebook called “post-report” for this type of thing, due to the nature of how the going action leads into the looking action), or do the text output but block the movement.  I’ve used both methods and it really seems to help with drawing attention to the text.

Tags: ,

More Shift

OK, so I didn’t have the issues with my video card quite as under control as I thought I did.  RivaTuner established the overclocking profile, but at certain places in Starcraft 2′s cinematics I still got the black-screen reboots.  Every time.

So I got fed up and decided to replace the card.  Having been burned out a bit by ATI, I checked into the recent nVidia cards, but didn’t find one that hit the graphics horsepower levels I wanted with low power consumption at a decent price point.  Continuing to look around, I discovered the Radeon 5770 card, which very closely matches my old 4870 for pixel-pushing power, but is built on a 40 nm process so it runs at much lower power.  The price was great and reviews were positive, and the kicker was that the card only takes one PCI power cable, so I’m confident my PSU can handle the load.

There are several manufacturers of ATI-based graphics cards, so the next choice was which company to pick.  Sapphire was off the table from the get-go — I don’t know if the issues I had with the 4870 were power-related or card-related, but I wasn’t going to risk another round of video card instability if I could help it.  In the end, I decided to go with the MSI board, which cost about $20 more, but has uniformly high reviews for performance, form factor, low temperatures, and overclockability.

I ordered the card from Newegg and got it in Wednesday.  I didn’t install it until last night, partly to try to keep myself focused on writing.  But once I did, the install was simple and clean.  The old card came out and went back into its box, ready for one of my friends to buy it used, and the new card went in.  Drivers were uninstalled, swept, and reinstalled, and the card came up perfectly and ready to go.

Except that it makes no noise at all.  Even under load, this card is quiet, and at idle you’d never know it was there.  It idles at 37 C, which is absurdly low for a video card.  I guess I shouldn’t complain about it being quiet, but it really is spooky knowing that the card is cranking away and the fans are barely running.  I keep expecting the computer to catch fire.

So welcome to the component family, MSI 5770 Hawk.  May you have a happy, healthy, and long life.

Shift Happens

I’ve mentioned my video card struggles before.  It’s been a constant source of low-grade annoyance that I haven’t been able to use my card to its full capacity, but at least I found a way to allow myself to play.  Last night, though, even with underclocking I still had restarts just looking at the main menu screen in Starcraft 2.

Let’s not get off on the subject of why I was playing Starcraft 2 rather than working on my interactive fiction game — I’m saving that for a self-flagellating post later.  But once this problem started happening, I really wanted to figure out what the deal was, so I hit up Google and started browsing.

Some people had power issues, and that seemed plausible.  After all, it required some gyrations to get the card up and running in the first place.  Some people blamed heat, but when checking the card temps it just didn’t seem that high.  But then I found another article that finally got me looking in the right direction.

Apparently my model of video card has a feature where it automatically shifts the clock speed of the card between 500 MHz and 750 MHz depending on what you’re trying to do with it.  I don’t know all the details, but apparently 3D games under Windows 7 can confuse the card and get it to try to shift modes back and forth repeatedly, which causes the fan to go nuts and the card to eventually trigger a system shutdown.

The suggested fix for this was to lock the GPU to 750 MHz using an overclocking tool.  I downloaded RivaTune, followed the simple instructions for setting this up, and was rewarded with a card that runs stably (and quietly) at full rated clock speed.  Sure, it probably eats a bit more power just idling at the desktop, but it’s worth it to not have to worry about random reboots any more!

Tags:

Slow Update Frequency

I’ll probably be dropping down to one post per week until the end of September.  There are a couple of different reasons for this, but the main one is that I’m trying to finish up my entry for IFComp 2010.  There’s a lot of work left to do, and I’m really needing to use as much of my time as possible on this to ensure it’s a top-quality entry this year.

Once that’s been released I’ll try to pick the pace back up again.

Tags:

The Passing of a Good Friend

If there was one thing that defined him, it was his love for his food.  Or your food — the distinction was lost on Marco.  When he was young and we’d just brought him into our family after he grew too large to be a show dog any more, he’d scarf down his food so quickly you’d think he’d choke.  After he’d bolted his own meal, he’d horn in on his sister’s food, pushing his snout into her bowl and trying to shove her aside until she’d had enough of him and went medieval with snaps and growls and bared teeth.

Even when he started getting older he still had a hearty appetite — Thomas started an exercise program when Marco was 11 that consisted of holding out a piece of dog treat and running circles around the ground floor of our house, Marco scrambling along behind, always straining to reach the morsel.

Last night he wouldn’t eat his dinner, wouldn’t eat a spoon of chunky peanut butter, wouldn’t eat his favorite dog treats.

He loved playing with his sister and with people.  We used to play “soccer” — I’d kick a ball around and they’d attack it, with the odd nip at my heels thrown in for good measure.  They’re a herding breed, and when the two of them ganged up on me there was almost no way to get the ball past them.  It was very clear to me whenever I played with them what a wayward sheep on a Shetland Island moor must feel like.

When we’d play fetch, we’d throw a big rope bone out in the yard and the two dogs would sprint out to it.  Aurora was always faster and reliably got to the bone first, but Marco quickly learned that his size could compensate for his laziness, and would grab on to the bone when Aurora started to return and body-check his sister to wrest it away.

In that first year after we got him, when he was still very young, he’d nap in the sunlight on the carpet downstairs by the big glass door and his paws would twitch as he chased rabbits in his dreams.  He tried to be a good watchdog, but he was never as protective as Aurora — you never knew who might feed you, you know — and since his breeder was deaf and lived in a suburban neighborhood he’d been de-barked before we got him.  Not that it stopped him from trying, but he had a very soft, “Yarf”-sounding bark that would never have scared anyone away.

He’d had problems getting to his feet on slick flooring for a while, but something worse happened to him last night.  Around 10:00 he struggled to stand, and mostly couldn’t.  His head listed to the side and even when he could get some footing he staggered sideways.  He looked confused, and didn’t seem to be able to lay his head down flat.  He needed a pillow or a leg to rest his head on in order to get truly comfortable.

He was the gentlest of dogs.  There was never any concern about having our kids around him.  From Thomas to Katherine to Jonathan, baby to toddler to rambunctious, active child, Marco was always tolerant and affectionate.  Even in his waning days, Jonathan would come over and play with his ears (gently, or we’d remove him), and Marco seemed to enjoy it.  It was hard to tell for sure.  He hadn’t wagged his tail in months.

We knew he was getting sicker, knew his time was short and that we were going to need to make The Decision sooner rather than later.  Robin talked to Thomas about it when he really started having problems standing up on the hardwood floor a couple of months ago.  She explained that when he got so sick that he wasn’t enjoying life any more and was suffering, that we would talk to the vet.  If he agreed, we’d give Marco some medicine that would make him go to sleep peacefully and die without pain.  He understood.

But even though he understood, when the time came today he still cried, as we all did.  Goodbye, Marco.  Goodbye, old friend.  We love you.

Tags: ,

Sprucing Up the Old Homestead

We’ve had some changes around here lately.  A big storm came through a couple of weeks ago and took off another chunk of our tree, so we had to give up and have it removed.  It was very sad; that tree was really well-placed and looked great, and the garden looks much poorer for its absence.

Also, it’s time to repaint the house!  We got a recommendation for a good crew of painters and they just started work on the house a day or so ago.  So far they’re doing great work, and although the paint color Robin and I chose is not wildly different than what we had before, it’s different enough that we like it much better.  It’s a warmer beige with more reddish tones than the greenish-leaning one we had before.  We’re also going to a dark brown for the door and accents rather than black, and a nice light trim color.

Here are some photos of the havok going on in our yard:

Tags: , ,

Moaning Myrtle Has Left The Building

My son Thomas has been voraciously reading the Harry Potter novels.  He’s now over halfway through the second one, and asked me the following question at dinner the other night:

Dad, why does Moaning Myrtle hang out in the bathroom?

I responded:

Well, she died in the bathroom, so that’s where she haunts now.

I kind of expected that to be the end of the conversation, but he had a followup:

Dad, did Moaning Myrtle die on the toilet, like Elvis?

Now, Thomas is 9.  I’d bet serious money that he has no idea who Elvis Presley is.  And he’s 9.  Did I mention he’s 9?  How did he possibly find out that Elvis died on the toilet?

No, I think she slipped and fell and hit her head.  But how did you know that Elvis died on the toilet?

Of course, I’m waiting with bated breath to hear this one.  And I guess it makes sense in retrospect:

Anthony [a kid at school] told me!

So now I’m left with trying to envision just how this came up in conversation.  Were they discussing Pokemon or their favorite Wii games, and Anthony just happened to bring it up?  “Yeah, the penguin suit is really cool, but the fireflower lets you shoot fireballs.  Hey!  That reminds me!  Did you know Elvis died on the toilet?”

I’m just coming up short here.

Tags: ,

Interactive Fiction WIP Progress Report

I’m working on a project for this year’s Interactive Fiction Competition (IFComp 2010).  It’s one that I started as kind of a small palate-cleanser after last year’s Comp, intended to be a quickie adventure for my son.  As I worked through the idea and setting, however, I realized that there was more there than I was planning on implementing, and I reevaluated the scale of the project.

The result is my current work in progress (still nameless for now).  I’ve been working on it almost since I submitted last year’s entry, aside from a couple of breaks, and I’m happy to report that I’ve completed implementation of the last puzzles and the ending sequence, at least in skeletal form.  Much of the early game is more completely implemented, but getting the “bones” of the rest of the game laid down means that I don’t have to worry too much about infrastructural issues any more, and can concentrate on finishing the writing and improving the polish.

I’m very relieved to be at this stage; I pushed hard to get here over the past month and am happy that I achieved this.  I can hear you saying “But Matt, it’s the middle of July!  Why are you worked up about completing your game when you have two and a half months left until the Comp submission deadline?!?”

Well, there are several reasons.  First, with a baby in the house that’s almost exactly as old as my WIP, plus two other young kids and a wife I enjoy spending time with, getting time to work on the project is not easy.  I’ve used almost the entire amount of my free time since the last Comp (except for a Dragon Age break) to get here, and I’ve needed it.  I know that finishing the rest of the game in time is still going to require focused effort, especially when school starts back up in the fall.

Second, I have a much better idea of what goes into creating a finished, polished game than I did last year.  For Grounded in Space, I didn’t give myself enough time for development, for learning the tools, or (most importantly) for testing.  This year, even with the game scaffolding implemented end-to-end, I still have the following left to do (in roughly the order they need to be accomplished):

  • Enhancing the in-game tutorial
  • Fixing some known game-derailing bugs
  • Write out the ending sequences in full
  • Test and enhance the default message modifications
  • Implement some additional short scenes and interactive dialogue
  • Review my keyword implementation to ensure it’s consistent and useful
  • Perform object testing a la Juhana’s Object Response Tests
  • Alpha testing
  • Revise my writing
  • Test compatibility on various interpreters and platforms
  • Set up Quixe-specific modifications required for proper keywording and exit-lister display
  • Do cover art and a blurb
  • Beta testing and bug fixing

So no, I’m not resting on my laurels having gotten to this point.  If anything, getting this far has only permitted me to lift my head up and see how far away the finish line still is.

Wish me luck — I’m going to need it!  And for all the other authors this year – both returnees and first-timers — I wish you the best of success with your stories!

Tags: , , ,

New Ethshar Serial Starting

After too long, Lawrence Watt-Evans is spinning up a new Ethshar serial — The Final Calling.  His Ethshar novels are excellent light fantasy, and are notable for having both a great amount of interesting, powerful magic as well as very believable, human characters that for the most part treat magic as just another phenomenon to deal with or use as they go about their lives.  They’re loosely-connected, for the most part; you can fairly easily jump in at any point.  I’ve enjoyed every one of these novels thoroughly since the first one — The Misenchanted Sword — was published when I was in high school, back in 1985.

The way these serial novels work is that every week, assuming enough contributions have come in to pay for it, he’ll post a new rough draft chapter.  Anyone in America who contributes $25 or more will receive a printed copy of the completed book (thresholds slightly higher for other countries).  It’s already paid through Chapter 11, and I haven’t sent my $25 yet, so I’m guessing this is going to be a pretty successful serial.

This seems like a pretty good way for authors to be paid to continue work on series they enjoy, and which have a strong fan base, but for some reason are not appealing to traditional publishing houses.  Lawrence Watt-Evans has used this model successfully for two Ethshar novels in the past, and is serializing a science fiction novel (a sequel to his earlier Nightside City) simultaneously.

Check it out if you enjoy light fantasy written with wit and intelligence!

Tags: , , ,

The Quern is Stephen Fry proof thanks to caching by WP Super Cache