Tuesday, March 31, 2009

Weep Not for the Frozen

The WoWHead Blog (Is there nothing they can't do?) links to an interview with Connie Mableson, a lawyer whose bona fides includes representing MDY against Blizzard in the Glider case recently. She has interesting views on the subject, and concludes that Blizzard is going to try to monetize addons somehow.

I disagree with Connie's reasoning. Her suspicions seem to be flawed by her basic lack of understanding of the actual technical aspects of creating addons. Here are some points to consider. (Full disclosure: This is an expanded version of the reply I left over on the WoWHead blog)
  • Addons are written in a computer language called LUA. LUA is an interpreted language. The programs are simple text files that are fed to an interpreter.
  • Addons as distributed, therefore, are plain text files that anyone can review, unless you are very tricksey like those Carbonite people, who manage to obscure code so that you can't tamper with it. (As of the recent update of the addon policies by Blizzard, obscuring the code in this manner is no longer allowed.)
  • WoW internals are written in a compiled language.  Compiled languages deliver executables that can be run directly without any extra interpreter steps. A popular language of choice for this is C or its more modern cohort C++. (If you don't program in C, you won't "get" why there are two plusses. I will only say that it is not an Orwell reference.)
  • The WoW executable has a LUA interpreter built in to it. This interpreter is gimped - it does not have full access to the full LUA language standard command set, for example, nor does it have access to the network or to WoW internal data structures. This is done for security, and is a good thing.
  • Therefore, if Blizzard wanted to shut down addon developers, they could just disable the interpreter. No need for draconian revisions to policy or anything else of the sort.
  • LUA programs (addons) have access to in-game data through a very narrowly defined interface. Want to find out the time? You can't just look at the clock. You have to ask WoW to do it for you, and return the value.
  • The WoW executable has access to data structures that are far richer than the data available to LUA programs. Potentially, the WoW client could find out the time by looking directly at the clock, no matter where that data lived.
  • Therefore, attempting to take over the LUA addon marketplace would be one of the more rediculous things they could do, gimping themselves by disallowing the very data they owned. That would be very stupid.
  • Interpreted languages like LUA run slower than thier compiled language counterparts. Why on earth would they go that route when it would gimp the performance of the addon? Again, that would be blazingly stupid.
  • Addons are required to "persist" data (save it) through a narrowly defined, inefficient database engine. You can likely experience the inefficiency directly, or see the difference directly, is more accurate. Go in and nuke your Auctioneer database, and see how fast your next load is. I bet you gain five to ten seconds minimum. And that's one program.
  • The WoW client can access disk files directly, which is potentially near-instantaneous access to information. The WoW client's LUA interpreter cannot. Not allowed. No disk access, no network access.
  • Therefore, Blizzard would be foolish yet again to go this route, by frustrating the user, increasing load times, and degrading performance overall. More stupid!

So, besides the obvious technical flaws in Connie's argument, everything else she says in this regard is guesswork - and based on flawed assumptions, at that.

She might still be very right. Blizz has pulled some classic blunders in the past, and this would fall right into that sort of bucket.

But I very much doubt it.

I have a possible alternate scenario, involving something like an Apple App Store on the Blizzard web site, requiring all addons to filter through that (And won't Curse et al be thrilled at that!) and cutting Blizz a piece of the pie of any revenues taken in by addon developers.

This would be great, except one thing. This is Blizzard. They can't maintain a searchable forum, the main website goes kaput under the slightest traffic spike, huge chunks of webspace go south for no reason, etc. In short, they suck at internet other than how it directly pertains to the games they distribute - and that's because the two are maintained by completely different groups. But point is, the odds of getting the 'good' geeks on this are probably less than even.

So: do not want.