I'm aware that one of the rules of suggestion box forums is:
Quote
Provide only one suggestion per thread and make the title a clear and concise indicator of the suggestion. If you do not provide a suitable title to your thread, we will change it.
However, as the API topic is a very "need of context" and niche subject, I prefer to backle this up in an unique thread, and describe all possible usage cases of an hypotetical API, so I, and other 3rd party developers that may be interested in using the API, can defend the cause and push this to existence somehow.
Now let's begin with the issue itself, as the API topic is something that occasionally appear in the suggestion box, however the last time commented (around 2017) have been discarted as developer team did not have time nor interest in tackle this kind of features, however, today I'm in front of you, with (actually I hope this don't turn into an essay) a list of features, technical review and possible tool development that may use the data shared within the game.
At beggining I wanted to structure this topic as: First part for feature only description (so all players could bring some input into each of the ideas), however as many of the points I'd have to "repeat" for the sake of context, so I think the best idea is to just mix all things up in one self explained feature + a technical comment on how it could be implemented.
Possible API usages list
1. Pokemon summary data embedding (forums, discord) via shortcodes.
This is something that's around my head since I've started playing the game, and the utility for this could be limitless, mostly for trade corner and shiny showcase but a lot of people could even use this in guides for competitive teams.
This idea has 2 parts, the creation of a new feature in the client, that enables a new icon in the Pokemon Summary Screen (next to the last tab for example)
[Here will appear an epic screenshoot of the idea soon]
Once the player clicks that icon, on his clipboard automatically will be copied a shortcode, for example a format like [pokemon:a8b7c6d5e4], being the string of a8b7c6d5e4 an unique ID of the pokemon. This ID will be needed for a call to our API, and for the forums example, the idea is to show a card like this one:
[Here will appear an epic mockup of the pokemon card integrated in forums]
With all the basic information, and once you click in the card a popup just like the ingame summary will apear, to be checked by any player.
This as a popup in the forums, thanks to the info delivered by the API.
The integration on the forums could be either a JS function checking for any shortcode on the page loaded, with AJAX call data retrieve, and finally replacing the DOM with the HTML structure for both card and popups (but this approach could be an performance issue while a lot of shortcodes can be placed in the same page), the second option is a direct template edit of the IPB post structure, so all the cooking can be done serverside, and even with a good planing an S2S implementation for direct data access.
Let's say the endpoints looks like the following:
/api/pokemon/a8b7c6d5e4
Meaning we want to retrieve the information of a pokemon (instead of pokemon we could use /item, /pokedex, /move, but more on this later). The data returned by the API (this is a sketch of a structure) could be the following:
Returning all kind of info related to that one pokemon.
This can be used for trade corner, shiny showcase threads, even link your favourite pokemons on your signature. Or get the data out of the forums, a discord bot that once in any channel you type /pokemon:a8b7c6d5e4 the data could be displayed in the chat. Obviously the data also can be explored by any developer for external usage (competitive team builder for type coverage calculators?).
2. Berry growing status / notifications.
As the berry growth is a time related event, and many people use external (but manual) tools to check on when the berry finished it's cycle, we could use another function to bring data related to the berries. For example an endpoint that requested with the username, could return a list of detailed information about all berries ready to be picked up, the berries that still are growing, the slots that you have left for more berries etc.
I mention the username, as for example a call to /api/berries/username could return a JSON structure with all the information desribed, I know using only the username with no prior authentication may result in some personal information issues, but in the other hand, what harm it can do the knowledge that your friend can has the berries ready to collect.
This can be used in services as smart notifications, that check every X minutes if you berries are ready, and send you (for example in-browser) notification about what berry can be collected already.
So, as many knows the pokemon / pokedex has many changes compared to the original series, to fit better with MMO experience, and also mixing mechanics from different generations, for example pokemons that learn different moves. This leads to frequent questions in forums or chats, that could be attached in guides, however the changes frequently occur and guides are not updates with the new data. The implementation of an /api/pokedex/squirte function could return all information related to that pokemon, the lvl it evolves, the routes it can be found, what moves it learn via level up, breeding, TMs, tutors. anything that appear ingame and more, and just like the first example we could enable a shortcode structure like [pokedex:squirtle] so it can be linked to the guides directly (with no further update as the data it's coming from the game itself).
4. Data related to events, tournaments, updates, announcements.
All kind of data related to events or tournaments, for custom calendar implementation / stats on players winning the tournaments, even information of each player about PvP stats.
5. Teams and clubs integration.
Another data that could be integrated via API endpoint, is the information about ingame teams, so you could have a link between user profile, and his actual in-game team name.
6. Encounter tracking
This kind of tools gained major popularity, to count on how many times a pokemon was encountered, so you can check on shiny hunting statistics or other interesting values.
The in-game engine could return for every encounter a basic information on pokemon type, if it was shiny, how many steps was made between encounters etc.
7. More implementations coming later.
You may notice I've not even mentioned the GTL yet, as this topic will bring another wall of text itself, however it's somethign that I'll add in near future for sure.
For now, I'd want to know a general opinion on this from staff + devs, but also the 3rd party developers opinion that will use this API solution, their own input into this suggestion, or anything that it can be improved / other data that could be useful (as I was out of the game for several years for sure I've missed some important changes that also could be explored).
Who knows, maybe if we find this with enough interest from 3rd party developers, and now the PokeMMO team is a bit less occupied with features implementation, we could find this as something happening eventually, It is a long shot, but you never know.
Question
Greck
Good morning team!
I'm aware that one of the rules of suggestion box forums is:
However, as the API topic is a very "need of context" and niche subject, I prefer to backle this up in an unique thread, and describe all possible usage cases of an hypotetical API, so I, and other 3rd party developers that may be interested in using the API, can defend the cause and push this to existence somehow.
Now let's begin with the issue itself, as the API topic is something that occasionally appear in the suggestion box, however the last time commented (around 2017) have been discarted as developer team did not have time nor interest in tackle this kind of features, however, today I'm in front of you, with (actually I hope this don't turn into an essay) a list of features, technical review and possible tool development that may use the data shared within the game.
At beggining I wanted to structure this topic as: First part for feature only description (so all players could bring some input into each of the ideas), however as many of the points I'd have to "repeat" for the sake of context, so I think the best idea is to just mix all things up in one self explained feature + a technical comment on how it could be implemented.
Possible API usages list
1. Pokemon summary data embedding (forums, discord) via shortcodes.
This is something that's around my head since I've started playing the game, and the utility for this could be limitless, mostly for trade corner and shiny showcase but a lot of people could even use this in guides for competitive teams.
This idea has 2 parts, the creation of a new feature in the client, that enables a new icon in the Pokemon Summary Screen (next to the last tab for example)
[Here will appear an epic screenshoot of the idea soon]
Once the player clicks that icon, on his clipboard automatically will be copied a shortcode, for example a format like [pokemon:a8b7c6d5e4], being the string of a8b7c6d5e4 an unique ID of the pokemon. This ID will be needed for a call to our API, and for the forums example, the idea is to show a card like this one:
[Here will appear an epic mockup of the pokemon card integrated in forums]
With all the basic information, and once you click in the card a popup just like the ingame summary will apear, to be checked by any player.
This as a popup in the forums, thanks to the info delivered by the API.
The integration on the forums could be either a JS function checking for any shortcode on the page loaded, with AJAX call data retrieve, and finally replacing the DOM with the HTML structure for both card and popups (but this approach could be an performance issue while a lot of shortcodes can be placed in the same page), the second option is a direct template edit of the IPB post structure, so all the cooking can be done serverside, and even with a good planing an S2S implementation for direct data access.
Let's say the endpoints looks like the following:
/api/pokemon/a8b7c6d5e4
Meaning we want to retrieve the information of a pokemon (instead of pokemon we could use /item, /pokedex, /move, but more on this later). The data returned by the API (this is a sketch of a structure) could be the following:
Returning all kind of info related to that one pokemon.
This can be used for trade corner, shiny showcase threads, even link your favourite pokemons on your signature. Or get the data out of the forums, a discord bot that once in any channel you type /pokemon:a8b7c6d5e4 the data could be displayed in the chat. Obviously the data also can be explored by any developer for external usage (competitive team builder for type coverage calculators?).
2. Berry growing status / notifications.
As the berry growth is a time related event, and many people use external (but manual) tools to check on when the berry finished it's cycle, we could use another function to bring data related to the berries. For example an endpoint that requested with the username, could return a list of detailed information about all berries ready to be picked up, the berries that still are growing, the slots that you have left for more berries etc.
I mention the username, as for example a call to /api/berries/username could return a JSON structure with all the information desribed, I know using only the username with no prior authentication may result in some personal information issues, but in the other hand, what harm it can do the knowledge that your friend can has the berries ready to collect.
This can be used in services as smart notifications, that check every X minutes if you berries are ready, and send you (for example in-browser) notification about what berry can be collected already.
3. Pokédex external implementation [Guide Tavern / Competitive Alley]
So, as many knows the pokemon / pokedex has many changes compared to the original series, to fit better with MMO experience, and also mixing mechanics from different generations, for example pokemons that learn different moves. This leads to frequent questions in forums or chats, that could be attached in guides, however the changes frequently occur and guides are not updates with the new data. The implementation of an /api/pokedex/squirte function could return all information related to that pokemon, the lvl it evolves, the routes it can be found, what moves it learn via level up, breeding, TMs, tutors. anything that appear ingame and more, and just like the first example we could enable a shortcode structure like [pokedex:squirtle] so it can be linked to the guides directly (with no further update as the data it's coming from the game itself).
4. Data related to events, tournaments, updates, announcements.
All kind of data related to events or tournaments, for custom calendar implementation / stats on players winning the tournaments, even information of each player about PvP stats.
5. Teams and clubs integration.
Another data that could be integrated via API endpoint, is the information about ingame teams, so you could have a link between user profile, and his actual in-game team name.
6. Encounter tracking
This kind of tools gained major popularity, to count on how many times a pokemon was encountered, so you can check on shiny hunting statistics or other interesting values.
The in-game engine could return for every encounter a basic information on pokemon type, if it was shiny, how many steps was made between encounters etc.
7. More implementations coming later.
You may notice I've not even mentioned the GTL yet, as this topic will bring another wall of text itself, however it's somethign that I'll add in near future for sure.
For now, I'd want to know a general opinion on this from staff + devs, but also the 3rd party developers opinion that will use this API solution, their own input into this suggestion, or anything that it can be improved / other data that could be useful (as I was out of the game for several years for sure I've missed some important changes that also could be explored).
Who knows, maybe if we find this with enough interest from 3rd party developers, and now the PokeMMO team is a bit less occupied with features implementation, we could find this as something happening eventually, It is a long shot, but you never know.
Cheers!
Edited by Greckaditional point
Link to comment
11 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now