Wednesday, December 24, 2008

Latest estimate: this Saturday (December 27th.)

Sorry for the delays. I'm genuinely sorry. I didn't post yesterday because (a) I was working so much on the game, and (b) I'm frankly embarrassed. I feel really bad about not delivering on promises and want to hide and not show my face until the game is actually, genuinely, really really uploaded and ready.

I promised the game would be ready by December 15th, and it wasn't. And now every day all I can write in the blog is "nearly ready" and "nearly ready, honest" again. Hopefully most people are too busy with Christmas to won't notice.

The game was pretty much ready to upload last Monday (the 15th) but "pretty much" just means "no obvious bugs." And "no obvious bugs" means "lots of little bugs if you look closely or do something unexpected." By "bugs" I mean irritating little things, like clues that aren't clear, typos, characters who turn in a circle before leaving a room, etc. So I've been fixing those things, and every code change risks creating new bugs - for example, I made it so you can choose "open" to open a new game even when the intro is playing. But that required complicated code behind the scenes (since you're not supposed to be able to interact with the game during a cutscene), and that stopped a later scene from working properly. That's fixed now. But there are hundreds of little things like that, some take ten seconds to fix, some take ten hours. Some days I have twn hours to work on the game, some days only two.

Remember I said the game was 99.9% finished? There's a saying in programming

"The first ninety percent of the task takes ninety percent of the time, and the last ten percent takes the other ninety percent."
This is a variation on what is now called Hofstadter's Law:
It always takes longer than you expect, even when you take Hofstadter's Law into account.
Hofstadter is right. When planning this game I allowed several months for the unexpected. But the unexpected is always so darned unpredictable. But it's good to know I'm not uniquely incompetent - these things happen to everyone.

I was relying on last weekend to make the final changes because I had three days off work. And those were the three days that we had major power cuts. I counted about fifteen power cuts, ranging from two seconds to twelve hours. So in the darkness I wrapped presents, then found a torch and started to design Dante's Inferno on paper. Dante's Inferno is coming along well. :)

By yesterday I'd made all the latest changes from the final test, and was about to upload the game when I thought "one last run through just in case." A good job I did, as some of the latest changes caused new problems. Nothing major, but I really need to play the whole game again from start to finish. That's what I'm doing now, making minor fixes along the way.

This is really the polishing stage. Whenever I find a clue that seems too hard I change it, and if a character still doesn't look right I change that as well. This is time well spent, and the game will be better because of it. My favorite change is the "poke with a stick" section. My youngest daughter suggested it. In the sewers, when you get a stick, she said you should be able to poke things with it. And so now you can, with various accompanying sound effects and comments. She also said you need to see the bricks falling when they fall, so I added that too. (She also wanted bats to fly in the chimney, but that would have taken too long to animate.) These are all just little things, but they should all add up to make the game a more satisfying experience. Most of my time is spent on fixing background irritations, like the character-turns-in-a-circle that I mentioned before (that took six hours to fix), and the not-always-reliable way that characters entered rooms, so I re-wrote AGS's built in "place on nearest floor" code and it seems to work better now.

As I've said many times before, the same code will be used in all the games, so future games won't take this long to make. Indeed, the whole point of having the code "just right" is so future games are much faster to produce. If nothing else, I'll know what's easy to design and what to avoid at an early stage. No doubt Dante will raise a few new challenges (regarding jumping between games) but by the second half of 2009 (Apeiron) all unexpected delays would be ancient history.

Anyway, enough rambling. I'll have the final, final, final play through finished tomorrow or boxing day (Friday). Then I'll upload the game and check that it downloads properly from the commercial site that's hosting it. Then I'll make the free demo (which on past experience will take longer than expected, but IN THEORY should only take four or five hours to put together). Then upload the new design web site (which is already done offline), send out the "come and get it" email, send free copies to everyone who helped, and finally go to bed and never ever look back on 2008. 2009 will be so much easier.

7 comments:

Simo Sakari Aaltonen said...

I love the suggestion from your daughter and the fact that you implemented it! That is such a natural thing to want to do with a stick. In fact it reminds me one of my favourite moments ever in an adventure game.

In Quest for Glory V, the character can pick up rocks from most places where you would usually find rocks. In one place there is a lever you cannot reach by hand. I did not have a grapnel or anything else tailor-made for reaching a lever in an adventure game so, certain nothing at all would happen, I tried throwing a rock at it. And not only did the character throw the plain old rock at the lever, it moved the lever and solved the puzzle! It was so natural and obvious yet so satisfying.

Have you considered waiting until everyone has returned from their holidays before releasing the game...? That way you could coordinate a publicity effort of sorts by setting up a date (like mid-January, less than four weeks away) and notifying various adventure gaming sites about it in advance.

A^laska said...

I just read the above comment (or below, I can't remember how comments are stacked on blogger) and I would really appreciate it if you did not wait until mid-January to launch the game! A lot of us have been waiting for quite some time now (patiently, of course), and it would be very disappointing to hear that the game is all done and ready, but that you're waiting three more weeks. Publicity can always wait until after the game is released, and that way everyone who finds out about the game won't have to mark their calendars, they can just go and buy it then and there!

Simo Sakari Aaltonen said...

On the other hand, it would be a shame after such a long haul to rush the release unless the game really is properly finished to the author's satisfaction.

The publicity comment was just a side point, which, on reflection, I am sure you have already taken into consideration, Chris.

Chris Tolworthy said...

I'm keen to get the first story out as soon as possible. While I could continue to make improvements forever, I think we're into the law of diminishing returns. I'm keen to get onto the next story, and use what I've learned on Les Miserables to make the next one even better from the start. But I don't want to release a buggy game, so Les Miserables does need these extra few days. I still hope to have the game out within 3 days or so, and to be well into the design stages of Dante by New Year. Dante will be the big release in June, because people really need to see more than one story to get a feel for what the game's about.

PS Merry Christmas!

Anonymous said...

There's one thing that's been bugging me about Apieron: the name is taken. Apieron is the name of a Centipede clone for Mac from Ambrosia Software (old version at http://www.ambrosiasw.com/games/apeiron/, new version at http://www.ambrosiasw.com/games/apeironx/). I hope there won't be any problems caused by the name. If you're forced to change it, perhaps you could change it to something like The Apieron of Peri Laris, since it seems to me that it will be the first story in Enter the Story that's actually about Peri herself.

Anonymous said...

What'll be the price of the finished game?

Anonymous said...

The game will cost $15, which will buy you the latest story, all previous stories, and the next two stories when they come out.