The Yomp on the Comp: the story behind the half-story

Well, I don’t have a blog, but I wanted to write a wrapup that just because there was a lot that I learned and a lot I just wanted to say. My goal was the top third, and enough people liked the game for me to get back, so I am grateful. I also wasn’t sure what I wanted to say, and I wasn’t sure what the placing cutoff was for someone to be able to Say Something (actually, I don’t think there is one,) so this is a bit delayed. Hopefully it has enough substance. and hopefully there aren’t too many misfires, as I am using speech to text software and have a bit of a cold. I didn’t proofread this before sending, so there’s that.

Before I talk about me, me, me, I’m grateful to my testers, who each found one thing that would’ve looked or been horrible early. Thanks to them, you couldn’t walk off with a door, the goat or even a store. The 26-choice disambiguation probably would not have been fun either. More subtly, a lot of them mentioned that this puzzle didn’t work. Often, I had to wait a month before giving a reply. Often it required more than one mentioning it. Trust me, though I think some of the puzzles are still kind of nasty, a lot got removed once my testers helped me start nailing down what it was I really wanted to do.

Oh, and they weren’t responsible for the debug messages slipping in on the first release. That was me organizing time badly. More on that later, but first, a thanks to people who mailed/messaged me in-comp with bugs to fix and nice words, or people who had something nice to say in their reviews. They include Matt W on here and Jason Orendorff, who may or may not know of this forum. They will include Heartless Zombie, who sent me a transcript I will find useful once I get through a backlog of notes. And they helped me feel less silly about stuff I planned to test but somehow didn’t.

Thanks to the people who helped me with technical bits on this forum. Sometimes it’s hard to ask, and sometimes thinking something’s impossible or too-tricky in Inform prevents me from writing a puzzle that uses that.

Zarf’s code to check for transcripting and Climbingstars spelling out how to use pronouns helped me breathe easier about lots of things & also opened me to cool inform 6 programming, but there was lots of puzzle-specific help, too.

Also, thanks to the people who made the author forums fun. I realize that this game would be odd to say the very least, but then again, I also know how I like to see odd games from other people, even if the games have flaws. And hopefully seeing a game like this encourages someone else to make his or her own again without really worrying about critical reception.

And thanks to the reviewers who pointed out what I could have done better, what they liked, and in some cases, that they liked it despite some faults. I know I was kicking myself for missing a few things, and having forgiving reviewers makes me happy. I’d like to think I was able to do the same with other games, and I encourage people not to worry too much about getting hammered for various mistakes. overall, it seems a waste of time, versus actually making sure certain things are fixed. it’s really nice that this competition feels more like doing a lot of cool stuff then like being graded.

So hopefully this topic is not just about me and my game but about finding a game idea and developing it, with some humorous looks at bad mistakes and how not to let them happen again, and not worrying too much about if people don’t like it. Just taking care of what you can, and not worrying if you’re cutting-edge. Oh, and having fun, and making sure that people will have fun, or that you give them the best chance of enjoying it. I came up a bit short in the second part, because I realized there were a lot of bugs, but I appreciate the people who mentioned that they liked the game anyway. Of course, I still want to fix them.

Lots marked in spoiler tags that might be too TLDR in an actual post.

Now, part -1, about that pseudonym:

[spoiler]I’ve always wanted to have a pseudonym. But I never found one I liked. I didn’t want it to be derivative, and I didn’t want it to be based on another game. also, I wanted it to be hard to Google, something someone hadn’t thought of before. Now the mechanics of my game obviously made for a good deal of possibilities. Sam LeNeaf as “False Name” was a stopgap, but once I hit on Pseudonym, I had possibilities.

Spud Money, Don Muspey and finally Moe Spudny felt like it was getting somewhere. again, tools like Perl were insanely handy for this sort of game, and I just pulled names with those nine letters until I realized Ned might be good. I liked that beyond this sounded like a pompous, or possibly some weird magical animal, so I went with it. I noticed Baf figured it out, but I was surprised some testers didn’t. I figured they probably thought it was a bit cheesy and didn’t want to hurt my feelings. Apparently, though, some pretty sharp people didn’t figure it out. In a way, I got the best of both worlds, here. It’s not nice to fool your players during the game, but if there is a side puzzle they don’t quite get which isn’t critical, I guess I get to feel smart, and hopefully, they will be able to groan pleasantly at what they missed. I have to admit, I really do like puzzles like that, such as chess mate-in-3 where you can’t check the first two moves, and I understand that most people don’t. And I don’t blame them.

Still, I think the pseudonym was more about just that it would be appropriate and neat, and I didn’t really care if I were actually anonymous. I am vaguely interested in who figured out who I was, but that wasn’t really the point will stop the name gave me a boost, and it was just another in a sequence of things that made me feel I was really going to complete the game. I recommend it for people who haven’t tried it. I enjoyed being surprised by last year’s pseudonyms, and that may have contributed to me trying it this year. Plus, I was a bit worried people might grow and shake their heads at a guy who wrote a rickety baseball game coming back with a wordplay game.[/spoiler]

Part 0, about the game:

[spoiler]And in fact it started in 2011, in the author forums. we had two wordplay games that year, PataNoir and Ted Paladin, and you should check both out, because they are fun and, since they’ve both been updated (I think,) even better than a year ago. I don’t know if Simon Christiansen’s first language is English, though I think he lives in Scandinavia. I never asked, but I’m fairly certain Anssi Raisanen’s isn’t. I guess I felt a bit jealous while enjoying their games, saying, well, why can’t I do this? But I had no ideas.

So I half forgot about it and read and reread Aaron Reed’s book that I bought a couple days after the 2011 contest started, which was a year too late. I can be extraordinarily cheap, and so I put off buying a $25 book which would have given me enjoyment and, likely, made Fan Inteference a heck of a lot less confusing. There would’ve been fewer unwinnable states, fairer puzzles, and better implementation (and there may still be if I ever update it. It’s halfway there, but my new projects are too fun.) It still would have been about baseball, though. Sorry about that. But I think a bigger problem was that I did not give steady time to the game but instead put it aside for a month or so. I focused a lot better.

So I really have to say that technical things aside, having 2-3 days a week of 15-30 minutes poking at the game is helpful. I got a lot done planning or pseudocoding while on the train to wokork or going to and from my Athletic Center at it really added up quickly. that is the one big piece of advice I have, bigger than which programming language to use, or tricks in a programming language, or even creating puzzles. There is so much opportunity to say, here is a start that I need to sleep on. It’s difficult to say, have a bit of faith, without sounding like a self-help book, but I think it works. Just not right away.

But I know I started on FI during the 2010 comp. I managed to program the whole baseball game, but I put it aside for a few months, for various reasons. I had to brush off a lot of cobwebs then, and the end result was as if I hadn’t really thought of it in advance. SA got regular time, and even when I had an idea I couldn’t use or implement right away, I had a place to write it down. That was huge.[/spoiler]

So, my game and how it progressed, part 1:

[spoiler]I really wish I had started keeping track of my source code early. Source control didn’t seem viable, but given the ability to create bugs or have my testers create bugs, I think it will be very valuable in the future for more than remembering how things started. But basically, when I sat around thinking about what would make a good wordplay game, I wondered if there was something that Nord and Bert hadn’t covered. Nick Montfort’s I Palindrome I got me thinking that it could be about more than just figures of speech. Of course, during my sessions, I wound up playing Ad Verbum, too, and I enjoyed the variety of puzzles. Surely something was missing that hadn’t been done yet?

So, poking around for word games, I found that anagrams were a possibility, but of course, they would be messy. I didn’t even have a single puzzle. but if they gained critical mass, I thought I could do this. It wasn’t until late April or May or so that I gave it a try, but that first one was pretty bad. It had a forest, which had pines, which you could transform to a snipe, which would run away. That would allow you to go to a moor, which would lead you to a room. I didn’t have any actual puzzles for this or any cluing, but if you’ve played Shuffling Around, GRGRG on the pines with the gadget is a groaner.

So I wanted something change into the forest, but the anagram server didn’t give up much. I wasn’t sure how to fit adjectives into the game, or even if I wanted to. It wasn’t until I try to find which he words would fit into the forest that I realized the store would work. From there, I downloaded a file of known English words and made a little Perl stub which let you look at the anagrams from (word)+(letter) given the word. I got possibilities. I managed to create the mechanic where you actually change items. The rest would be easy, right? Just find anagrams and throw them in the game.

So I found a script to match a word all possible anagrams. Computers can do anything, you know, and Google is your friend. I wanted to make sure there were enough. There were 20,000. I did nothing for several days, bowled over.

Once I dealt with the enormity of the task, I started chipping away: 500 to 1000 a day. This was an advantage of starting early. I didn’t have to panic, and if I had to sort through several different terms only useful in organic chemistry or, perhaps, an advanced medical school course, there would be that one that was just plain clever or made me smile. There were virtual duplicates, too. (A<=>B and As<=>Bs)

So that took three weeks or so, maybe four. And it cut the list down to just over 4000. But I had been taking particularly good ones, and the forest seemed to be taking shape. Actually, there were a bunch of other sections, to, and I kind of went crazy on at all. Fortunately, the coding was a nice break from just staring at anagrams to toss or keep. As it turns out, I created nine areas. Many were pretty horrible, in terms of obscurity and depth. I knew that there was probably no way people can figure out what was going on, even though I had tried to organize things thematically. Only the Forest was any good, and it had a bunch of puzzles for puzzles’ sake. The Sorting Area in particular had you guess something before you actually anagram-flipped anything, and it took a lot of talking from my testers before I saw the light. And the whole deal with the livers was a heinous mess. The grinder didn’t come along until very late indeed.

Oh, and the Resort was just about typing in the final command, and it wasn’t even a resort. it wasn’t really well clued that you have to use a verb, either. You have to start somewhere.

And it wasn’t until I decided to throw in the introductory number puzzle in the Sortie that that region started moving. I am proud of it, even though it was another example of debug text leaking through to the release. I eventually figured what I wanted to do with the more and while the rest of the puzzles were pretty painful to get even remotely working, I was happy that I just had a path through stop at this point, Woeful Pat wasn’t even and again, yet, so the apostles felt even more abstract than they wound up being. I just knew that I had a lot to do in order to make this game feel like more than an intelligence test. I realize I wanted to establish more than a word puzzle, and I wanted some sort of clue in as to how you should change things. Often, I would throw something in the description, but that was not enough. It still might not be.

Oh, and changing the cask and sack back and forth was a pain. It seemed to take forever to disable an infinite point bug. The other sections were still bummers, too, and all over the place. So I ditched them. They’ll be in the sequel.[/spoiler]

Part 2, or, adding adequate(?) hinting:

[spoiler]However, at this point, the game seemed initially horrible because of the lack of concrete clues. There were some descriptions, but the opinion from my testers seemed to be that it was very clever once you figured it out. That is not a good recipe to drag in someone who may be is on the fence about word games.

At this point, I also took a step back and look at a transcript Wade Clarke had sent me. I generally don’t like to point to a specific tester above the others, but he wrote a blog post about just this thing, and I would like to point out that this is a case where it worked. Basically, I had nested hints to start, using Eric Eve’s adaptable hints. These are a wonderful technical innovation, and I learned so much from the source code to stop it really helps you organize things, and it can prevent you spoiling things. The one thing it can’t do, however, is keep the flow of the game going. Often, you have to go back through several menus to get to the next part, and you can’t really bookmark what you had. I think it works well for some people, but I can see how it would get very annoying in this game, and people would get very impatient looking up that next hint. These are not easy puzzles, and while I wanted to do expect a good deal from my player, I would not want him quitting in frustration. I figure even any time someone headed to the anagram finder was a loss from me.

So I decided to develop in-line hints. I liked the compactness of the code. I liked being able to see directly which hint the player gets. I also like being able to print the currently available hints to an external file with a neat debugging command. My testers took the approach of sending me something when they got stuck, and I asked for the external file and the transcript, which worked really well. It hid the later bits until they were fun and helped me polish the early hinting.

Those who looked at several builds paced themselves like this, and I think that made for the best experience for them and for me. Their logs and hint logs also helped me to see what clued what, when, without spoiling anything for my testers. I think there is a lot of room for this under the hood finagling, and I haven’t found an extension that does it well. I can think of a way to make one, but I think it would be very nice for medium to high complexity games to be able to integrate this regularly. I think it worked really well, overall. However, changing direction mid-game does have consequences.

Because there was a slip I failed to consider, at the start. I actually modified this part twice. I had some pretty detailed hints for the start of the game, but when I moved from the one format to another, they got cut down a bit. My testers, including those I called in at the last minute, entered the passage pretty quickly, but the hints to go there if you didn’t figure it out had a logical hole. so this is a warning against changing direction or something basic in the middle of things. You really do need to look at everything again, and that takes time.

But it was still too hard.

So I needed to find a reasonable in-game cluing mechanism, and it needed to be called something appropriate. I’d played MasterMind as a kid, so I needed a name. Thesaurus.reference.com saved me so often during this game. Gadget, tagged, bam. It also provided (eventually) the idea for the cover art. (Incidentally, there is a way to remove the tag to break the gadget.)

I could just write a script, and with the list of stuff that you had in that you needed to make, I could get what the gadget had to say, with the Reds and the greens. This worked great, except for cases where I added something later. I did have a command in the debug version to see what needed text, but the problem was, I made some really dumb mistakes on some four and five letter items while getting the longer ones right. I figured that wasn’t worth checking with the computer just for one or two things, but they piled up. Unfortunately, even after I took into account that I would’ve probably be able to see anagrams better than the people playing the game, there was still a gap. I think I learned my lesson pretty well by trying a few online quizzes where you had to figure out anagrams of something that became country capitals, or something. I realized how hard it was, without adequate hinting.

I still don’t know about including both the gadget and the slider, and I don’t think I clarified the differences and balances I intended, say, with old man Almond. Conversation didn’t really get organized until September 15th or so, when I realized how to be able to ask about either a thing or a topic. The main difference is that the gadget lets you get started quickly if you are stuck. For instance, each store has an item attached to it, which also anagrams with where you need to go. Putting these two together, the player can logically deduce what the name is with the gadget, or reduce it to about six or so possibilities, and things should fall out pretty quickly.

But of course if the gadget whiffs on, say, the drainage, you don’t get a lot done. Possibilities do drop from 8!=40320 to 14830, but that’s still just cruel. The roadblock is also pretty nasty, and I tried to alleviate that with a 4th-wall joke.

So the slider is more powerful than the gadget on any generic item, because you are assured of getting two letters. However, having a bunch of items to clue something you need to get can make the gadget more powerful in specific cases.

Possibly the two hinting mechanisms were probably a bit of me showing off for having fun, and also, they may have cost me a bit more time than was really efficient, but I was pleased with them. I was just worried that having both of them would be too powerful. I may change this in the post-release version, to allow the player to use both if he gets through one area, or having the cabinet follow you to the Trips Strip. My logical side says carrying both could make too many puzzles easy.

I have also tinkered with the idea that, if you take both things, you may need to get through all three areas to win the game. This may also force me to explain certain points about the plot that I just didn’t. I’m interested in suggestions.

Overall, though, the best part of my hint revamp was that I had reason to believe the puzzles would take less time, and that would give me an opportunity to add a new area which might be fun. I wasn’t sure how much time the average player would take, and that is hard to judge, but it seemed reasonable that if I added a third section, the player could have the option just to look at two. I have to admit, I have no clue how to judge which section would be easiest, but all the same, the game would have seemed pretty lame if you could skip one of the first two sections. If there were three, it seemed like more of an option between having more fun, if this game was your thing, and having done the majority of the game.[/spoiler]

Part 3, or, the third section and the epilogue

[spoiler]Once I felt a bit more confident that a new area wouldn’t tax the player too much, the metros just sort of fell out and felt logical. Seems kind of obvious, now, but I just didn’t like the word Metros for some reason. It felt artificial, but then again, this game intended to be surreal. But I started noticing that several flowers as anagrams, and then I liked the concept of noise in the city that you had to dispel. I think the key thing that made me feel it could go was the Velcro and clover. I didn’t consider calling the city Mt. Rose until late, and that was what made the gadget useful enough to help above.

The region seemed maybe a bit sparse at first, though, as I did not have the emitter in place. while this section was started around mid August, I think I may be most pleased with it. It has a few alternate ways through, one of which caused a potential game-breaker I had to fix mid-comp, but I was able to cover some of the puzzles with multiple cluing items. I think it also does the best job of balancing the slider and the gadget–well, post-release. The drainage has stuff floating in it now, and the Nerds have books on word puzzles by certain authors–well, on my computer, anyway.

I just had a nagging feeling about the puzzles like I could be doing more to help the reader without spoiling them, and it wasn’t until I had a chance to breathe from the actual release of the game that I saw a way to do things better. Most of the time, I was able to fix things. But I started the Metros too late to fix everything.

At the same time, I still needed a villain I still needed an overarching reason for why you were doing what you’re doing, beyond a puzzle or string of them. the resort was pretty much just walking in and doing the final command, but like other puzzles in this game, something I saw tipped off what I could do. In this case, it was a can of Red Bull. Energy drinks are inherently vile, and once I twiddled the name to realize that Burdell was a legitimate last name, I also remembered that George Burdell was a gag name at Georgia Tech University. That did it. I also wanted to establish that he was a role-playing character in a world where numbers did not count for much. I’m not sure if anybody figure that out, and I don’t think I adequately clued it, either, in the conversations with old man Almond. It’s also why he was able to flip Noble Ol’ Ben/Lord Ablemiser.[/spoiler]

Part 4, of crunch time and features I couldn’t get in and dumb bugs

[spoiler]I definitely made a mistake in budgeting time for the final stretch. My company had a project at work, and the expected release date was around August 1. Of course, these things generally drag on, and I figured I couldn’t drag on past September 15. that would give me two whole weeks. Now, of course, it didn’t work out that way. We released on September 27. and while I managed to get a lot done in those dead days before the release, I would have gotten even more done if I hadn’t worried about that. There are a lot of times when I just put stuff off because I figured I would concentrate better later, but unfortunately, a lot of that stuff was really trivial once I got down to it will stop that doesn’t mean it’s not necessary. It just means that, in games, a lot of stuff slips through where you say, Gee, I know I could have done that if I had been paying attention. As I mentioned before, this may be a case of taking 15 to 30 minutes just to look at something that has been bothering me all stop even letting one thing fall per day is a good pace, and often, when you start on something, it leads to other things.

And because of the sort of things I was adding late, like more flexible conversation, or less inflexible, I didn’t really have time to give the polish I had hoped for–or fairly ask testers to help me with it. I had to leave a very insightful transcript for October 2. My loss, obviously.

You see, I had hoped to ask for people I didn’t know very well, or at all, to look at the game objectively and see how someone would evaluate the game without worrying they might be hurting my feelings. Now, of course, having supportive friends who are willing to point things out and be lenient and say stuff like, oh, I think you meant this, are inherently valuable early on and help boost you. However, people playing the game are not necessarily going to do this. Many are willing to be forgiving, but especially with a pseudonym, I can’t really expect someone to say, gee, I think this is what Ned meant, and I will let it slide. The testers who signed on late did very well for me in this regard, and if I had given them another week, another iteration might have uncovered even more. But I know testing is exhausting even for a simple game, and it takes time to uncover the deeper bugs. Since I am paid to test software, I understand the process. You just can’t see everything without driving yourself crazy, and given that these people aren’t paid to do it, I want to make sure they get nowhere near that level of frustration.

Speaking of testing–I understand about testing cycles, writing test plans, and so forth. Unfortunately, I didn’t really apply a lot of that knowledge, because I felt, oh, this is just a game, that would be overdoing it will stop but I wrote out a test plan for a simple game and used it to check off on the author’s changes, and I think it went really well. It saves a lot of time, and most importantly, I wasn’t left worrying if I had missed something. For me, that is a big drag. So, I recommend creating a test plan. I’m not talking about anything with lots of frills, just more, does this work? Was this tested, when was it tested? it’s also useful just to write down stuff you are worried might break, but you just don’t want to test all the test cases when you are actually creating your world. Google docs works great for this, and while I used it for a general outline of my game, I think it is also good to have a spreadsheet of test cases.

The other thing I know from being part of a software release cycle is that you do not change anything big in the last few days. And while I made a conscious decision not to tinker with any core mechanics over the past few days, that still wasn’t enough. Quite simply, you need that time to relax and make sure everything is right, and to be able to try different things and not be too panicky if it doesn’t work. My big problem in this case was a message to my testers. Now, I had set it to not for release 24 hours before the deadline. But I decided to fix that just one more bug. Unfortunately, the best way to see what was going on was to unmark the not for release part. Uh-oh.

Now I could quite simply have had this message in a small section and walled it off, while leaving my main debugging volume open. however, I convinced myself I didn’t have time to try that, or make sure that it worked. Of course, I had considered this before, but fact is, when you get in a time crunch, you don’t have time to think logically and sensibly about everything. This sort of thing happens. I figured that out after a good night of sleep.

Even worse, I figured another way to do something simply that would hide things from the end-user. it goes something like below.

[rant]section debug-state

debug-state is a truth state that varies.

to d (x - text):
if debug-state is true:
say “[x]”;

section use-debugs - not for release

when play begins (this is the let me see debug state but not players rule) :
now debug-state is true.[/rant]

It turns out that I really did have this,but it was the more awkward command debug-say. This lack of convenience probably cost me. I just didn’t want to type debug-say when I was in a rush.

The other big bug was also something that my testers also had no chance of catching, because I did not release an official build to them with it. it involved the numerical puzzle in the centrifuge. Basically, a few testers had suggested it was a bit too hard. This was back in August. I agreed with them, but I couldn’t see any way to go about doing things. I think I had put the hinting in, and that would work for right then. Finally, I looked at the last things I had to do. Surely, this would not mess with the mechanics, and I had a neat way to go about doing things. A binary search! Of course! Any rookie programmer can do that, and it should not take too long. It’d almost be insulting to ask–surely I’d check…

Well, it was so easy and simple and straightforward, I really should have done it back in August instead of thinking about what I might do when I had more free time I’ll stop I should have quite simply put the puzzle in place and told my testers to mess up at it. As it was, they basically gave it a pass, and while I had a file of suggestions, I never explicitly asked them to look at it. And they were good about looking at stuff when they did. And of course, d “(my number) (right number) etc.” as above would have mooted this issue completely.

Another bug that popped up was due to a very sensible suggestion that I allow the oils to be visible in the room behind the trellis or, at least, pourable. This sprung something after I mistakenly evaluated the code change as low-risk. You could just pour out the oils right there before they were in the cask.

Bad programmer testing also contributed, but again, it’s an example of how stuff can and will break.[/spoiler]

Basically, it was after discovering these overlooked bugs that I knew I wanted to write some sort of postmortem in order to get this point across, at least for Inform programmers:

You know how Inform is rigorous about you having the right grammar and syntax, and it prints out errors, and it’s pretty easy to fix them once you know what they are? Well, inform doesn’t particularly bother about your actual game text, you can’t expect it to, of course, but you will make approximately the same percent of errors there as you do in your code. Now, this really adds up. Reading a transcript on your own will only zap so much of it, too.

Also, too important to spoiler-tag:

After some intense code writing, you often come away with good stuff you will do a lot better next time. In my case, it was about saving the code more regularly. When I was able to compare, say, my code from October 3 against my code from September 30, the quick inspection turned up a few bugs that would have been painful to test or check for. This means fewer annoying obvious bugs for your testers and lets them look into things more. in an actual software environment, this is called code review, and it should be done by someone else. Now, it would really be cool to have someone you could swap code differences with, but that is asking a lot.

In my experience, if you have had a day away from a tough piece of code and come back to it, you’ll notice the awful stuff, like below:

check putting it on:
if second noun is silo:
try putting noun on second noun instead;

I think even non-Inform programmers can see what is terribly wrong with that and possibly what I meant to say.

Part 5: the future

I still have a bunch of transcripts to go through. Someone sent me one I haven’t looked at, because I guess I need a bit of time away from the details of it all, and yes, I really wanted to write this topic.

But I think I have some big picture ideas of what I want to do for the post competition release, which I want to be within a month at the most. Oh, and I’m still interested in transcripts anyone has, and I would be glad to exchange testing. It doesn’t have to be for the whole game, maybe just for tricky points.

So what’ll be new? This release will have colored text for the two hinting items, lots of code cleanup (I want to publish the code) and also you’ll get more backstory. And the place you rescue? It will have a name. That sort of got lost in the release crunch.

I also want to release detailed logical solutions for some of the problems, not to say, hey, look, you should have figured this out, but more just to show that scanning store I and the Tories with the scanner can give you a logical solution as opposed to one with a bit of guesswork. it would be strictly optional, and I don’t think it would have done particularly well as a feelie, but it is something about the game I think is worth documenting.

Finally, those game-sections I junked? Well, there is enough for a whole new game. I want to go about it quickly, though, and I don’t want to unleash it on IFComp 2013. I think I know most of the basic bugs that will pop up again, and the core engine can be used in some cases. It’s going to have more of a story, too, and I have a hint mechanism which will be adjustable for player difficulty. I don’t want the game to have nasty puzzles if the player doesn’t want them. I think I’ve learned my lesson from this game.

“They include Matt W on here and Jason Orendorff, who may or may not know of this forum.”

I didn’t, until today, and I stumbled across this post purely by accident!

Two notes:

  1. You can (and should) use source control with Inform 7 code! It’s just files.

Unfortunately, the Inform 7 IDE (on Mac, at least) doesn’t play nicely with subversion in particular. This is because the IDE clobbers and recreates the entire project directory every time it saves. This wipes out your svn subdirectory. Other version control systems (like git) can be used with Inform, and even if you happen to be using svn and a Mac, a workaround would be possible.

  1. I’d be happy to swap Inform 7 code reviews. You’ve got my email address. Do you know how to make patches?

My current solution for source control with svn is this script:

pre-commit:

#!/bin/sh

cp -r $HOME/inform-directory/ $HOME/svn-working-directory/inform-mirror/
cp -r $HOME/Library/Inform/Extensions/Mike\ Ciul/ $HOME/svn-working-directory/public_html/i/

scp $HOME/inform-directory/headache.inform/Build/output.ulx username@testing.site:testing-dir/

SVN 1.7 no longer puts an .svn in each subdirectory; there’s just one at the root, like Git. So you can use it with I7, as long as you SVN-ify your entire work folder (not the the foo.inform package).

I could tell that Andrew was taking a very organized and professional approach to betatesting, but I had no idea how involved and complicated the whole project was. This development account should be archived somewhere; I’m afraid this 2012 sub-board will probably go down eventually. It should probably also go into the Special Extended Edition re-release. [emote];)[/emote]

Don’t worry, we don’t delete threads from the Comp Discussion board. We just move them into another board (Competitions or Game Discussion) when the next Comp rolls around. Not that there’s anything wrong with archiving a good post elsewhere, of course!

Indeed so. In fact, Andrew actually started beta testing Shuffling Around at the beginning of July!

Thanks for the interest and nice words/advice, everyone! I’ll write more later but for the moment I’m happy having established a repository. I suspect I’ll want to add more files later, but til then, I’m happy with just getting started.

Plus I want to get started on bug fixes.

code.google.com/p/shuffling-around/

Thanks…it was more of an Alpha back then. I needed a lot of pseudocoding sessions (I’ve found bus/train rides to/from work quite useful for this) to figure what I was going to do and if it was worth it, and they built up and paid off.

But I think there’s a lot that I picked up on from both of your tests that I was able to generalize so I didn’t have to lean on you again. I really recommend Juhana Leinonen’s Object Response Tests and Emily Short’s Property Checking extensions for doing stuff–and for checking other things out.

A huge chunk of debug code was devoted to checking which items were fixed in place, etc., and I definitely want to have that there.

Also, on the subject of fixing bugs, I wanted to mention–fixing bugs in-comp is -hard-, even harder than fixing them in the time crunch before the competition. There’s always the worry that something new will break, and it’s extremely awkward to ask for testers then. Of course, typos are pretty easy and low-risk to fix, but anything mechanical can come back to burn you. There are diminishing returns to scale pretty quickly once you get beyond the obvious mistakes you didn’t want in your release anyway. But I think updates are great to implement stuff you thought you put in there but didn’t.

And I hope everyone who means to update their game does. It’s not just about cleaning things up but about seeing how you could plan things better and fitting in the stuff you didn’t have time for.

Also, source control is already paying dividends even though it is an echo chamber–I’m just glad to have bugs and priorities written down for later.

Having been that sixth-grader who tinkered with everything in science lab to inadvertent disaster, I’m disappointed in myself for not having thought to try this. [emote]:P[/emote]

Well, I intentionally made it not-easy. You need a special item, and it needs to be at a special time, and the game asks you to confirm it.

Incidentally, in the post-comp time I’ve realized other stuff as well. Like that it’s a good idea to name your test commands unambiguously, because I realized that something that I thought was testing an alternate way through–wasn’t.

And it led to an unsolvable state that was easily fixed.

Also, I have to reiterate the value of time (and taking some every day for a creative project) in figuring how to make the game more workable. And of realizing the game doesn’t need to be as tough as I think it does. And of how there’re a lot of things I’m kicking myself a bit for not realizing because they seem simple now.

This was mentioned in Capmikee’s updates thread, but I realized it doesn’t make the game too easy when I give the player resources that will make certain puzzles less sticky. In particular,

[spoiler]The gadget/slider are now the gadget with the settings
[rant]CERTIFY (gadget e.g. check what’s right wrong) and RECTIFY (slider e.g. first/last letters.)[/rant]
I had this in my notes but didn’t get a chance to really look at it until things had settled down.

And a guy named Marcos will help you with macros after scanning a few times. (E.g. you can say R (object) or C (object).)[/spoiler]

I was worried combining these might make things too easy, but I think people saying “gee I should’ve seen that” is enough. And I think making the parser less intimidating is just nice for the player.

Because, for instance, a 6-letter word will have no more than 14 possibilities (a worst case example is WREATH <-> THAWER) using both analytic options & so it is brute forceable without being total scratchwork. I don’t want the player to be exhausted by the whole deal, either.

So there may be another chapter to all this once I figure everything I want to do and the changes I want to make.