Turns out February kind of kicked me right in the family jewels, which is why there was no end of February update -- or much of anything, for that matter. We ended up getting very little done in general, to be honest, but it was for a whole variety of justifiable reasons and so as a group we just tried to put that month behind us. I also officially aged yet again during that time, but I've already passed the point where I should really be going public with that.
Then there was March, which ended up looking a lot like February, at least on the outside. But March actually did not suck, and we did make considerable progress on a number of fronts. But between all of the progress on the game and the travelling and extra work for the day job, blogging became the odd man out. Thus, the end of March update has been pushed into April. But there is much to discuss.
I ended up spending a large chunk of February wrestling with Torque's GUI system. We wanted to create a new set of GUI borders to use throughout the game, for small in-game windows like the text output window and the inventory window. Torque has a nice built-in system for re-sizing windows and their borders, so in some cases you can create a small image file for your border that contains only the critical parts -- the corners and a small portion of the top/bottom and left/right sides. Then the engine uses this to create the full window border at whatever size you specify, stretching the sides as much as needed. Problem is, this only works with border images that can be stretched. Since N.R.'s spiffy new border is most definitely not stretchable, we needed to revert to just a basic bitmap image of the whole border. For the text output window, though, we allow the window to be resized to three different sizes, so now we need three new bitmaps. Not a big deal, but it does mean more images, more memory, and more drive space. Oh, and for some ridiculous reason doing so completely screwed up the inventory window.
The inventory window, when visible, is supposed to sit on top of the text output window. So when the text output window is changed from one size to another, the inventory window position needs to be adjusted. This would seem like a straightforward problem, but I think I spent about two weeks trying to get it to work right. Rather than bore you with the details, suffice it to say that the more I think I know about Torque's GUI system, the less I actually seem to.
We also spent some time fixing up other GUI windows and adding some more environmental decorations, such as snow drifts in the cloister and on the front entrance. Things are looking nicer, but all in all not a very productive month.
March was far kinder than February. On the NPC front, Lem finished his work on Lucca, while Shawn finished up Constantin and Matteo, which means I've been spending a lot of my time exporting animations, putting in the code for each, and getting the timing of the audio just right. It's a lot more work than it seems at first, especially since things never seem to turn out right the first time. But it's also very gratifying to see animations and audio playing together in response to a command. It's one of the things that makes this feel like a real game.
N.R., meanwhile, has churned out the last of the main monastery structures, the stables and the infirmary. Neither of these are approachable until Day Two of the game (Act III), which is beyond the demo, so for now the structures will stay relatively empty. But he did a really nice job keeping the same structural themes throughout. And I think the stables will fit very nicely with 3d-diggers's Horse Pack, which we will be incorporating.
We did have to make one relatively minor change to the game from Jason's original text version. In the original, the player can climb a ladder in the stables up through an opening in the roof. The roof, then, is dealt with as a single "room" or location in the game. This is generally not a problem in 3D, but it becomes complicated when you need to account for where the player is in space. Up on the roof, the player could move around to any of the four sides of the building, which would really complicate one of the puzzles in the game. It's another example of something which is much easier to implement in text than in 3D.
So instead of allowing the player onto the roof, we decided instead to make a hayloft inside the stables, and to use this location instead of the roof as the destination for the ladder. We'll then be able to use bales of hay to create a relatively small space for the player to move around, instead of the larger open space up on the roof, and it shouldn't have any measurable effect on the puzzle involving this location.
Finally, after much debate, we decided to implement the cat from the original text game. The cat has mostly symbolic meaning in the original, but due to some more 3D-related complications, we were thinking previously that we might just leave it out. Jason later convinced me it would be worth the effort, if only to lend a nice atmospheric touch to the game. So N.R. designed and built the model, and Lem got to work rigging and animating it. In the end, I'm really glad we did it -- even if it ends up being only a tiny, insignificant part of the game.
What's up Next?
April has arrived much sooner than expected, and with it comes two big deadlines, which just happen to be on the same day: April 30th is the next Utah Indie Game Dev Night, and it's also the submission date for this year's IndiCade. Although the game is obviously nowhere near done yet, we are closing in on being finished with Act I, which is to be our "demo" of the game. And since IndieCade permits and encourages the submission of works in progress, our plan has been to submit the complete Act I as an example of a "finished, playable level" from the game.
We had also planned on being done with Act I for the next Utah Indie Game Dev Night, so the fact that these both fall on the same day is helpful. But there is still a huge amount of work to be done to reach that point, and with the day job remaining extremely busy, I'm not sure yet if we'll really be able to do it. But the gauntlet has been thrown down, and we have taken it up. We'll see if we're up to the challenge.