Massively Forgotten Features – UI Programming

UI Customization is fairly common.  The problem is that after the 800lb. gorilla that is World of Warcraft was released customization isn’t enough.  One of the biggest features that keeps people playing WoW is also one of the most misunderstood, UI Programming.  The difference?  UI Customization allows you to alter the look but not the feel of the UI.  UI programming allows both.

UI Programming didn’t start with WoW.  It began several years earlier in a third-party application for Asheron’s Call named Decal.  Decal injected itself into the communication between the server and client.  It was able to send commands on behalf of the client as well as filter and display the information sent to the client in a different manner.  The end results were a plethora of Decal Plug-Ins which increased the quality of life for Asheron’s Call players immensely.  However because Decal was third-party it was also unregulated by Turbine, the developer of AC.  As a result a small number of auto-play plug-ins cropped up.  Most of the player base were opposed to the auto-play plug-ins while favorable to the plug-ins which improved QoL without crossing that line of playing the game for the player.  This, in fact, was Turbine’s official stance on Decal.  The problem is many people cannot see the distinction between improved QoL vs. playing the game for the player.

Blizzard, thankfully, did see the distinction.  They also, smartly, embraced the notion of UI Programming and built it directly into the client by embedding the LUA programming language.  This allowed them to do something that Turbine could not do.  Regulate what the Addons (Decal had Plug-ins, WoW has Addons) can and cannot do.

Because of this control Blizzard could allow quality of life Addons to flourish while making it impossible for auto-play Addons to even function.  If an Addon developer ever does figure out a way to get their Addon to provide auto-play, especially in combat, Blizzard can identify how it was done and simply remove access to the specific call that made it possible.  In fact they did this for their 2.0 release, The Burning Crusade.  The macro and Addon systems got locked down.

So why is this feature important?  Quality of Life issues.  I threw that term out but let me define it.  QoL issues are those things which do not impact the combat or economic portions of the game but many people wish the UI did.  The easiest way to explain is to give an example.  Both Turbine’s new game, Lord of the Rings Online, and Blizzard’s World of Warcraft have auction houses.  A place where players can buy/sell items.  Both, at least for a time, only showed you the current price for an item or a stack of items and sort on such.  The problem is that when sorting on price on a stack of items the sorting is only meaningful on an equal stack of items.  10 things at 20 gold being listed above 20 things at 22 gold doesn’t mean they’re cheaper even though that is what the sorting is meant to show.  What is needed is a way to display, and sort, on Price Per Unit (PPU).  If we could do that we’d see that the 10 things are 2g a piece while the stack of 20 are 1.05g a piece.

LotRO, which implements UI customization, allows me to reskin the auction house window.  I can make it look metallic.  I can make it look green and shiny.  I can make it look like white lace.  I cannot, however, alter the display to show me the PPU nor sort on the same.  WoW’s UI programing means not only can I make the window look any way I want I can calculate the PPU, sort on it, make comparisons so I can see that this item is 80% of the average price while that item is 102% of the average price.

All aspects of WoW’s UI can be altered in that manner.  The only restriction is that it must be done through an Addon and use only the methods Blizzard has provided.  Blizzard has implemented a set of rules which prevent people from being able to create Addons which provide automatic methods of playing, especially in combat.  IE, it is impossible for someone to write an Addon that would play their character for them.  They cannot write an addon to fight a single fight for them.  They cannot even program a single button which alters its behavior based on factors detected during combat.

Since Addons can be written by anyone and shared across players Blizzard gets the benefit of rapid development.  Many of the recent features implemented in the base client started life as an Addon.  Scrolling combat text, threat meters, raid notifications were all developed in popular addons prior to being adopted inside the base client.

Most MMOs released after WoW, however, stick to the old “change the look but don’t touch the behavior” of customization for fear of falling prey to the auto-play problems that plagued Decal.  However, for people who have grown accustomed to being able to tinker with the UI’s behavior in a sensible manner it is hard going from a game whose UI plays exactly as the player want versus a game whose UI is good but has constantly, long standing warts which annoy the player every time they have to interact with that portion of the UI.

Of all the features mentioned in my Massively Forgotten Features articles this one, by far, is the one that I notice the most when playing other games.  Every time some UI element doesn’t work quite as I think it should I am frustrated not only by the fact that it isn’t addressed by the developers but by the fact that it cannot be addressed by the players.  Developers often let such small niggling stuff go because they don’t have the time.  Players have the time but not the means.


3 responses to “Massively Forgotten Features – UI Programming

  1. Pingback: To PvP Or Not To PvP « L.A.G.

  2. Pingback: Leaving Rift « L.A.G.

  3. Pingback: MMO Macros | L.A.G.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s