Sunday, May 11, 2014

How I broke into the scene

This is my first post that goes out to planet-IF, and I hope it's relevant, in that, if you want to start contributing, it can really be anything that helps you do so. I started in the most abstruse way.

There'll be other posts on this blog, too, to planet-IF, but they will probably be more summaries of a week's writing, so as not to detract from more serious and higher-level stuff. I'm glad to be accepted by the planet-if Big Man, and I hope you find my writings interesting and relevant.

More below the cut,
  Andrew Schultz



Back in 1999 or so I think a coworker showed me that, yes, text adventures weren't dead. In fact, there were several languages. I recall writing really basic stuff in ALAN and Inform 6 before getting intimidated and giving up.

There was so much other retro stuff out there, particularly graphic RPGs in Apple emulators, that this shininess distracted me a bit. Sure, I was able to web-search and download z5 files for WinFrotz, including some games from the IFComp, which even had two divisions. But making something? It all seemed too complex. I had old adventure games to draw maps of. This went to the back of my mind.

Then in 2010 Wade Clarke told me about a game he'd been writing called Leadlight. He needed some testing, He kind of suckered me in, which was a good thing, as my reaction was "I can't test a game! I test software!" I made a raft of excuses--it'd get in the way of my job, etc. Part of me really wanted to make that time, but I didn't know anything about EAMON, which he wrote it in. Later, I found this sort of thing can be an asset, and I look for it in my own prospective testers. Or in a few of them, for a new view.

Wade's first request for me wasn't even to look at the game--it was to look for stray GOSUB/GOTO commands. Wade asked for a program that'd nail this down *if* I had the whole list. (This is another thing I didn't figure--how to print an AppleSoft list to file.) This is another thing I emotionally said would be too tough until I was able to sit down and do it. I'd written a lot of PERL there but I do have a problem with new stuff. I have to be pushed into it, often. This was an ideal situation, because it was not hard at all once I thought about it.

  • read through the file, $a =~ s/ .*//g to leave line numbers. $hasLine[$a] = 1;
  • read through again. I forget the solution I used--perhaps a search and replace .+?(gosub|goto) +([0-9]) to $2, then seeing if $hasLine[$2] = 1. I would probably use split, with spaces/colons, then walk through the array, checking the items after GOSUB or GOTO for $hasLine[$_] == 0--if so, throw a warning with the line number.
I found 3 misfires this way, which doesn't seem like a lot, but in the process, I managed to dispell something that worried me from when I was a kid--if there's a bad goto, how'd you know? Also, from Wade's perspective, he knew there was one less bug.

After that I was able to get going on the game. Some stuff I noticed but blew off got called out by other testers/reviewers. For instance, the charisma stat. I wound up having fun nitpicking and not worrying if it was too much or too little. It was more fun to playtest the game than to play a real completed game. It was also a good experience not to feel boxed in by what I should know. This is a problem at where I've worked for a long time. While it's important to work around this, it does take time and energy that feels like it could be used better other ways. By the end of the project, I even had places where I said "I should know about this" in the game itself. It's awkward to ask if you should know, and it takes time either way, and I fortunately had the ready-made excuse of "well, I have a job and that makes me forget the details." So that worked OK.

The big error I made, though, was not following up on a certain bit of testing I did. The up arrow is a control-key on the apple. I think the game reacted badly to it, so I tried something and asked Wade to fix it. He did, and I didn't retest it enough despite being asked. This caused a bug that, thankfully, nobody found until post-comp. But it was embarrassing to me. (If you're curious, it's pushing the up arrow then return. My test case was up arrow, keys, return. So I didn't try the simplest case.)


One thing that perpetually frustrates me is how I blow off my own testing. I've been caught too many times saying, people more with-it than me would test X, or if I spend time testing X, that's time I don't spend working. This negative approach is largely my own fault, but fortunately Wade's work (among others') on my 2012 IFComp entry helped me pick a lot of things apart--and not just the game.

This will be in the next blog post, where I'll discuss how things happened when I was on the reverse side.

No comments:

Post a Comment