Tuesday, 26 January 2010

245 open bugs

What happens at this point in the Unangband release cycle, is I force myself to stop adding new features and start working on the bugs list. At some point while working my way through this list, I will be crying tears of blood, swearing never again to work on the game and then I will release 0.6.4 final and take some time off.

Adding new features results in writing hundreds of lines of code, juggling complex and interesting ideas in your head and coding in an enjoyable fashion. Whereas bug fixing requires that you desparately try to remember old and crufty code you haven't looked at in a while, juggle even more of the code base in your head, and wander through the procedural landscape until you find the exact circumstance the bug occurs under, and then get killed off by a passing monster while you're trying to replicate the fault over and over. And the fix is frequently a one-line or even one character change so you don't feel like you're doing much work.

The irony is that I probably fix bugs at the same rate when I'm adding new features* as when I'm bugfixing. But I can't guarantee which bugs I'll fix when adding new features. Whereas every bug raised by someone is an issue that I need to address to keep the players happy. So I have to go through this process.

To get a feeling of progress, I use the bug tracker in Berlios to mark bugs as fixed in SVN by lowering the priority to one and adding a comment to that effect in the bug. This results in page one of the bug database slowing changing from light red to grey. And consequently, bugs get fixed in batches of 50 or so, because switching to page 2 and seeing the wall of grey I'm building turn to red undermines all the progress that I've made.

(* The difference is I'm creating new bugs at about the same rate as well).


Tom said...


your bug collection is impressive :] You have bugs that are outstanding since 2007, will you be fixing those as well for the next release ?


Andrew Doull said...

It depends. Long standing bugs are usually resistant to resolution and I've tried to fix them multiple times. These are the ones that get fixed by working on new features...

Antoine said...

that is a big ol' weta