A Small Introduction
I could spend a while talking on the state of HackWars when I joined, but that has already been discussed over at Hackstock Design and Dev. Examining the state of HackWars naturally leads to the question: how should one approach the process of developing a large application? I will be exploring possible answers to this question, as well as looking at it through different perspectives.
A Programmer's Perspective
I joined HackWars as a programmer. This means I would be given instructions of some sort (fix bug X, work on feature Y, etc.), and then do my best to complete what was asked. This seems straightforward, and it is in most circumstances. With HackWars, however, the situation was very different. The primary developers were busy with various activities like job hunting and finishing off a Master's degree, so after some initial discussion, I was more or less left on my own. I would talk with the primary developers for maybe a few minutes to an hour per week. As a result, I spent most of the time fixing bugs (something that always needs to be done). This changed when DraconisRavenix, another recent player-become-dev, began to take the design and development process into his own hands. We had been given a rough idea of where the game was supposed to go next: adding a massive amount of new content and quests. He was able to take the rough specification and convert it into a much more specific set of tasks, and I was able to start working on code needed for the new content. The key player in this change was communication. Draco and I talk on an almost daily basis, and this enabled us to keep information and feedback flowing between us about the update in progress.
It's Not All In The Code
Unfortunately, most of the work-load needed for the new content update fell in Draco's realm: game balance and in-game content. This could potentially create a choke point on the speed of development process. However, I had another realization here, which I will explain. I was talking to Draco one day, and he started to complain about how arduous the task of editing NPC save files was. Somewhere in my head a lightbulb went on, and I asked him if a custom tool to edit the files would make things easier. We both jumped on the idea, and he immediately provided me with several specifications that would make the editing process better. Within a few days, I had produced a tool which was usable, although it still lacked many of the requested features. After another week or two, I had polished off a full version. This tool sped up the development process considerably, as well as making it much easier. The conclusion: external tools can be invaluable aids in the development process.
New Beginnings
With the coming of the new year, I have been asked to help out in another major project, which will be starting from the ground up. I will be assisting in the entire development process from the beginning, and I will be able to apply lessons I have learned from developing HackWars to this new project, as well as learn much more about the development process for large projects. I will still be developing for HackWars, of course, and will hopefully see it growing and improving. All this is in addition to my schoolwork, so it looks to be an awesomely busy year ahead.
