« June 2006 | Main | August 2006 »
July 28, 2006
Alliance / Horde Ratio Over Time
We were also interested in looking at the Alliance vs. Horde ratio over time. For example, are there incentives to reach parity or do imbalances create increased skews? What we found was surprising in that no significant shifts over time were seen. The ratio of Alliance and Horde appeared incredibly stable over time.
Of note, while there was a severe Alliance imbalance on the PvE and RP servers, there was a matched equilibrium on the PvP server. Again, neither changed over time.
Server Sample: RP (High), PvE (High), PvP (High)
Sampling Period: July 2005 - January 2006
Sampling Resolution: ~12 minutes
Parsing Method: The sample unit is each unique character in each 2 week period.
Data Filter: Characters above level 1 and who spent less than 95% of their time in a main city.
Sample Size: ~100k characters in each 2 week period
Posted by nickyee at 01:31 PM | Comments (0) | TrackBack
July 21, 2006
The Dreaded Level 60 Scraper Cap, Revisited
For the last week, I have been trying to change the PlayOn scraperbot software to avoid the problem of not seeing all the level 60 characters that may be logged in at any one time.
And the short answer is: Every attempt I've made to improve the collection has only made things worse.
After bashing my head against my keyboard [1], we have decided to recruit the collective wisdom of the web. And to offer a nearly-worthless prize.
Herewith, we offer some Parc-labeled thingy as-yet-unknown (i.e. a coffee mug, or T-shirt, or some such) to anyone who can help us characterize the nature of results returned by the "/who" command in World of Warcraft.
Here's what we know so far...
The "/who" command, and the "Refresh" button in the socials who pane, both use the SendWho API call. Use which means you wish for testing -- they're all the same.
All of these take a filter, which can be used to select for certain names, zones, classes, races, or levels.
So
/who z-"q"
will try to find players with a "q" (in either upper or lower case) as a substring of their guild name, while
/who c-"d"
will return both druids and paladins.
The existing scrapers will try to perform a query of all race+class combinations for one of the factions, such as
/who r-"Troll" c-"Rogue" 1-60
The server will only return 50 results at most. Along with others, we have assumed that if the server returns 50 results, there may be more than 50, and we need to refine our query. On the other hand, we have assumed that if the server returns less than 50 results, it has told us about all logged-in characters that satisfy the filter. Apparently, not so.
So, if the server returned 50 results for the above, we would split the query in the obvious way to
/who r-"Troll" c-"Rogue" 1-30
/who r-"Troll" c-"Rogue" 31-60
and then split each of those in turn until we are searching for a single level of a certain race and class.
From early on, however, if the server was busy, and we queried
/who r-"Dwarf" c-"Paladin" 60-60
we were likely to get 50 results. So, we simply recorded those 50, and subdivided no further.
As the servers we're monitoring have aged, however, we find that more and more race-class combinations are saturating the query results at peak times. This is frustrating, as it calls into question the validity of our data, especially when we are trying to analyze the level 60s, who have reached or are transitioning into the endgame, an important of the WoW landscape.
So, as I mentioned, about a week ago I began to restructure the scraping code, so that rather than splitting by race and class first, it would instead query first by zone, and then by level, and then by race and class. Let's ignore the perils of Blizzard being able to create new zones to be found, or the fact that the filter will not let me query for people only in the zone "Ahn'Qiraj" without also telling me who is in "Gates of Ahn'Qiraj" and "Ruins of Ahn'Qiraj" as well.
In fact, I decided that in order to get the scrape times back down to where they used to be, I would play some shenanigans to do queries like
/who z-"org" 1-60
to check for toons in both "Orgrimmar" and "Searing Gorge" simultaneously, and be able to break it into zone-specific queries only if there was overflow.
When I did this, a surprising thing happened: We started seeing about 50% less inhabitants in the world than the old race-class scrapers. Hmm. Bug in the code? So I thought, until I ran some experiments in-game to flush it out.
Within a few seconds, I did the following queries mid-afternoon on a medium pop server, horde-side:
/who z-"or" 60-60
/who z-"org" 60-60
/who z-"or" 60-60
Guess what: The first and third returned 24 results, none of whom were in Orgrimmar, while the second returned 50 results from Orgrimmar and Searing Gorge.
After further checking, we discovered that we have been seeing 5-10% fewer characters even with full zone names than we see from the old race-class scrapers, whether we split by level->race->class after the zone, or by race->class->level.
We've tested and discarded a number of explanations. One that remains is that WoW does the z-, c-, r-, and levels as stages internally, and has cutoff capacities for the internal results.
In any case, we're wondering if one of you out in the webosphere can explain just what's going on. If you've got an idea, jump into the game, and poke around until you're pretty sure you've grokked what's happening.
Let us know, and we'll send you something virtually worthless.
Posted by eric at 04:34 PM | Comments (9) | TrackBack
July 14, 2006
Guild Membership and Stability Over Time
We then looked at how guild size and stability change over time. First, we looked at the percentage of characters who were in guilds. There was a mild positive increase over time.
This increase in percentage of guilded characters could mean one of two things. There may be more guilds that spring up, or characters are joining existing guilds. The following chart of average guild size suggests the latter is the case. Over time, established guilds attract more and more characters and increase in size.
Over time, guilds also stabilize. As the following chart shows, members are less likely to quit a guild as a server matures. Overall, these three charts suggest that over time, characters on a server are more and more likely to be in a guild. The guilds they join tend to be established guilds. And over time, guild turn-over decreases.
Server Sample: RP (High), PvE (High), PvP (High)
Sampling Period: July 2005 - January 2006
Sampling Resolution: ~12 minutes
Parsing Method: The sample unit is each unique character in each 2 week period.
Data Filter: Characters above level 1 and who spent less than 95% of their time in a main city.
Sample Size: ~100k characters in each 2 week period
Posted by nickyee at 05:47 PM | Comments (2) | TrackBack
July 07, 2006
Levels and Grouping Over Time
Our long-term sampling allowed us to look at trends over a long period of time. In the current analysis, we looked at data over a 6-month span.
In that 6-month period, the percentage of level 60 characters has more than doubled (from around 10% to around 24%). That comes out to about an additional 2% of level 60 characters every month.
But it was interesting that even as the level composition of the game space changed in that time, the average grouping ratio was fairly stable. This implies that level composition has a minimal effect on grouping behavior. The sudden slide and drop at the end of the graph is due to an in-game API change. Blizzard suddenly stopped making the "grouped" variable public in early 2006.
Server Sample: RP (High), PvE (High), PvP (High)
Sampling Period: July 2005 - January 2006
Sampling Resolution: ~12 minutes
Parsing Method: The sample unit is each unique character in each 2 week period.
Data Filter: Characters above level 1 and who spent less than 95% of their time in a main city.
Sample Size: ~100k characters in each 2 week period
Posted by nickyee at 02:41 PM | Comments (0) | TrackBack






