Tuesday, June 27, 2006

Day 165 : I won't be meeting the deadline

As my vacations dwindle away it seems obvious the milestone I had set for myself, to have a complete 1 level working prototype by the end of the month, will not be met. To establish a quick post-mortem. Vacations always bring up unexpected events. My parents visited, take away 2 days. I cleaned up my apartment (a bit) take away 2 other days. Those are outside factors.

The single inside factor was the implementation of resource management inside the game. Up to now I had simply avoided resource management. I used the good old-fashioned "load when needed" that's built into Ogre. It meant tons of pauses with every first appearance of a bad guy. Not big deal I thought. Implementing resource management will be a breeze. It wasn't. I have to say, as much as I love Ogre, that it's resource manager is somewhat of an Achilles heel. Mainly because it has a tendency to crash inside without throwing an exception. If I could make two recommendations to the people out these using Ogre, it would be these:

- Start early. Don't do like me and wait until you have many groups containing many resources and world geometries all auto-loading and go "let's do a nice and proper progress bar in front of all of that". It's easier to implement if you have few resources and groups, and build from there.

- Ogre.log is your best friend. I had forgotten all about this one. I had so little problems with Ogre that I never really got to use it that much recently. When Ogre crashed repeatedly inside the resource manager, I didn't know where to look for answers. The debugger wasn't of much help, and (as it is often the case) when I tried smaller levels with fewer resources the crash never happened. Well, when I finally remembered that good ole file, I could pinpoint the crash times a lot quicker.

I'd like to point out that all the crashes within Ogre were created by my misuse of the resource manager (declaring resources that didn't have a path leading to it, and such and such) but it's true that I faced a lot of exceptionless crashes (mainly the dreaded "iterator cannot be dereferenced") that led to a lot of frustration.

I like to think that this is all behind me, but as with everything else. Time will tell. Tomorrow I will test everything out. Friday, Saturday and Sunday I plan on actually be on vacation from all of that. Maybe do a little Silent Hill 4 marathon. I still have reached two important milestones during these vacations : integration of the different level segments and integration of proper resource management. Not too bad.

Thursday, June 22, 2006

Day 160: 2006 is the year of the exploding hard drive

It's pretty tough to keep coding and producing and such, without having hard drives burst into flames on your every other month. But this year beats all the odds. One of my 120gb drive has exploded, this one pretty much literally. It started to smell like burning plastic and then, obviously, died. It's tough to calculate the odds of having so many hard drive crashes in such a small time window. I feel like I'm spending more time backing up data than anything else. Nothing on that drive was related to the project, it was the receptacle for all my bittorrent and shareaza activity. So it's no huge loss. Still, it'll take weeks to recover, and there will always be a haunting feeling that there was something critical on there that I am forgetting about.

But this blog is about the project. Combination of the level segments is complete. It took several days but now the game can move seamlessly from segment to segment. That was the last huge step towards completing the prototype. Here's a small list of things to do before the prototype is complete :

- The 2D cinematic scripting language/segments.
- The loading screens/progress bar (which may be integrated with the 2D cinematic. Load while they read).
- Everything GUI (like the player's life left).
- Handling the life and death of the player.
- Scoring

The rest is mopping up the code, making sure everything is clean and tidy. Almost half of my vacation time is gone and I can't say I'm very confident in achieving my completed 1 level prototype before the end. If I can get rid of outside distractions, it is still feasible.

Sunday, June 11, 2006

Day 149 : Art Director announced

Emotional blackmail, threats of physical violence and the application of those threats finally convinced Hoang Khanh Le of joining the team as Art Director and Lead 2D artist. I couldn't be happier. The man's a genius. You throw him a piece of paper and a pencil and give him 3 minutes and he'll throw something awesome back at you.

I've spend the last few weeks on forums trying to recruit people. I've also watched a lot (too much) of Battlestar Galactica. Those two things combined means I've begun to lost touch with the game's code. So today I'm getting back to it full force. There are a few nasty bugs to fix before my vacation starts next week. I want that vacation to be used to wrap up the prototype, so production can begin ASAP. Stay tuned!

Nobody would believe how messy my apartment is getting. Who's got time to clean?

Sunday, June 04, 2006

Day 141 : Development website opens

I've finally gotten around to finishing up and opening http://archangelchapter.com. I've also publicized the game in several development-related websites such as ogre3d.org, garagegames.com, deviantart.com and a slew of others. That's taken a lot of my time that was unfortunately taken away from actual game development. It doesn't matter how much progress you're making working alone on your prototype, if you don't have a professional-looking window to the world, nobody will take you seriously. It's the old chicken vs. Egg story : You need a good artist to make kickass visuals for your game and site, but to attract them you need kickass visuals for your game and site. Well, as a programmer I didn't do too bad a job I think. Well, you tell me :-D