WoWPS: a World of Warcraft Positioning System

introduction

This site details the creation and maintenance (ha) of the World of Warcraft add-on known as WoWPS, an add-on that converts a player's coordinates in the MMORPG World of Warcraft into the Earthen equivalent of latitude and longitude, which is known as GCS or Global Coordinate System. This add-on was created as a project for my "Programming for the Arts" course at the University of California, San Diego and yes, I am perfectly aware of its lack of usefulness for any purpose in-game. The creation of this add-on was entirely for fun and exploratory reasons.

about me

My name is Cynthia and I am an Interdisciplinary Computing at the Arts Major at UCSD. My main is a 60 night elf druid on Eredar; I also have a 60 hunter and progressing undead mage elsewhere. My school e-mail is cnie[at]ucsd.edu; write at your own risk, as I imagine it will stop working once I graduate and I am not reckless enough to release my permanent e-mail on a site remotely related to WoW. :P

How Does It Work

conception

My instructor for this project's course had a main interest in GPS-related artworks, so it followed that our final projects would be something related to the concept of mapping. WoW, being a fairly important hobby to me at the time, became my focus and I decided to develop an add-on that would make use of the game's own coordinate system. However, there were already a plethora of map-related add-ons written for the game, so I went to look for something as yet undeveloped.

In truth, converting game coordinates to real-world coordinates turns out to be a somewhat arbitrary exercise. Since the two worlds are nowhere near the same size or shape, I was allowed more or less infinite freedom when choosing which boundaries of what continent would become what boundaries of which continent. Originally I tried to simply overlay one map over the other, but this resulted in the unfortunate circumstance of a lot of Azeroth's land ending up in Earth's oceans.

earthvsazeroth.gif
an early concept image

For version 1.5, I tried to get more of Azeroth to equal to Earth's land (since the ocean isn't all that interesting), so I used a smaller range of degrees longitude-wise. If I were to continue experimenting with mapping the two worlds together, I might try estimating the actual size of Azeroth's two continents (by timing how long it takes for one to walk across them on foot!) and then map them to actual areas of the Earth that are equivalent, rather than simply trying to use as much of the Earth as possible.

the conversion process

There are three basic levels in converting coordinates in WoW to coordinates in Earthen GCS. Just for the purposes of this explanation, we will refer to them as the game space, zone space, and Earth space.

The game space is the internal coordinate system that is used by the programming of the game itself. There are three axes -- x, y, and z (though in our case, we are completely ignoring the third dimension) and every given point in the world has a unique coordinate. This coordinate system is used specifically by the game to place objects and NPCs and monsters, etc. It is not normally accessible by the player or in given UI scripting functions.

The zone space is a coordinate system that is unique to each zone's map. This coordinate system has two axes, x and y, both on scales ranging from 0 to 1. These coordinates are accessible to the player through UI scripting functions (specifically, GetPlayerMapPosition) and are commonly used for other mapping add-ons.

The zone space coordinates are the only ones available to us typically. But because of the fact that zone space is relevant on a per-zone basis only, these coordinates become useless for mapping the world to a real-world location, as you would get duplicate coordinates in each zone. i.e. if we equated location 0.50, 0.75 to the city of San Francisco, there would be a San Francisco in every zone, since there is a location 0.50, 0.75 in every zone.

Therefore, it is necessary to first convert zone space coordinates into game space coordinates which, unlike zone space coordinates, are unique all across the world. This process involved taking a huge mess of coordinate samples using both game space and zone space coordinates. Using linear interpolation allowed me to come up with a different equation for each zone. With these equations, we can convert any position's zone space coordinates to game space coordinates.

After we have a position's game space coordinates, we can use another equation (also conceived through interpolation) to convert game space coordinates to Earth space coordinates.

Features

WoWPS display

A small, green bar with yellow text that displays the player's current location in Earthen latitude and longitude. This updates automatically depending on the player's movement and can be toggled on and off.

wowps_commandlist.gif

flight parallels

To better illustrate the idea that every Azeroth location might have an Earthen equivalent, I visited each and every single flightpoint and noted down the position of the flightmaster in Earthen GCS. I then used Google Maps to determine the location of each set of coordinates and mapped out a real, Earth location to every flightmaster. Each of these was then included on the tooltip of that flightpoint's location. Again, no real purpose or use for it; it's merely amusing.

wowps_flightpathparallels.gif

Download

version 1.5

Still to be written. This version will have all flight path parallels completed and all Azeroth zones accounted for. Hopefully. :P Estimated date of release: sometime just before or just after the Burning Crusade expansion.

version 1.0

Download Link (7kb .zip file). Naturally, you must have the game World of Warcraft in order to use this add-on; it does not work with any other games. This particular version was written in Winter 2006, so it's a bit aged, but there is no reason why it will not work with the latest patches (that I'm aware of).

1.0 was the first one written and was rushed for my project's deadline. It only includes Alliance flight path parallels, as I did not have a high level horde at the time with which to visit all the horde flightmasters; sorry horde-lovers. The 1.5 version should rectify this.