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.
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.