Reduce Them To Dust
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.
Permalink Comments Off
Zegro is Submitted!
Yes. After weeks of 5-hour coding marathons (and holding down a day job, of course), Zegrothenus is submitted. Note: I didn’t say done, but it does all of the following:
- Compiles
- Runs
- Can be won
- Has a list of commands that enable it to be won. Gah, a walkthrough? Yes, my first, but it’s part of the submission requirements. I’m so glad I used the REPLAY command!
- A 200×200 game badge. This one I whipped up at 12:06 AM, and submitted separately thinking that I might still hit the deadline. Then I re-read the submission requirements and found out that I have until TODAY.
Anyways, it really chaps me that I underestimated the amount of time to work on this. I still might fiddle with it some today, but I’m sooo burnt from it all that I don’t expect to be doing much IF anytime soon. (Sorry about that, my games-in-utero).
Maybe it’s Inform6, maybe it’s my hyper-attention to implementing basics of nearly every object after having been burned on that in Building, but sheesh — this was way more effort than I expected. In the end, I had to cut the size in half, and strip out all of the in-game help that I was going to do just to make the deadline. I’m not a newbie, either! I used the scaffolding for Seasons to jump-start me, and I know how to organize the files and such.
Still, I totally didn’t foresee my laptop taking a dive a week or two from the deadline. I lost two days of work and was only able to restore it today, one day out. Thank God that the Diskwarrior got here at all, that it worked, and that BBEdit had a nifty compare tool. On that last one, who knew?
But what I’ve learned is the following (in case anyone wants to learn from me and not do things the hard way):
- Whatever amount of time you think a game will take you, double it, just to make sure you have enough time for beta (oh, that’s another thing. Zegro had NO BETA period. Uhm. Let me shuffle away into the shadows now!)
- Reduce the number of files that you have to work with if at all possible. The reason for this one is that you can fit multiple files on a screen easier if there are few of them. Also, it makes looking for that object or routine a lot, lot faster, especially if you think that finding it is right around the corner and you manually hunt through files first.
- Don’t play around with your hardware setup during a game. Seriously, resist the urge. If it goes wrong (and it probably will), you’ll lose valuable time and maybe some irrecoverable bits of sanity. I got the wild idea to make my laptop computing completely silent by running off of a CF card instead of a hard disk. Somehow the master boot record got hosed and I had to order software in order to fix it. In the meantime, the laptop was DOA and days of work vanished into the ether.
Permalink Comments Off
How Many More Can We Lose?
Today, James Jolley left the IF scene. This was my post to RAIF. I’m opening up comments because we need a solution.
I’m sorry to see you go.
I too am unhappy about the same things you are.
What’s sad in all this is that even these statements will be instantly maligned, by if not the Old Ones themselves, then all their fanbois/fangurls — as it has happened so often in the past. In fact, we’ve already seen this happen in this thread itself.
Instead, let’s try something new. Since the community has suffered loss, let’s reflect on what got us here. Let’s look inside to see how we can prevent people from leaving.
When are we going to change? We MUST be more newbie-friendly. We MUST retain people. We CANNOT keep grinding people up and spitting them out. No system on earth — not even communism — can last that way; eventually you run out of people to kill or people to maltreat.
So what can we do to prevent this in the future?
Anyone listening?
Inform 6 vs. UNICODE: Nobody Wins
As is often the case, I got in my head what seemed to be a fantastic idea: Zegrothenus deals with magic, so wouldn’t it be cool if I could use alchemical symbols in the game? Hey, INFORM supports Greek, doesn’t it? This is cake!
Altogether now — NOT.
After hours and hours of scouring the newsgroups, downloading various interpreters, fiddling with fonts, and hacking INFORM to no end, I have discovered several various truths that no-one has ever dared state in public.
- Inform 6 on Mac OS 9 absolutely ignores the -Cn switch. The same 8859 character set (or whatever, I’m too frustrated to care) is loaded regardless.
- No interpreter for Mac OS 9 supports UNICODE. That’s right. Freakin’ none of them. Not Maxzip. Not ZIP Infinity. Not Zexec. Not NITFOL. Maxzip supposedly does, but what happens when you try to run “Unicode.z5″, a demo that shows all of UNICODE in its glory? It spits out weird errors and crashes. So does every ‘terp but NITFOL. Curiously, the newsgroups say that NITFOL has no UNICODE support, but it survives the attempt.
- No font supports UNICODE in the aforementioned interpreters. Not even the worthy Gentium. Other fonts that should, don’t either, like Tahoma.
- Zcharacter tricks don’t work, no matter what Roger Firth’s site says. You can’t add characters to the Zcharacter map; you can’t replace the map; the same 8859 character set comes through regardless.
What’s more annoying beyond all this? It worked with NO EFFORT on Mac OS X 10.5. I mean, I did buttcheese nothing and it worked. On Windows XP, all I had to do was set the ‘terp font to Gentium and it worked. I didn’t get it to work on Ubuntu (which incidentally still sounds like a tribal profanity to me), but then again, my taste for playing with Linux innards at 5 AM is a bit lacking these days.
This is one of those things that was supposed to work, looked like it could work, and yet mysteriously remains just out of reach, with no-one saying a word. I wish I didn’t have to find out the hard way, you know?
Oh well. I’ll code a routine that looks for Z-spec 1.0 compliance and uses that to determine whether to use UNICODE characters or not, and then write another routine that allows the player to turn it on and off. In other words, what this guy did. After all, UNICODE support is a “purely hypothetical feature”.
I’m frustrated but not surprised, in the end.
Permalink Comments Off
The Two Point Hurdle Cleared
That’s where I’m at on Zegrothenus. It’s been a heck of a slog so far, fighting parser stupidities, problems with classes, and figuring out when to hide items in containers and when to show them. Man. I had no idea I would have so many objects in a one-room game! Anyways, the march towards all of twelve points continues. I’ve got until Jan 31st.
Permalink Comments Off
BBEdit Inform Tools 2.0
Merry Christmas! While working on my latest game, Zegrothenus (or Zegro as we call it in house), I realized that one of the things left unfinished in the BBEdit Inform language module was a listing of the functions. Armed with a week of vacation, Starbucks coffee, and not bothered by any outside interruptions, I went to work. The fruit of this labor is BBEdit Inform Tools 2.0.
So what’s in the new release? First of all, a function listing! Yes, it finally works, with a few caveats. The functions only display if you set the preferences to display them alphabetically. Also, the “show current function” erm functionality doesn’t work. Fixing these requires access to code that as far as I could determine, does not exist. All the existing language modules don’t state how to obtain the values that BBEdit requires, so it will probably never work like the built-in language modules. Oh well. The important thing is that now you can quickly jump to that odd-named method without having to scroll through the entire document or using find to find it. Second of all, the comment coloring works correctly (yeah, alliteration!). The standard ! works for comments; you don’t need to use my !- idiosyncrasy anymore. Lastly, more keywords have been added, primarily action_to_be and lockable.
Unwrap the present here. (For BBEdit 6-8.x, Mac OS 8-9.x).
Permalink Comments Off
JayIsGames Contest: I am So In
Yeah, I had posted earlier that I would be participating in the JayIsGames IF contest (over here), but it’s taken all that time for me to come up with a good idea. Yeah, a one-room contest with the theme of escape is not as easy to do as I thought, but I prevailed and will unleash my game! Mhu hah hah! I also came up with some other cool ideas that had a small number of rooms but didn’t really fit the theme, and at least one really cool idea that fit the number of rooms requirement, but wouldn’t hit the T rating. Think lots of blood, not perviness.
And oh, the name of the game? Zegrothenus. Repeat the word slowly over and over, as in sentences like this one: Zegrothenus will totally destroy in ‘10! Zegrothenus owns your free time. Zegrothenus…well, you get the idea.
And why did I decide to enter a contest, given my feelings on contests? Two answers: this contest features real prizes and it’s not held by the insular IF community. The former is nice to have, and the latter makes all the difference in the world.
I am SO in.
Permalink Comments Off
Collapsing Complexity
I’ve been pondering something lately, as to how complex designs tend to resolve into simpler forms over time. While the human mind does have an upper limit on the amount of complexity it can accept, it’s not that I’m getting stupider as I work on Seasons. It’s not that I’m getting lazier, either; it’s that looking at the code, I can see not only that some functionality just is not necessary (see here), but that what needs to be done can be done in a less convoluted fashion.
The complexity of any coding project generally follows the life-cycle of a star. As a star is born, grows into a red giant, and then collapses into a dwarf star, so a project’s complexity starts low, rises to high, and then abates to some degree or another. I think many programmers do not spend enough time on their projects, and release them before the final stage is reached. As a result bugs and worldview inconsistencies abound.
If you look at many commercial projects, you’ll find the programmers figuratively out of breath and celebrating as they cross the finish line: the code has been delivered by the deadline! Yes, the project works (mostly), the date has been hit (so management gets their bonuses), but the application is simply not as good as it could be; it is still a red giant. When you have to patch or extend the code, or support the project, you end up spending an inordinate amount of time making it work or explaining it because it is still overly complex.
In IF, the support staff is usually the author, so what happens? Either the game is a buggy junk pile and further releases must be created to fix problems, or the author abandons the game and decides not to fix the problems at all. The end result is a game that’s not as good as it could be.
The only thing that allows us to reach that final stage is the passage of time. Apparently the mind needs enough time to analyze the deeper patterns in something fashioned, or repeated exposure yields up the glaring complexities; most likely it is both. Both writing and IF design must be “edited cold” or otherwise they are not mature. I think of the stage of maturation as an aged wine; you can drink wines before their time, but you miss the experience of a good wine. Incidentally, this is why Speed IF almost always produces a horrible game.
So in short, a good motto for IF designers (and programmers as a whole) would be to release no project before its time. Let it reach full bloom and then unfold that beauty to the world.
Permalink Comments Off
Failing By Over-design
I’ve since forgotten where, but I read an article about designing electronic gadgets that plumbed Apple’s design methodology. What they concluded was profound: most electronic gadgets are over-designed. They have too many features and as a result instead of doing one thing (or a few) things well, they do many things with brilliant mediocrity. This state of woe is not exclusive to such gear, of course; for years, mid-fi has suffered from what my dad once termed “buttonitis” — a superabundance of buttons, whose nature tried to convince potential buyers of its functionality, instead of playing music well. With overdesigned products, quality suffers, complexity increases, customer satisfaction goes out the window, and customer loyalty is nonexistent.
IF is the same way. You can create a huge stinking mess of fail by over-designing your game. Take for instance, Seasons. In one of the seasons, there is a barn populated by barn cats. These cats are not critical to the plot, but are just present to add to the realism of the game. Despite that, I was determined to create a class Cat that could automatically create cats as needed, make each cat have a unique description (well, uniquely-selected from an array of descriptions), have the cats do different things every so often, move them around, and so forth. I was even working on a way to have the cats referred to as “a/an” if more than one cat was in a room at the same time; otherwise, the cat would be referred to as “the” cat. Overdesigned? Whoo yeah.
It’s more important to have minor things do their job well as minor things than to spend days of work making them nearly simulationist. Audiences will appreciate nice accents of color (which is what the cats really are supposed to be) but won’t be impressed if scenery can do interesting things when the rest of the game works half-well. When you think about it, you only have so much time to make a game, create the help, distribute it, and gin up interest in it. Do you really want your game to be years late to the market because you had to code an imp statue that could act out lines from every play of Shakespeare’s?
Permalink Comments Off
The Cathedral Builders (IF Wiki finis)
I got the folks over at the IF Wiki to remove my real name. There are a lot of reasons this brings me angst, but at the core of it, it’s because I really don’t want the attention. I don’t want the spotlight. I have no desire for fame, even the droplets of fame that being on a wiki in interactive fiction can bring.
I have had the constant waking dream of being a builder of cathedrals — great men who did great things, but who never signed their names to their creations. That has always struck a deep chord with me, and that is what I want to be online. Their rewards were eternal and their names are known to the Great Architect. They were rewarded in secret for what they did without names. In a similar way, the private praise of those whom I have helped or whom I help is more than enough; if that were not present, just knowing that I helped would be enough.
I won’t fight a public listing of my works and contributions because I think that is “fair use” to borrow a journalistic term. I think there is a limit to what you can ask for without looking like a real tool, and that’s it right there. In any case, this skirmish is over.
Permalink Comments Off