Monday 30 March 2009

Todo Lists

Every few days, I sit down and work out a new to-do list, which then gets added to the master to-do this. This is this mornings' list (along with priorities I've assigned to them, and estimated coding time):
  • Main Display - Integrate Minimap and Monster View into Main Window (HIGH - 2 hours).
  • Main Display - Fix initial viewport size to be x by x and resize main screen accordingly (MEDIUM - 5 mins).
  • Main Display - Change status bar to be on the right-hand side, above the integrated Minimap and Monster View (HIGH - 30 mins).
  • Main Display - Have an integrated hotbar, which allows shortcut keys for selected spells or items (potions or scrolls) (MEDIUM - 3 hours).
  • Main Display - Implement a priority message system which will display where the status bar currently is (MEDIUM - 30 mins).
  • Minimap - add viewport bounds frame (MEDIUM - 30 mins).
  • Minimap - add monsters as red icons (MEDIUM - 5 mins).
  • Minimap - spin the draw function off into its own thread if performance is an issue (LOW - 1 hour).
  • Inventory - make backpack entries one line in size but twice the width, and get rid of the striping and green colours (MEDIUM - 30 mins).
  • Inventory - instead of colour-coding based upon material, color code known items in inventory based upon quality (MEDIUM - 20 mins).
  • Status Bar - Change hit points and magic points to use a progress bar, green and red, use other colours e.g. yellow for poisoned (HIGH - 1 hour).
  • Gameplay - Implement alertness - add or subtract from the field of view up to a maximum of nine squares, minimum of four squares (LOW - 45 mins).
  • Gameplay - Write an InCombat function (an idea ripped blatantly from some variant of Angband) (LOW - 1 hour).
  • Gameplay - Expand out targeting modes from a binary function to allow targeting for digging, ranged combat, ranged spellcasting, 'walk-to' and more (MEDIUM - 3 hours).
  • Item Handling - Write a proper pluralisation routine for both suffixes and articles (LOW - 30 mins).
  • Refactoring - refactor the Input Handling Code and separate out non-Input code into their own units (LOW - 2 hours).
  • Refactoring - refactor out Vault handling into its own unit (LOW- 1 hour).
  • Refactoring - refactor out the ProcessCreatures() method into its own unit (LOW - 30 minutes).
  • Refactoring - refactor out Combat handling code into its own unit (LOW - 30 mins).
  • Refactoring - adopt a common naming scheme for all units (LOW - 2 hours).
  • Vaults - write code to flip and rotate vaults (LOW - 1 hour)

Giving a total of just over 20 hours of work added this just morning. And for my piece of mind, all this needs to be done before the release of 0.01e, never mind 0.02. This game is turning into a beast. I don't think I ever appreciated how complicated writing a Roguelike could ever be (way back in the mists of time, it was estimated that "2-3 years is about the smallest amount of time in which one can expect a really interesting game to emerge."

I think I'll take a break from coding for a week. Do other things.

But until then, here's a room on the first level of the Fortress Dungeon with a wand and some beasties guarding it (yes, the new monster display window is a ripoff from Crawl):

2 comments:

Jotaf said...

Harsh! Sometimes you should just forget the list and implement whatever you feel like. That's what I'm doing now; but it's hardly the whole answer. Growing lists can be very demoralizing and are inevitable... Some counter that effect with time schedules (ie, next version must be up by next month with or without the cool features), others... I dunno, it could make for a nice topic over at r.g.r.d.!

Dave said...

Yes, I saw your post on rgrd. Thanks for making it. A most illuminating discussion