Busy Life Makes For Development Stand-Still

I got exactly zero time in on HamQuest over the last week.

On the assembla space, I currently have six tickets in order to reach the first milestone, which I tentatively put at the end of September.  This is me trying to establish a time specific goal.

Only six tickets, but that is deceptively simplistic. I know full well that two of the tickets, which are the refactoring of the main two classes involved in the game itself, will be quite involved and take quite a few times and more than a couple of tries in order to get it right. The others are more trivial, even the “save and load” functionality that I ripped out of the old version but have to put in new.

Also, one of the things I need to think about with saving/loading is the Rogue-like tradition of permadeath. It is against tradition to allow “save scumming” so common to other RPG type games. I’m not entirely certain I want to go with permadeath, but that decision is still a ways off. First I need to finish the rest of the refactor, because only at that time will I know the best way to save and load the game.  I don’t think I want to go back to the original xml file that I had before. I never even bothered trying to make it difficult to hack.  Of course, wading through the gigantic XML file was the price a cheater would have to pay in order to cheat, but so what?

Of course, a new issue with saving and loading is that the contents of the creature list and item list and terrain list are now configurable externally, which means that a player could conceivably save his game, go and modify the item, creature, or terrain lists, then load the game.  It is entirely possible for the configuration to not even make sense with the save game.  For this reason, I’m going to have to save and load the states of these tables.

But that’s a problem for later. Right now it is an issue of finding time to inch towards the goal line.

Advertisements

Tags: , ,

One Response to “Busy Life Makes For Development Stand-Still”

  1. Clint Emsley Says:

    I have not played Hamquest, unfortunately, as the computer at work is locked up tighter than a…something, and my computer at home isn’t connected to the internet.

    I do however, have an opinion on Permadeath, regardless of how informed it is in your game. Powder, another roguelike, does it very well, in that it allows you to load your last saved game, but at the cost of not getting onto the high scores table (I think, I can’t remember. It might just label you a cheater). I think that works well.

    One of the awesome things about roguelikes is that the adventure is different every time, and dying forces you to start a new adventure. If you have a system that allows you to reload your game with no consequences, then you’ll probably end up playing the same adventure over and over until you win, which isn’t the point. However, some adventures are just too cool to give up entirely, so letting someone play it again with the caveat that they’re labelled a cheater, or can’t save a high score, kind of does the best of both. You get to continue when you want to, but have an impetus to keep trying new adventures.

    I have no idea if this applies at all to Hamquest, but that’s my two cents.

    Also, if somebody wants to mess with their saved games, I’d totally let them screw it up. Maybe (and I’m not a programmer so, again, I might not be making sense) you could generate and save one of those hash code things based on the contents of the tables, and just not allow loading if they don’t match? Seems like a good idea when I have no idea what’s going on.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: