Blizzard’s IT Architecture and Testing at Blizzcon 2017

Last November I was able to attend Blizzcon in Anaheim.  Blizzcon is the annual convention hosted by Blizzard Entertainment (creators of Overwatch, Diablo, Starcraft, World of Warcraft, etc).  In the past the focus has been solely on the games and the game developers.  In the last 2-3 years there have been more panels that give more of a look “behind the curtain”.  These panels have more information about design processes and engineering practices at Blizzard.  There were 2 panels I went to which highlighted this – one was engineering and the other was about level design.  Some points that jumped out were:

Blizzard’s Overarching Architectural Philosophy

During the Q&A for the engineering panel, the engineers were asked about whether there was any sort of mandated technologies that have to be used across the business or in particular areas.  The response?  They used whatever technology or tools that made sense for that area of the business and its needs.  The team that handles the websites end up using technologies that make sense in that area.  This led into a discussion about the Blizzard’s use of APIs as the means to allow these different technology islands to talk to each other.  This approach allows the best tools for the job in an area, but creates a reliance on ensuring any API changes to don’t have downstream effects.  Which leads into the next topic…

Testing and Documentation

There was an interesting reference to how Blizzard deal with keeping documentation up to date.  With their reliance on APIs, there would most likely be a process where changes have to be tested.  Part of their test model involves taking sample data and assets from documentation and run tests with it.  If the documentation’s samples haven’t been updated reflect changes in functionality, the test should fail and be flagged.  This approach isn’t completely foolproof, but it was an interesting approach to the issue of documentation in IT.

Giving people space to be creative

The level design panel blew away one major assumption I had about Blizzard’s level design process for World of Warcraft.  My assumption was that the game designers would detail the game world to a fine degree.  The level design people would build that without much scope for changing things.  The reality was that the game designers would only outline what a particular zone or area would need (mostly in terms of quest flow or general look and feel).  It was the level designers who would flesh out the world.  Many of those pieces of “character” or “flavour” in the game world were due to the level designers filling those gaps with their own stories.

I’m hoping in the future, they’ll keep doing these sort of panels.  One with a bit more focus on the infrastructure side of things would be cool to see.

Tricks of the Trade macro

Rogues in World of Warcraft have an ability called Tricks of the Trade. I wanted a way of being able to easily use it on a predetermined character (ie. the tank). The best I could do is the following macro:

#showtooltip Tricks of the Trade
/cast [target=Focus] Tricks of the Trade
/say Showing %f the |cff71d5ff|Hspell:57934|h[Tricks of the Trade]|h|r

The fun bit is the 3rd line. %f is WoW macro shorthand for “focus name” (just like how %t is for target name) and the horrible mess after that is the in-game ability link for Tricks of the Trade. So party members will see you saying “Showing BobTheTank the [Tricks of the Trade]”. I’ll be making a similar macro for Misdirects at some stage.

Update on the armory viewer

I haven’t had the opportunity to do a lot of work on the Warcraft armory viewer (http://www.jpboyce.org/armory/) as I’ve been changing servers recently. I have added a couple tweaks. I’ve updated the link the site calls to the updated armory domain name. Also I’ve added an “Upgrade” link that uses the excellent Lightwindow javascript/widget/thingy by Kevin Miller. Any suggestions or comments, feel free to post them.

Armory Reader

The World of Warcraft armory (armory.worldofwarcraft.com) is a nice tool  or looking up characters. But I never liked the way it’s setup, where you have to mouse over every item slot to see the item details. Blizzard were nice enough to make the armory use XML. So I wrote a little ASP.NET application to take that XML and reformat the output in a more lightweight combined fashion. It’s available at www.jpboyce.org/armory

Still on the to do list:

  • Enchants and socketed gems on gear
  • More character details (resistances, etc)
  • Layout cleanup