Map API / Mumble Mashup

#1 - June 21, 2013, 11:33 a.m.
Blizzard Post

I just read a post on reddit where someone suggested a great idea that I had never thought of. I just wanted to post it here so that you guys can see it and get some more information about it.

The idea is to use the mumble link plugin protocol to get your character’s position from the game client, which could then be used to plot your character’s position on a map.

Guild Wars 2 supports mumble’s 3d-positional voice chat, which means that GW2 mumble users will hear other players relative to their positions in the game world.

The protocol is described here: http://mumble.sourceforge.net/Link . An app would simply need to create or open the memory mapped file described in the protocol, and GW2 would automatically write the character’s position to that file.

Some implementation notes:

  • The coordinate system used by mumble is slightly different than the game. GW2 uses inches (don’t ask), but mumble uses meters. So you’ll need to convert the coordinates back to inches for use with the map API.
  • The game currently supplies the current map ID inside the ‘context’ binary blob. However, it doesn’t currently supply which floor the character is on or which interior the character has entered.

I’m not sure how the mumble server protocol works, but theoretically you could tap into the mumble client to get the positions of everyone else on your mumble server too.

#13 - June 21, 2013, 4:16 p.m.
Blizzard Post

I would love to make something like this for WvW so we can see where the different guilds are operating. Would this be ‘legal’ to make? Just positions for our allies.

Yes. I discussed this scenario with the WvW team, and they’re totally OK with this usage of our APIs.

Their only requirement is that player positions should not be posted publicly, since obviously it would then be used by opposing teams.

#22 - June 22, 2013, 4:03 p.m.
Blizzard Post

In case you guys haven’t seen it, there is a great proof of concept implementation just released over here: http://www.reddit.com/r/Guildwars2/comments/1gv2yq/map_api_with_realtime_player_location_proof_of/

#24 - June 23, 2013, 3:27 a.m.
Blizzard Post

Having trouble getting this working in OS X. Cliff, can you verify that the Mac client is writing values to the shared memory object just as the PC version does during its update loop?

If I have Mumble open on my Mac, I’m able to at least get an empty linker object. I didn’t think having Mumble was necessary, but either way, the linker object isn’t being updated with any game values.

It definitely won’t work on the Mac, unless you can hook into the transgaming win32 layer somehow. That’s probably very difficult to do, if it’s possible at all.