Music. Coding. Gaming. Life.

The sorry state of gaming APIs

Posted Saturday, February 4th, 2012 12:15:00 am
While going through a redesign of my homepage, I went through the process of trying to figure out what I'd like to include in the "Gaming" section of the site. Given that my game of choice right now is World of Warcraft and my gaming platform of choice is Steam, I figured adding feeds for both would be easy, especially considering that I already have a World of Warcraft API of my own.

Well, maybe not.

For the front page of my site, I'd like to include the three latest activities in WoW. You can see a list of such activities exists on WoW's community site. You would think that something like this would be easily reproducible, either via an RSS feed or using an API. Indeed, if you search for this page on Google, it will count the number of items for you, indicating that it must be a feed of some kind. But try plugging that URL into an RSS reader and you get the official World of Warcraft blog.

Worse, the Blizzard Community API offers no such method to obtain such information. In order to get the information, you'd have to scrape it from the screen, which is a violation of Blizzard's API policy. Even worse, this data used to be available from the old WoW Armory, something I had in LibWowArmory while it was still in beta.

How am I supposed to present this data on my website if Blizzard doesn't allow me to get it from the one and only source that exists?

Don't get me wrong, there are a number of awesome things that you can do with the current community API that you couldn't do before, including obtaining statistics about auctions, get information about character and guild achievements, and much, much more. I do some of this already with Cheevos FTW!.

But a character feed should be mind-numbingly simple. And by that, I mean it should take a skilled developer at most a day's worth of work to get this programmed, tested, and deployed, especially within a system as well-developed as the API currently is. What is so wrong with the development process for the Blizzard API that this doesn't exist yet?

Character feeds aren't the only thing Blizzard hasn't reproduced that can no longer be accessed. Calendars for players and guilds and guild bank logs used to be obtainable using authentication on the Armory, even if you had an authenticator. I had it working 100% in LibWowAPI and was ready to do some amazing things with that data for my guild. Now I can't, and that's truly a shame.

Steam is another platform I'd love to be able to use to show off my gaming adventures. Steam, too, has an API that you can use to obtain information from them. So, let's get a list of my most recent achievements across all of my games.

Turns out I can't. The only place a player's achievements are listed is through links on their games list. Sure, you can add an ?xml=1 to the URL to get some XML data from each page, but there's the kicker... "each page". There is no single location that Steam lists all of a single player's achievements across all games, thus forcing me to go game by game to get the XML I need to generate my list. I have 29 games on Steam. This means I have to send 29 HTTP requests just to get my latest Steam achievements. That is ridiculous, and would slow down my web site considerably to try and load this on demand.

Being a programmer by trade, I know that what I want is possible to do. If I were creating a game, I know this would be a key feature that I'd make sure was just as polished as the product itself. It baffles me that two of the largest gaming companies in the world are missing this. We're in a day and age on the Internet where gaming data that allows players to make awesome community content should be expected, and not just a bonus perk of playing the game. While I think that both Valve and Blizzard recognize this and are taking steps in the right direction to create such APIs, they both have a long way to go to make a complete API that is simple to use and contains features that developers actually will want to have.

Comments

Loading...
roncli.com Media Player