Upvote
from Brasil
That would be awesome.
Printable View
Upvote
from Brasil
That would be awesome.
As a developer, I know that this would actually be fairly simple for them to implement. Supercell already has a database that stores information about the game, and they already have a web server to serve as data endpoints for the mobile game clients as well. With all of this infrastructure, there's no need for them to "run another website" - they can leverage the architecture that they've already built.
Obviously, the game is networked, and if Supercell is anywhere near this decade in terms of API development, they've created a RESTful API that serves data in a structured, resource-based manner.
It would be fairly trivial for them to implement public-facing, readonly endpoints for certain parts of the api that they would want to expose to third-party developers. They've already got private endpoints set up, so it would not be hard for them to make some of them public, or to create separate public routes for third-party developers to work with.
And for those naysayers who think "It would cost too much for them to host this kind of service!" - They've already invested in a robust enough server/cluster architecture to handle the load of hundreds of thousands of clients from their playerbase - supporting a few thousand (at most, more likely few hundred) developers who are interested in the public api would be incredibly easy.
Hell, they could even charge us for API keys - I know I'd pay $10 to access this data.
As an example, Riot Games does this with League of Legends to great effect. It would be awesome for Supercell to share this data with us. I'm already imagining tons of tools that I could build if I had access to this information. Specifically, I want to build an integration for my clan's Slack channel that will send alerts to the entire clan when arbitrary events occur.
I found an app in the Play store named "network connections" which was able to display connections per application running on my device.
Clash of Clans appears to make several connections on port 443, suggesting what we already know - they have a private API layer already in place, rightfully secured using HTTPS.
Additionally, the IP trace points back to AWS (Amazon Web Services). This means they're already able to scale demand for that API layer, or the game would stutter and lag given the number of concurrent users.
The API layer must follow the same workflow as the game, where if we consider how we would want to use it, would be something like this:
+ searchClansByName(name)
Returns an array of objects. Properties would include clanId, name, totalMembers, warsWon, etc, or just clanId at a minimum.
We would then find the object for our respective clans, and then use our clanId for:
+ lookupClanById(clanId)
This again would return object details about the clan (useful if the previous method did not already return this info), along with either an array of memberId values or an array of objects outlining all members and their associative properties.
The order of the members returned should be in the same order they appear in the game, ordered by trophyCount.
If we need to call a method to look up member properties, we would use memberId:
+ lookupMemberById(memberId)
The result from this method would be a series of properties including the current level for every structure of the user's village, the level for each troop type, total number of attacks and defends, total number of stars won in war, etc.
With this information, every clan could make their own dynamic clan page that would update user stats automatically without the need for manual data entry and a database.
It seems really pointless to me to go about managing this data manually when Supercell clearly has an API layer already in use. They simply need to make a few methods public.
I disagree about the need for an API key or charging us to access the API. Since we would only need GET access we couldn't write data back through the API, making it read-only. Aside from identifying who is using the API, a key shouldn't be necessary.
The number of public API requests would be nothing compared to the number of requests running constantly by people playing the game, meaning the cost to support this from an AWS standpoint would be next to nothing. (If anything, creating a public API layer would drive more business, as it would allow individual clans to broadcast their competitiveness across the web. That's effectively free advertising for Supercell, which in turn would generate more users.)
In terms of development it should take very little time for them to test and implement this (I build APIs almost on a daily basis - its not that hard to do), as the methods in the examples I outlined must already exist. All they need to do is make certain methods public which will allow us to build our own dynamic clan pages.
Another up vote!
This would be an amazing feature. I used to run a clan and stopped because it was a lot of work with my school and everything, but this would make running a clan A LOT easier.
Would show that our API.
We could put on the websites of clans, showing how the clan is now.
Have api to have a better organization of the war.
Statistics clan.
Members' time to know their elders.
Able to obtain information about the village, what level of the buildings, how many xp, whens trophies.
I'm all in favor of something like this and when I saw that some guy figured out how to access the private API cos he built an app on top of that (look at this) I don't get it why they don't want share with us that API.
I think if this was possible supercell would have to make it optional and fee based! The more sites you allow to connect to the game the more doors you give ♥♥♥♥ers to mess the game up for everyone, there for it would require constant management by supercell and there for would need a fee attached!! However if they made everyone pay a fee new players wouldn't start playing there for the game would eventually come to the end of it's fun!!
good idea!!!