The Art of Building and Maintaining an Unpopular MMO
Hack Wars Part 1: In the Beginning
Even if you happen to be one of the 3,538 people who have played HackWars for a reasonably good length of time, it must be admitted that, by most measures, my attempted incursion into the online MMO market has been a relative failure. My three-year hobby of building a massively (cough) multi-player-online-game has been an amazing learning experience.

Observe prime examples of feature bloat and detrimental lack of UI designer in action.
I’ve always found server and thread orchestration a really interesting topic in computer science. It excited me to think that I could (like some sort of mad scientist) harness the power of multiple computers to do my bidding. As part of a fourth-year research project on clustering, I built a Java-based library for parallel computing, which I called DolphinNet. At the time, I was attending a school heavily involved in the SHARCNET grid-computing project, which I eventually got to play with, but that will have to wait for another blog post. I got fairly proficient at using this library to build distributed servers, purposing it for a research project in economics, a networked poker game, and the beginnings of an MMO.
Having screwed around making video games since I was about 16, and with stars in my eyes from having my first few heavily-threaded networked applications under my belt, I enlisted my friend Cameron to take on a project building a fantasy-style MMO. We had a friend who was a good artist, and we figured he could do art for us. After months of getting nowhere on this project and realizing we were taking on too much, we came up with the idea of HackWars.
We envisioned HackWars as the ultimate geek MMO—a game modeled around running your own computer and hacking other computers. Skills reflected common computing tasks, e.g., running web-servers, transferring files, port scanning other systems, etc. I’ll be the first to admit that this analogy has sometimes become a bit haggard. The hook? Almost every action you performed in the application would run on our own proprietary scripting language which players could write themselves, unlock APIs for, maliciously install on other systems, and in general, experience a good degree of realism as a result.
HackWars, being relatively un-graphical, eliminated our demand for a graphic designer (or so we thought). Furthermore, we expected that such a simple concept could be implemented in a very short period of time. We were wrong.
Hack Wars Part 2: A Brief History of Game
We began development of HackWars in august of 2007, and by December of 2007 we had our first (arguably quite atrocious) version of HackWars launched. Throughout the start of 2008, Cameron and I were adding in features like maniacs. This was partially due to wanting to keep up with player demands, and partially due to the perception that once we hit a sweet spot, our numbers would suddenly explode. We eventually drove each other nuts; this was mainly a result of our breakneck working schedule, and the frustrations that came with our failure to get any real traction for the game.
In August of 2008, friends I met in my master’s program convinced me to dust the project off, Cameron was pulled in, and we vowed to approach HackWars with a new era of professionalism. Unfortunately, the work-schedule, conflicting obligations, and general frustration again lead to the stagnation of the project. This motivated me, and the remaining team, to take arguably drastic action. We decided to open source Hack Wars.
Hack Wars Part 3: Back to the Future
So far this experiment has gone fairly well. HackWars is still up and running, although I now treat it more as a hobby than as a potential career. We’ve put the source up on Sourceforge, and now (finally) have several of our players contributing to coding, writing, quest-design, and game-balance. We give our ‘player devs’ a good amount of design freedom, and keep a centralized server running. Another developer and I act as project leads to a few of our most trusted players who now play a development role. These ‘player devs’ have free reign to go out and recruit other players within the game to contribute to the development process (although permission to access the server, commit to Sourceforge, and other mission critical things must be granted through us).
Each new player of our game, if they so please, can contribute to the future underlying design of the game itself. This new development approach is in its relative infancy but I think, for a game about hacking, it’s the direction we should have been going in all along.
What I’ve Learned So Far:
- A game (perhaps specifically an MMO) is not a good get-rich-quick scheme; you cannot underestimate how long it will take to develop, test, and balance.
- Listen to your community! Given the genre of our game, we constantly had individuals offering their time to help us develop HackWars. Wanting to maintain intellectual control of the product, we always turned these offers down. I, not too secretly, feel that if we had built a developer community around HackWars from its conception, and been less greedy, we would have had a much better chance of success.
- Avoid feature bloat! As we built our initial community for HackWars, we were constantly getting suggestions for functionality from the user base. We quickly rushed and added many of these features, feeling that they would be our ticket to larger numbers of users. This lead to many unpolished features (I feel, an unpolished product in general) and did not gain us noticeable numbers of users.
- But why didn’t you use this? No matter what libraries you use, there might be tools that individuals will point to as a better technology choice. As a perfect example, perhaps a Python interpreter would have been a better choice than our own compiler built in ANTLR. Certainly, at the time of conception, attempts should be made choose the best technology possible but, if you make the occasional unpopular technological choice (and you will), don’t beat yourself up about it, or refactor a giant portion of your system if there is no compelling reason other than a sarcastic comment on a forum somewhere.