Well, we got the new patch last night. Overall I think the quality of the patch is pretty good, but I do have a couple of point that are worth examining.
First, would Mythic please take a clue from other MMOs like City of Heroes and kick off the “big patch” when the user logs off, instead of when they log on? I sat down to play and was treated to a 171MB update, which was of course happening at the same time as everyone else was trying to get the same 171 megs. To be fair, I have a slow (read: DSL) connection and even so the entire patch took only about an hour, but that was an hour I could have been snuffing Orcs and other tasty Destro minions.
OK, rant off. Now to climb on my soapbox for real. Since patching, I am getting a lot of CTD (crash to desktop, for the two of you who have not heard the term) whenever I log out to the character selection screen. It’s not a huge big deal (at least it has not happened in the middle of a scenario or something!), but it does mean that I have to re-start the game and wait while it does all its leader screens yadda, yadda, yadda.
More importantly, when an application crashes like that it’s very often the result of a misplaced pointer in the code (or as we used to say “the pointer is IN THE OPERATING SYSTEM”), which can have nasy side effects and lead to even less desireable results, like crashing the video card or the dreaded Blue Screen of Death.
So I log back in and apologize to the guildmate I was talking to when it happened for abruptly leaving the conversation. His reaction was “Eh, patches cause crashes.”
Now, I’m not taking umbrage with him, because of course this is a true statement. My reaction is more to the fact that we all accept that “patches cause crashes”. when what we should be demanding is a better quality product for our dollar. Let me say up front that I develop software for a living, not games, but application software and this is not a problem that is exclusive to games. This is endemic to all software development I have ever seen or worked on. The question is, why do we keep letting the developers get away with writing crap and then patching over the crap with more crap until the system basically accidentally works and they call it done?
To avoid the hypocrisy inherent in my argument, I include myself in the list of developers that release crap. Under the guise of anonymity, I will admit that I have released software knowing full well that there were bugs in it that could cause as serious an error as a CTD, and the decision was made to send it out and patch it later. Notice that I switched to the passive voice, there. While I will take responsibility for the release (I was running the engineering department, after all), the decision to release the application came from higher up.
Someone a long time ago told me that the answer to “Why?” was always “Money”, and that is certainly the case in every instance I have been involved in where poor quality software was released to a customer base. It is deemed too expensive to develop most software to the quality level needed to ensure really reliable, robust product. Is that true? I contend that it is not, but that is an argument for a different post.
From a developer’s perspective, we want to write good software (yes, there are nuts out there who like to write viruses, but I’m talking about the majority of people, not the crazy minority). We got into software because we love it, we want people to use our applications, play our games, and we want to be the solution to a problem. We don’t want to write buggy crap, applications that don’t do what they should, or that are incomprehensible, or that crash every 15 minutes.
So why don’t we? Well, there are a lot of reasons. Let’s start with the one that I have seen be responsible for inflicting the most heinous releases in my career. There is a little triangle we in the software biz use that has cost on one side, quality on another and time on the third. What this means is that with any development effort, you have any two of these, but not all three. You can be on time and spend little, but your quality will suffer. You can have a quality product on schedule, but cost goes up. Or you can have a quality product with low cost, but your timeline grows.
These are all relative to each other. The more quality you try to pack in, the higher your costs and the longer your timeline. Try to reduce costs and your deadline stretches over the horizon and you never finish. Reining in the timeline means increased costs (often in the form of added bodies, which is another topic for a different post) and reduces the quality of the product. Decreasing the cost (possibly by NOT adding more bodies) means that the end product will be so buggy as to be unusable.
Is this what I think happened with the latest patch for WAR? Actually, it’s not. But, I’m going to save my thoughts on that for another post, because I note that as I warm to my rhetoric, this post is getting awfully lengthy, so I’ll spare a few tidbits for later on.