Petition: Limitations of the Public Atlas API

I’m sure that by now every forum-dweller has heard something about the current situation with PG’s new Public Atlas API. But for those who don’t, let’s recap.

PG has, since at least spring 2019, given blanket permission to users to gather information about WD through the use of third party tools. More recently, different employees noticed that third party tools were being used by the community. They attempted to stop this behavior by sending out a game-wide announcement that the use of these tools could result in a ban.

The resulting response showed that the overwhelming majority of the community used these tools, so they retracted their statement, and promised to release public APIs for everyone to use.

Now, I am by no means against public APIs. In fact, I made this thread, over a year ago:

I was more than happy when they announced plans for public APIs. But when the API was finally released, it fell quite short of expectations. These APIs were full of bugs (they still are), security issues that compromised player accounts (somewhat fixed), and most important of all, incomplete; by omission or design, it’s now very difficult to get information that much of the community had been relying on.

Over the past few weeks, these APIs have proven unstable: often breaking, sometimes having inexplicable and unannounced restrictions added, and in some cases providing information that lagged weeks behind reality. Overall, it has been very difficult to work with. PG has–more than once–forced updates on developers from the player community without even telling us. These cause our tools to break, and force us to undertake several hours of debugging, during which we rush to fix previous work to get things back to working order.

Worst of all, PG added rate-limiting to the API that will make any tools created with it very slow to update. Obviously, this was added without even informing the community; we found out only after all our tools broke. PG has said that these restrictions aim to reduce load, because:

We know server costs are not cheap, but we are making tools to improve the game experience of PG’s game; this makes the game more usable in a way that PG itself has not done, and creates value for all users, which is certainly represented in revenue. Simply put, we’re adding value to PG’s product by providing features PG has often talked about, but never delivered.

Several of us in the player community are or have worked in software engineering, building scalable systems on large software products with hundreds of thousands of concurrent users. We regard with extreme skepticism the claim that a 20% increase in traffic is an unacceptable cost on an app with 30,000-40,000 total users; scalable systems are generally designed to be robust in the face of increased load. Those of us who have analyzed network traffic for the game can confirm that the game itself sends a vast amount of unnecessary traffic, far exceeding 20% of the total bandwidth consumption.

However, let us grant, for the sake of argument, that bots have costs; let us go further, and regard the matter as though bot traffic represented a material cost to PG, with no corresponding benefit. Even seen so, these new rates do the exact opposite of their intent. I am now forced to send many, many times more requests to the server to keep information updated, with the result that server load actually increases.

My own server load has increased a total of 7-10% from the previous API. The solution to the rate-limiting is to manage a fleet of alts so that we can use the API at a sensible rate. It is beyond me how PG thought this would decrease traffic.

In the end, PG closed the old endpoints a few days back, forcing us to work with a broken product that they declared good enough and have not indicated that they plan to fix soon.

So, what do we want PG to do differently?

  1. We want better communication from PG.
  2. We want PG to stop limiting information that we have been using for years now.
  3. We want a stable and working product, like the old API.
  4. We want PG to focus on real problems, rather than making it harder and more painful for us to make tools that help the whole community.

Mentioning every problem with the public endpoints would make this post way too long, so I’m going to end with a petition that a group of us started last night. I’m sure many of you have read it by now, but if you haven’t, please read and (if you agree) consider signing. Thanks to the 700 players who have signed it and supported it so far!

https://www.change.org/p/wardragons-war-dragons-future

@PGGalileo, @PGEggToken, @PGSoul

43 Likes

As a worker in the medical field my knowledge is very limited about public APIs and what they can do. Im a fairly active player and so far the only time I saw APIs in action (that Im aware of) is our line chat where we have a bot to which you can feed information to search for enemy primarchs (Like level, troop number and atlas rank), get information on certain teams (troop numbers etc), search for the coordinations of their castles etc or check on atlas activiy (monthly troop kills) for recruitment purposes.

I dont think many people actually know what added features public APIs enable #autotrapping. So I would really appreciate if someone could clarify what those API’s add to the game experience, because from what I have seen so far Id rather not have APIs in the hands of a few that can do powerful stuff. If those features are meant to be part of the game PG should program them in the original software and they should not be only accessible to people with third party software that apparently (?) cause server-wide atlas lag.

Again, my knowledge about APIs is very limited and Im asking for me and for everyone else who doesnt know exactly what they actually do.
Thanks if someone takes the time to explain their function.

5 Likes

Most APIs in games (which are found all over the gaming world) feed players data which allow them to make better strategical decisions, analyze player progression, or track team member progress.

Much of what bot developers like myself are doing is adding informational features to the game that the game itself is lacking.

Here’s an example:

A player applies to the team. In game, all you see is their level, medals (doesn’t mean much), war flames (again doesn’t mean much), and the game generated Activity Level. You can see their base which is nice, and their top 3 dragons (which isn’t always accurate).

But what about other VERY important factors? Number of troops, monthly kills in atlas, event performance? do they hit TP8 every event? or only for fort? These very important data points are missing in the games application process.

Before they started shutting down endpoints I would display to team leaders all this information: Last 8 regular event scores, last 4 atlas events, their number of troops, their monthly kills, base DP, dragon AP, estimated / theoretical dragon tier, top 3 dragons (again, PG misreports this), previous teams over the last 8 weeks, and the other information the game gives. One bot maker even tracks a players previous names. Knowing their previous names and teams is helpful rooting out serial team jumpers and known bad apples.

This way leaders and officers know up front if this player is worth accepting. Yes, you can interview players, but half the time they lie or misrepresent themselves. This takes that out of the equation and makes the interview process more efficient.

This of course, is just one example of many.

4 Likes

Now, with that said, there are ways to cheat with this technology.

The co-authors of this letter (which includes myself and several other bot makers) are 100% against these methods.

Our goal is to have information only. Raw data that we can filter and return to the players for them to make decisions.

As mentioned in the letter, we are against ANY form of automating in game actions.

I, and the signatories of this letter, are against:

  • Auto trapping
  • Auto flying (triggered by bot, not the new in game method)
  • Auto upkeep payments (triggered by bot, not the in game auto-pay)
  • Auto defending
  • etc

All game play actions must be performed by a player via the game itself.

This is why we DO want and official API that will prevent these things, BUT not at the expense of player base as mentioned in the letter.

4 Likes

Yeah no one is against info only bots, we use them to check new recruits or get castle cords for raids. But with the current loopholes we allready know bots can do more then this.

4 Likes

Thanks for the explanation Leeroy. I fully agree that the APIs should be used for gathering information on players.
I dont believe this would influence servers too much, so all good. However searching for primarchs in atlas which you can snipe pulls a lot more data I would think, especially because you execute this command a lot more often, so maybe that should not be allowed.

Totally agree with that as well.

The question is, can it be done by PG that only “reading” information is possible? If PG closed the loopholes for information gathering, then what is the purpose of having a public API? To give people the option to cheat?

You cannot cheat from a read-only API.

2 Likes

Yup but im not against closing those loopholes at all, we just want proper stability and functionality from the new api’s.

As for the old ones pg couldve perfectly fixed the trap api without affecting the other ones. Is a completly different api.

Overall id just like to spend my time creating new content vs fixing old scripts that pg keeps breaking with random unannounced updates and for very invalid reasons.

2 Likes

Correct, which is what we ultimately want to work towards.

My thoughts are, all the fair players will use the public api when(if ever) its ready.
But, i do not believe PG can shut down the game apis, so the apis used today, will always be available. Maybe not in its current form, but in some form.

This is also the reason PG should prioritze the developers who makes the fair bots. If they can provide what the players needs, the bots controlling teams, will soon be irrelevant.

2 Likes

Mind you, the way we fetch the castle data is the same as when you scroll / pan anywhere on the screen while in atlas. Every time you scroll over castles, you pull / download all the prims, teams, infrastructure, etc for every castle you see even when zoomed out.

So if a player isn’t using a bot and just scrolling around looking for a good castle to attack, they could easily be pulling / downloading hundreds of castles in a matter of seconds. You don’t even have to click on a castle, just looking at it zoomed out performs the same function the bots do. Clicking “details” doesn’t download any new data (like you think it would). It just gives you a GUI to view the data that you already downloaded panning over the area / region.

The idea about bots is that one scan from a bot can notify multiple players, versus multiple players all downloading the same files in duplicate. There is a potential to save bandwidth if the bot and API are both coded properly.

1 Like

But as far as I know it only scans the primarchs from a certain height. You can maximally see 4-5 castles when it scans for primarchs. When youre further away it doesnt scan. Not sure if thats how it is, but when I search for snipes thats what happens on my WD screen, I have to be relatively close for it to start scanning.

Sounds good in theory, but from what I notice using the bot to search for potential snipes:
I use the command with specific level, troop range and atlas rank. Then it takes 5-10 seconds until the bot spits out the search results. Does it take this long to download the information? And the bot kind of scans the entire atlas zone, am I wrong?

Then I find no good target and I redo the scan with other values, at least 5x before I have a adequate target. This I imagine causes a lot of server issues.

Please correct me if Im wrong, its just from what I see.

@DreadedSloth

you are talking about my snipe command and is mostly cashed data so most of the time each time you do it, is not even sending a request to the server, that said, even if it had to send requests each time, is usually only 2 requests, maybe 3 if the teams within the rank have a lot of castles, but that’s the most it will ever send.

I also record how many times each of my commands is used per hour and so on, trust me the server load is minimal, I run it off my own server which is insanely old and bad, the snipe command likely doesn’t even represent 2-4% load at its most active times, and that’s on a really shitty server.

1 Like

Ah okay, if thats how it is then Im happy if the command also stays. I was wondering if the atlas lag lately was due to bots. But if youre monitoring everything then I guess its fine. :slight_smile:

Only question unanswered is if PG will ever be able to close all API loopholes used for cheating or automation.

Atlas lag is 100% bad optimization on their part, they have requests that keep spamming every player back and forth for no reason. Also when you encounter an error, the server keeps sending you error data non stop which just scales it from a simple error to a crashing error, and lets not forget about the memory leak which is likely the result of most crashes, is been in the game for years, and PG has yet to fix it. Savage pointed it out in numerous threads, which always got ignored, even back in the old forums, that’s how long is been there for.

That said, PG’s recent changes has actually forced us to increase the load and the amount of requests we are forced to send. Is a lose lose lose for everyone, players, developers and PG.

Savage's Posts in the new forums:

Addressing the long lost memory leak
GPU Memory Leaks in Android

Keep in mind these are all separate api’s, they are not connected to one another, is not one big api that can be abused, they are all separate so there is no reason why securing one would affect the other.

1 Like

@PGGalileo any chance we can get a statement from PG’s side on this?

What if a player doesn’t want that information available to everyone? Especially if I changed my name for a reason or I don’t want a person having all my stats?

I get why a team would want some of this info but it also invades on privacy imho

You can use that to cheat, though. Either as leverage or a catalyst.

Nah. Not if the api is implemented properly. The api merely provides data, that is already available in game. Just makes it easier to gather the information.

At what point do you draw the line between what a player wants vs what the community wants. If the community is split in half towards a certain issue than that info should be revised, but if the vast majority agrees that is helpful and healthy for the game, i wouldn’t see why a single players opinion should have the same weight as the entirety of the community.

4 Likes