Showing Posts For Cliff Spradlin.3512:

WvW API Downtime?

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

They are down again :S

Looks up to me. Is anyone else seeing any problems?

WvW API Downtime?

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Hi,

The WvW API is now fixed and should be fully re-populated shortly.

Sorry for the extended downtime, we should have caught it earlier. Thanks for the reports.

[API Suggestion] files => events

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Feel free to make a suggestion thread for files you want to see in that API. The initial set is just a relatively random set that I picked as a proof of concept.

GW2's Mumble Link "context" data format

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Cliff, could please you provide us with some information about the character sets which are allowed (or better: forbidden, since the PCRE will match only ASCII chars) in character names so that we could e.g. run a regexp on them in order to store them in a DB or use them in scripts/apps/websites in a XSS/hack safe manner

I assume you’re asking about the JSON in the identity structure? JSON is UTF-8, and so any valid UTF-8 character is possible. You’ll need to do whatever you need to do to store and safely present any data, though I can’t really think of any possible attacks related to the mumble data.

It’s not clear to me how PCRE is related to any of this.

GW2's Mumble Link "context" data format

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Cliff, thank you for sharing with us the API and continually improving them.

I know this may be a long shot, but…it would be fair to say that attempts to get MumbleLink to work on Mac OS X have been unsuccessful.
Is there any chance that you would be able to confirm with Transgaming that their cider wrapper of GW2 client for mac is actually executing the part of the Gw2 client code that is writing to a shared mapped memory “MumbleLink”?

Also, would it be against the rules to scan the memory of the GW2 client itself and get the necessary values of the coordinates, given the MumbleLink is not working at present on Mac?

Sorry, I wouldn’t expect Mac support any time soon. The Mac version of Mumble uses a completely different transport mechanism. Even if you could tap into the Cider win32 emulation layer, and create a memory mapped file, the GW2 code responsible may simply be disabled for safety when running on Mac. We are just not setup to test and support this scenario at this time.

It would be against our 3rd party app policy to scan the client in the manner you describe.

Render service for item icons (404)

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

OK, this should be fixed! Sorry for the trouble.

Render service for item icons (404)

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Hi,

We’re looking into it. The URL you constructed should work – looks like there might be a configuration problem.

API Documentation

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Render Service

The render service provides in-game assets in web-friendly formats.

To use the render service, you need to get a file ID and a signature. Various APIs can be used to find these values (for example, the /files.json API). Once you have these values you can construct a URL to access the file:

https://render.guildwars2.com/file/{signature}/{file_id}.{format}

For example: https://render.guildwars2.com/file/943538394A94A491C8632FBEF6203C2013443555/102478.png

Valid formats:

  • png
  • jpg

API Changes

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

A new rendering service was added for retrieving game assets in web-friendly form.

The item API was updated to show item icon IDs that can be used in conjunction with the rendering service. Also, a small API was added that lists some generic useful UI icons that can be retrieved from the rendering service.

GW2's Mumble Link "context" data format

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

In the latest patch, the mumble link was enhanced to provide more information about the character in the ‘identity’ field. Hopefully this extra information is useful for API developers.

GW2's Mumble Link - missing vector data

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

This should be fixed in the latest patch.

Bold version of Menomonia font

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Sorry, there is no bold version of Menomonia.

GW2's Mumble Link - missing vector data

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Yeah, that makes sense to me. I’ve filed a bug on it.

Possible map_floor API bug?

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

It’s up to the level designers to decide how to organize this data.

Note that in Tyria for example, all waypoints, etc. exist on all 3 floors in-game, even though the waypoint itself is on just one floor. This is so that you can always see waypoints.

This is reflected in the map_floor.json API too. The technical implementation of the map data does not always consistently reflect the logical in-game understanding of the map.

(edited by Cliff Spradlin.3512)

GW2's Mumble Link - missing vector data

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

fCameraFront is derived directly from our camera data. fAvatarFront does force the z axis to be 0, but it normalizes out the z axis into the x and y coordinate. Maybe your structure is wrong?

Note, I didn’t test it to see if the fCameraFront1 is always 0, maybe it is. If so, it might be fixable.

What are you trying to do?

GW2's Mumble Link "context" data format

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

You guys did a good job tracking down most of it.

Here’s the whole thing:


// uniquely identifies a map instance for mumble
struct MumbleContext {
    byte serverAddress[28]; // contains sockaddr_in or sockaddr_in6
    unsigned mapId;
    unsigned mapType;
    unsigned shardId;
    unsigned instance;
    unsigned buildId;
};

Map tiles service intermittently cutting out

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Well, not really an outage, but is it just me or aren’t the tiles updated with the new map yet?

Oh and while i’m at it:

According to texture_dims, these tiles should exist, right? (They actually do exist, but only for zoom level 1 and 2)


GET https://tiles.guildwars2.com/2/1/3/0/0.jpg 403 (Forbidden) tiles.guildwars2.com/2/1/3/0/0.jpg:1
GET https://tiles.guildwars2.com/2/1/3/1/0.jpg 403 (Forbidden) tiles.guildwars2.com/2/1/3/1/0.jpg:1
GET https://tiles.guildwars2.com/2/1/3/2/0.jpg 403 (Forbidden) tiles.guildwars2.com/2/1/3/2/0.jpg:1
GET https://tiles.guildwars2.com/2/1/3/3/0.jpg 403 (Forbidden) tiles.guildwars2.com/2/1/3/3/0.jpg:1
GET https://tiles.guildwars2.com/2/1/3/4/0.jpg 403 (Forbidden) tiles.guildwars2.com/2/1/3/4/0.jpg:1
...

http://gw2.chillerlan.net/examples/gw2maps-gmaps-simple.html -> switch to the mists and see

You need to respect the clamped_view from the map_floor api. From the docs: “The map_floor.json API contains useful information like the size of each floor, and bounding rects. The bounding rects define which tiles are available for download, as well as the area of the map that should presented to the user. Tiles outside of the bounding rect are not available for download.”

https://api.guildwars2.com/v1/map_floor.json?continent_id=2&floor=1

“clamped_view”: [
[0,4094], [16382,16382]
]

Sorry if it’s confusing – world maps are complicated.

Another live WvW Map. Checking legality..

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Now the only thing this does that might be bad is detect keys. Basically just a key bind on my application is fired when a key is pressed while any application is active.

Cool app!

We’re planning to publish a new 3rd party app policy, hopefully soon. The policy will be designed so you can self-evaluate your app to determine whether it is acceptable. The behavior you describe will not be against the rules of that policy.

API/Tile status monitor

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Thanks This will be helpful to all of us!

Localisation Error

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

This should be fixed now.

Map tiles service intermittently cutting out

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

This brings up a good point though. Cliff, how hard would it be to get an API status json that contained all if the API calls and their statuses?

It’s a good idea, but it’s not super easy, unfortunately. It would need to run on a server outside of our normal datacenters to be effective for external failures like DNS problems.

We do have internal monitoring of our services of course, but errors reported by those systems don’t map directly to specific API failures. To do a really good job, we’d need to write services that top into our monitoring, and translate them to specific API failures.

Long story short, if there’s enough interest, maybe one of you could write a status site. It would probably work just as well as one we’d create, if not better.

Map tiles service intermittently cutting out

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Hi,

We weren’t aware of the problem actually.

Sorry about the outage — we changed our authoritative DNS servers this morning for guildwars2.com and it seems like tiles.guildwars2.com didn’t make it over to the new server.

It should be fixed now, or within a few minutes depending on negative caching.

[API Bug] map_floor: multiple entries per map

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

OK, so we found the cause of this bug. The underlying map floor content sometimes points to the incorrect map_id for a few map instances.

Since it’s a bug in the underlying content, it’ll take a little while for it to be fixed in a live patch.

At least you found a good workaround in the meantime, which is to read floor 2’s data instead.

[API Bug] map_floor: multiple entries per map

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

In map_floors.json, some maps are returning as 2 separate entries under “maps”.

I believe this problem is fixed, can you verify?

Blazedridge Steppes and Lornar’s Pass are each still showing up twice in https://api.guildwars2.com/v1/map_floor.json?continent_id=1&floor=1

Possibly other maps as well.

Yep, Harathi Hinterlands is still there twice. The first has all POIs and all sectors, the second has all waypoints and vistas but no landmarks and only 1 sector (tasks and skill challenges are all present in both).

You’re right. OK, still looking into the bug.

Nameless Event?

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

This bug is now fixed. The event is now labeled ‘Defeat Rhendak the Crazed.’

[API Bug] map_floor: multiple entries per map

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

In map_floors.json, some maps are returning as 2 separate entries under “maps”.

I believe this problem is fixed, can you verify?

[API Suggestion] Event Details

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

ANet, please get rid of dynamic keys in (some of) your JSON APIs.

https://forum-en.gw2archive.eu/forum/community/api/API-Request-Results-as-map-id-details/2121379 is the discussion that led to our transition to use dictionaries instead of arrays when it makes sense to do so.

The data format for these events are more suited to be a dictionary than an array, and there should be no downsides to having them presented in this format. In javascript there are definitely no downsides.

A quick look at the RestSharp library seems to show that it supports parsing JSON dictionaries. Am I missing something?

(edited by Cliff Spradlin.3512)

Map API / Mumble Mashup

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

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.

API Changes

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

A new events API was added: event_details.json.

This API returns more detailed information about events, including their starting position in the world. This can be used in conjunction with the map API to show the position of events on the world map.

API errors & bugs

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Did we already kill the maps API? O.o

{
	error: 42,
	product: 0,
	module: 9001,
	line: 4119,
	text: "Srv2Route, transaction timeout {#17108}, {P+/Content/GetMapFloor+STS/1.0}"
}

No, sorry, there was a configuration error on our server. It should be fixed now.

Map API / Mumble Mashup

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

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.

Map API / Mumble Mashup

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

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.

(edited by Cliff Spradlin.3512)

API errors & bugs

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

The repeated sectors are for personal story maps. Nemeton Grove, specifically, is also within “A Different Dream” and “Shadow of the Tree”, besides where it normally appears within Brisban Wildlands.

Right. The technical relationship between continents, floors, regions, maps, and sectors is a little bit complex. Each child object could technically be referenced by multiple parent objects. This gives map designers a lot of flexibility, especially when designing unusual maps.

We enforce some practical rules in our map content. For example, floors are only allowed to exist on one continent.

[Maps API] .zip'd tiles possible?

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

It’s just for development purposes – having the tiles on localhost would keep me sane when i’m reloading my local dev page – i’m on a 384kbit connection, so it would take ages to reload and zoom etc… from a remote server.

I think you’d find it would take forever to download a zip file too — the total size of the maps is more than 5 GB, and it will likely grow in size over time.

The map tiles have cache headers, so you shouldn’t be having to download the tiles each time you reload the page.

[Maps API] .zip'd tiles possible?

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

First of all: maps API – pure awsomeness – thanks for that one!

Would it be possible to zip the map tiles and have them as a seperate download? This would make life easier for developers on a slow internet connection (like me… coughs)

What is your use-case for wanting to download all of the tiles vs. just referencing our servers directly?

Our servers will stay up to date with the latest map changes, etc.

API Changes

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

A new maps API was added, as well as a world map tile service.

These two services can be used together to create world maps outside of the game, and will serve as the basis for future map-based API content.

API Documentation

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

World Map Tile Service

The world map tile service provides game map tiles that can be used to present a world map outside of the game. The service is designed to provide tile data in a format compatible with Google Maps, Leaflet, and similar map libraries.

The basic tile format is described here: https://developers.google.com/maps/documentation/javascript/v2/overlays#Google_Maps_Coordinates

A tile can be accessed by constructing a URL in the following form:

https://tiles.guildwars2.com/{continent_id}/{floor}/{z}/{x}/{y}.jpg

A list of valid continents and floors can be downloaded using the continents.json API. The map_floor.json API contains useful information like the size of each floor, and bounding rects. The bounding rects define which tiles are available for download, as well as the area of the map that should presented to the user. Tiles outside of the bounding rect are not available for download.

The map tile service does not currently include map interiors, which are used to provide detailed overlays on some parts of the world map, such as when a character enters a cave.

Additionally, we’re providing the same fonts used for the in-game map for use on the web. These can be referenced through the following two URLs:

It’s allowed and encouraged to link directly to our servers so that you don’t have to download and host the map tiles and fonts.

A very rudimentary example of using this service is available here: http://jsfiddle.net/cliff/CRRGC/

(edited by Cliff Spradlin.3512)

Certificate problems with Android Apps

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Hmm interesting, it seems is was failing on the first call, it just wasnt notifying me because the second call overwrote it. So for some reason, all my calls to the api are failing with an IOException in my android app, with a warning of an SSL Exception saying No Trusted Server Certificate, and a CertificateException stating that TrustAnchor for CertPath not found.

Whats strange is that these work perfectly on the pc version of the app and I just dont know what could be going wrong.

Can you post the code relevant to setting up SSL and connecting to the API?

Also, what happens when you visit an API url on your mobile browser? Is there a certificate error?

(edited by Cliff Spradlin.3512)

HTTP access

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Can someone inform those of us less intelligible about SSL certs how to get the new certificate that we need for this? Java users especially will be having lots of trouble now due to Java not automatically including startcom’s certificates.

Hi,

I wasn’t very clear about this earlier. The new certificate has a different root (GeoTrust) which is included by default in Java’s certificate store. With the new certificate, you should be able to remove all the weird manual cert stuff you’re doing in java, because a normal connection to the API should just work.

HTTP access

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Hi,

We’re rolling out an experimental new SSL certificate for api.guildwars2.com. Hopefully the new certificate will resolve the certificate verification issues that developers have been experiencing on some platforms.

There’s a DNS change involved, so it unfortunately won’t be an instant transition.

Please reply if you have any trouble with or comments about the new certificate.

Thanks!

(edited by Cliff Spradlin.3512)

Null world name

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Whoops. There was a configuration problem on one of our servers, causing this bug.

World 2000 is not a real world, which is why it doesn’t have a name.

Any references to world 2000 will be cleared out when the next game patch happens. Sorry for the inconvenience.

API Maintenance

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

I’m aware of what it returns. However, when the EU was resetting, even NA matches were not being presented via the API.

You’re very observant. This is a known bug (well, known to me ) in the WvW API. If either of the two regions’ matches end, both regions become unavailable for a short period of time.

It’d be pretty difficult to fix this given the current infrastructure of the game. I think the current implementation of the API is a reasonable compromise.

API Maintenance

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

This maintenance is complete, and the Akitten hould be stable now.

API Changes

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

The events API was updated. There is now a new state called ‘Inactive’. This was reflected in the API documentation.

The inactive state is slightly different from the warmup state. An event in warmup is waiting for specific criteria to startup (usually, some amount of time must pass). An inactive event will stay inactive until it is activated by some external event.

matches.json empty?

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

There was a brief outage for WvW, and the WvW API (correctly) reported that there were no matches running. The outage has been resolved and I believe the API has now stabilized. Sorry for the trouble!

API Maintenance

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

Hi,

We’re going to be doing some maintenance on the API servers tomorrow morning as part of deploying a game update. The maintenance period is on 6/11/2013 between 8AM-12PM PDT.

Some of the APIs (particularly the events API) will be unavailable at times during the maintenance period.

After the maintenance is complete, there will be a new state returned by the events API, “inactive”, that will be documented further tomorrow.

Apologies for any inconvenience.

[API Bug?] Item buff description missing

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

In these cases, there is no description. The buff being applied is more of an invisible, technical one to enable special features on the item. It’s hard to tell the difference programmatically.. maybe I should exclude buffs with no description?

API Changes

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

The item API was updated with the following enhancements:

  • Consumable unlock items now show the type of unlock they perform
  • Consumable dyes and recipes now show the color_id and recipe_id they unlock

[API Bug] Item Flag (Closed)

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next

[API Bug] Bonuses Missing (Closed)

in API Development

Posted by: Cliff Spradlin.3512

Previous

Cliff Spradlin.3512

Lead Programmer

Next