That’s how I feel about coming in last place in the Jay Is Games’ competition. At first, there was this mist of sadness — not a cloud — just a light mist that seemed to slow my members and roiled through my lungs, but now even it is gone, and I’m laughing. Yes, I find it sadly humorous.
I spend two months of my life focused, dedicated, concentrated on turning out a game only to have it reviled in the forums, and to end up in dead last place. Never have I thrown so much time at something only to end up with dross. All you can do is laugh; I mean, the difference between the effort and the reward could not have been greater. And compared with the quality of other games? I can’t speak for every game in the competition, but of the two that I beta-tested, one required you to do nonsensical things to advance the plot, and the other had no clear plot at all. I find Zegro a clear winner over those two games, but it’s not me who’s judging the games. The crowd is the judge, and you know what that means. Yup, it’s just another popularity contest.
I thought the plot was unique. I thought the use of the theme was spot on. I thought that the main character was interesting. I was pretty sure that the writing was above average.
I guess in the end that no contest is really worth entering, no matter how many prizes they offer, nor the value of those prizes. There must be losers in order to be winners, and as long as you lose, your game will live on in infamy whenever lists of the winners are trotted out to amplify the egos of the vain.
Be that as it may, I don’t regret what I’ve made, even if it is unfinished. All this says to me is that the people who judged the game didn’t care for it, and in the end, what can I do about that? It’s simply luck of the draw that you get people who are willing to overlook problem A, but freak out about problem Z, in any given game. Who knows, and who can know? All that remains is that the haters have spoken and they dance around in their little circle of ash, thinking that they have delivered the ultimate judgement against my game, but they are wrong.
Not only will I keep polishing Zegro, but I will host it back over on intaligo when it’s done. It may not have as high a priority as other things now, but it will be complete this year. And when all the judges and haters have moved on to excoriate something new, I will be laboring on, toiling on, creating, and undeterred, even if I am just a small man with a spectacle making lives in miniature in a forgotten corner of the universe. I will have my own private victory and they cannot steal it from my hands.
One thing that hit me this week was how incomplete Inform 6 really is, and how unfinished it still is, years afterwards. Here are just some of the problems that made me spend hours and hours in providing workarounds, when I really shouldn’t have had to.
Objects automatically generated from a class. Really, Graham? So if I leverage these, there’s NO WAY to tell them apart unless I cook up some wacky global variable scheme? If I want to have six empty flasks in a game, what do I do? Create six almost-identical objects by hand and then test for them each time? Or create the same nearly-identical items but make them part of a class and test for the class? If it’s the latter, then there’s really no value in having a class that autogenerates items, except in a very, very restricted context. (You try and have six autogenerated objects that the user can add things to, and then try to figure out which item the user wants to get. It requires so much time that it’s basically impossible. I gave up.)
The verbs. I ended up touching an incredible number of verbs in order to handle silly situations like taking items already carried by the player, referring to items that were inside of other items, and so on. That leads straight into the next two issues.
Did you know that there’s a bug that’s seriously hobbled the Inform parser for four years? I didn’t. What happens is that if you try to
verb noun 'filler'/'preps'/'here' noun and don’t specify the last noun, the parser naturally asks you ‘with what’? If you provide a ‘what’, the resulting re-parsing request doesn’t fill in the noun as you’d expect. Oh no. It adds in the noun ‘it’ and tosses in the noun, which ensures that the request fails. And there’s no real solution to the problem.
The total number of words per grammar line issue. Apparently if you have a grammar line like:
verb noun=routine 'filler'/'preps' noun, the total number of words in this line MUST be greater than the total number of words in your object’s names. If it’s not, the line will fail and you’ll end up with some weird error coming from a multiexcept or whatever else is further down in your grammar. I didn’t see that one coming, either. So what you can do is make sure that your nouns have short names that are always two words or less, and expand your filler preps to three or so.
The brittleness of Inform really annoys me. Heck, even that wouldn’t bother me IF the people that maintained it actually responded to bugs, fixed them or allowed others to, or generally cared! Seeing as they won’t and apparently never will, all I’m left with is my angst.
Maybe I’m just not good at designing classes (which is possible but even that goes only so far), but it seems as objects are added linearly, the work involved in making the game realistic rises exponentially. Each new object has the ability to interact with all other existing objects, and even relying upon standard responses from the classes of each object leaves the world feeling threadbare and spartan. The language itself does not help you in this regard; and there are no tools to handle this. It’s like all Inform authors do one of three things: 1) write very small games 2) take forever to produce a game 3) write spartan games. Each of those three positions is a retreat into substandard authoring. Yet, that’s been the way Inform has been for years, without any letup in sight.
So where do I go from here? I have one more project using Inform 6, Seasons, which is another epic kind of game, so I wonder if it’ll ever be done. I had read some time ago about how TADS requires a steeper learning curve, but it can handle larger games better because of its ability to handle the complexity explosion, whereas Inform degenerates into a sea of particulars. I don’t know to what extent this is true, because that issue can only be handled so much by the language; some of the complexity is just the nature of IF itself. All I can say is that there’s some evidence for the degeneration, based upon my experiences above.
I don’t want to throw all my work away and just move on to a new language; I really don’t operate that way, but I’ve had an eye-poking-out festival of pain with the parser that makes me never want to do that again. The only options I see are to move on, or to rewrite the parser to do what I feel it should. People have done the latter, in Platypus, but even Platypus is dead. So do I throw more time after the time I’ve already spent in creating some custom solution? Although it appeals to the tinkerer (ok, geek) in me, I just don’t think that’s a good use of time. Others have done a better job at writing parsers than me, so shouldn’t I just leverage their experience instead?
That leaves TADS, Alan, and Inform 7. I’ll be exploring each of these more in the games ahead.
It’s been a long slog of a week. I got my power supply fixed (and now my comp is quieter still), and I went through and cleaned up Zegrothenus. I lost track as to how many bugs I fixed, but I estimate it must have been over 200. And yet I know that there are still more lurking out there that only a good beta-testing would uncover, but I just don’t have the fanbase to accommodate such quick testing. It’s a sad thing, but I doubt that many IF authors do. Anyhow, cruise on over to the JayIsGames’ contest site and check it out!
I’ve always had a hard time with haters, those brave-on-the-internet people who feel it’s their divine right to utterly trash something that they don’t like, even when what they’ve done can’t hold a candle to it. I try not to let it get me down, especially when I’ve poured my heart and soul into something for weeks on end. I try to forgive and to keep forgiving, understanding that what people say really doesn’t define me and isn’t even necessarily accurate about what I’ve done. And I’m doing a lot better than I have in the past.
Yet I wonder what kind of petulance motivates such people. In the JayIsGames competition, I’ve found utterly unhelpful, destructive comments by people who submitted their own games to the competition. So much for unity eh? This is from people whom I have beta-tested their games, too. Charming.
We still have a Hobessian war of all against all, and that the functional maturity level in the IF community is pre-K. I’m not seeking mercy or favor, but a little bit of humanity, and even that’s not present! I welcome bug reports, because hey, you submit bug reports to improve the quality of something. But public devastation is a no-no unless you are one of the self-righteous Old Ones, and even then, it’s probably futile. I really doubt that saying anything about the actions or works of that crowd would ever penetrate their hall of mirrors, angled and aimed only at themselves.
So while I don’t crave censorship, and while I realize that revival is probably the best answer, deep within the grey corners of my heart, I long to collect the haters together in some dry, dusty arroyo, and reduce them to dust. The world will go on; new games will be created; but the poison that seeps from their veins would be stilled at last.