Discussion External API Requirements Thread

Status
Thread Closed: Not open for further replies.

Michael Brookes

Game Director
Hi everyone,

Following up on our plan to investigate support for third party apps utilising game and player information we’re starting with the requirements capture. In this thread we will compile the wish list for the types of data people would like to see available from an API available to external apps. If you have a specific app in mind then that can make a useful test case to accompany the data requirements – it’s always useful to see real world examples of how the data is to be used.

This same process will also help guide our plans for our own apps and so we’re pausing development of expansion of the Android and Windows Phone versions of our existing Companion App until this process is complete.

Please note that this thread isn’t about discussing the merits of third party apps.

We’ll leave this thread open until February 16th. After this point we’ll review the information and put together our initial proposal. This will cover two aspects: the first is the technical design for the API and the second is the procedure for using this data. During this process we’ll also invite people based on participation in thread and other communications to form a small working group.

When the proposal is ready the private group will provide feedback on the plan, and will go on to assist in testing the system and the associated procedures as appropriate when we enter development of the API.

We’ll keep you informed as we progress and thanks in advance for your participation in this!

Michael
 
Last edited by a moderator:

Robert Maynard

Volunteer Moderator
Good stuff - there seem to be a number of highly competent app creators in the community who should make good use of the eventual API.
 
- Station landing pad size (station type basically)
- Station black market availability
- Market data

Those are the most important ones I can come up. Outfitting of course is another what would be nice to have.
 
In no specific order of importance:


Destination selected data:
  • Route Plot Destination
  • Allegiance
  • Government
  • Wanted status in destination system
  • Personal standing among each faction (allied to hostile)
  • Economy type(s)
  • Availability of a shipyard
  • Availability of outfitting
  • Availability of Universal Cartographics (unless this is available at every station anyway)
  • Full list of imports, exports, prohibited goods
  • Local GalNet news (only once in-syatem)

All of the above are to provide you with a set of details to help determine your journey. 3rd Party developers can use this data to give information on a target a user may wish to find out more about, without necessarily having to go to the Galaxy Map, System Map, etc (e.g. for those of us who want to put our tablets to good use as part of the game interface).

Current system data:

  • Current system telemetry (which frame of reference are you in e.g deep space or the name of the planetary body you are orbiting)
  • Target e.g. a ship or station in the current system
  • Wanted status in current system

Most of this is available from the cockpit view anyway, but it's a convenience for some players who like this information duplicated on a separate display, and for those of us without tracking hardware or a VR headset.

General Game Stuff:

  • Date and time in-game
  • Current credit balance
  • Current Commander Profile e.g. all 3 rankings, standings with all major factions etc
  • Transaction data (missions and fines as per left cockpit panel)
  • Ship function telemetry (everything including hull integrity and module statuses - see below)
  • Advanced control telemetry (e.g. to automate certain procedures such as stowing weapon hardpoints, resetting power distribution and engaging the FSD, with or without using 3rd party software e.g. Roccat Power Grid for tablets and phones)

The general game data such as ranking, date/time and credit balance is useful for at-a-glance without resorting to switching to a cockpit panel in-game. It could be useful to display on a tablet so you can glance at it as you are handling something else on the game screen itself.​

More aspects of the game API would be beneficial as and when certain new features are added to the game itself e.g. altimeter, atmospheric data, mining rig and exploration drone statuses, crew status, internal storage (for things such as passengers or human crew members who will need to be supported by the ship), time to last service, fault reporting (a-la Hard Disk SMART equivalent for ship modules, to warn of impending failure) and so on.

Having all of these exposed in the API would be useful for developers who want to code their own companion apps to the game, and especially to those of us who want to code our own control automation apps (so we can tap a single tablet/phone virtual button to simultaneously deploy the landing gear, bring our throttle to a halt, and perform other tasks e.g. reset power distribution, and tap another one to deploy hardpoints, bias power to weapons and systems, switch to a specific fire group, and transmit a pre-set message to a player target to save typing and losing precious seconds that might result in your ship getting destroyed in the process).
 
Last edited:
Player Data :

Name
Location
Account Balance
Current Ship
Other Ship Locations (system/station)
Elite ratings

(for applications like your app or EVEmon for example)

System data (limited to what can be seen without any system exploration data/if possible all 'owned' exploration data) :
System Name
System Coords
List of stations
(for 3rd party navigation applications aka Cmdr Club route finder or Trade Dangerous navigation routines

Station Data (on 24hr update cache) :
Name
Pad Size
Black Market available (or make this purchasable in game from other black market dealers in systems close by)
Controlling main faction/Independent
Market data (or allow xml/json/csv output from client for any system with cached data; accessible from galaxy map or commodities list. Alternatively allow api access to all 'owned' market data bought/gathered as usual in client)
Ship yard + outfitting data (or again for this to be purchasable in client and viewed remotely for sanity of players trying to buy upgrades)

For 3rd party trade applications allowing players to filter stations they cannot dock at for reasons of ship size or enemy station (due to main faction, local factions are your own lookout)
While we can (and do) OCR current data, it seems from a players view to be trivial to allow single station market output to local file.

Faction Data :
Owned systems
Ongoing conflict systems for finding pvp

Again for 3rd party nav apps to show whos/whats where and find closest pvp/war opportunities. Think the filters in EVE online map :)
 
Last edited:
Hi everyone,

Following up on our plan to investigate support for third party apps utilising game and player information we’re starting with the requirements capture. In this thread we will compile the wish list for the types of data people would like to see available from an API available to external apps. If you have a specific app in mind then that can make a useful test case to accompany the data requirements – it’s always useful to see real world examples of how the data is to be used.

This same process will also help guide our plans for our own apps and so we’re pausing development of expansion of the Android and Windows Phone versions of our existing Companion App until this process is complete.

Please note that this thread isn’t about discussing the merits of third party apps.

We’ll leave this thread open until February 16th. After this point we’ll review the information and put together our initial proposal. This will cover two aspects: the first is the technical design for the API and the second is the procedure for using this data. During this process we’ll also invite people based on participation in thread and other communications to form a small working group.

When the proposal is ready the private group will provide feedback on the plan, and will go on to assist in testing the system and the associated procedures as appropriate when we enter development of the API.

We’ll keep you informed as we progress and thanks in advance for your participation in this!

MIchael

shouldn't the first customer of the api be the existing companion app...... actually reading that again
we’re pausing development of expansion of the Android and Windows Phone versions of our existing Companion App
so the ipad version is being updated still?
 

Ozric

Volunteer Moderator
I guess the most obvious ones would be:

Route Planner
Commodities Market data
Outfitting Comparison Tool
Star Types - for looking for a specific type of star
 
I would like to be able to manage my friends and groups from an app.
I would like to see galaxy map style trade data and system data on an app. (obviously authentication would be required so you only access the trade data availble to you in-game

Do you think there would be a possibility to make in-game changes based on app input. for instance, plotting a jump on an app.
 
Last edited:
For pausing development of companion app for now makes sense - needs a wider strategy before moving forward - to avoid useless duplication.
 
- System Information: Ships visited in last 24hrs
for creating some kind of heat-map, to see where players are basically

- System Info: Coordinates
for any kind of out of game map

- System Info: Population and Allegiance
to show changes to the galaxy over time (as soon as there will be some shifts caused by wars)

- System Info: first discovered by (not yet implemented)
maybe show rankings for explorers
also show changes over time


that's a few that came to mind. more to follow maybe :)
 
Michael, ideally we should be able to access the system map data for systems by name. As for trade data, I would propose letting pilots request the same information they have access to in the game client, i.e. all trade data of your current system, as well as trade information for systems you recently visited or bought trade data of.

In addition, a great functionality would be to add an API function for requesting trade data for nearby systems for a particular commander. This would of course deduct 100cr from their account. This trade data should be the actual market values (i.e. not just "exporting to" and "importing from" but the cr value of the goods, and which goods are offered/needed)

Another API function could list the nearby systems along with distance information.

Combining this data, people can work on really cool third party apps that enhance the experience - without giving them an edge over players using just the game client. I'm thinking about purchasing trade data on my tablet, and planning a lengthy trade route right on that device, then take off and use the tablet as reference. Plus the tablet could get updates on my position and display the progress through my journey - and it could even duplicate or augment the route planner function.
 
And what would you use these for? It's useful to see what problem you're trying to solve rather than just a list of information - thanks!

Michael
Some will want it for trading tools that also give you the route (so you can decide between 1kcr/T profit on a 2-hop 20ly route and 1500cr/T profit on a 10-hop 150ly route). Even plain route planners that can find routes for systems >100ly apart can make use of the system positional data. As part of this it would be useful to have the current in-system co-ordinates of stations available (with the origin being the jump in point/star). No-one likes a 15 minute SC journey because they didn't know the station was a long way from the arrival point.

It would also be nice to be able to ask questions like "what's the nearest system with High Tech economy and at least 1million population ?". You might want to add in faction restrictions on the results as well. Whether that would be possible directly in the API, or if the API would provide sufficient information for a 3rd party database and tool to answer it is for you to decide.
 
That's very good news!
Current data gathering methods are very error prone due to the human factor. For me the basic data would be:


  • System
    • Name
    • Allegiance
    • Government
    • Coords

  • Station
    • Name
    • System
    • Allegiance
    • Government
    • Type
    • Max landing pad size
    • Has blackmarket
    • Prohibited commodities
    • Economies
    • Commodity market listings
    • Distance to star

  • Commodity
    • Name
    • Category
    • Average price (is it buy/sell/both average?)

  • Commodity market listing
    • Buy price
    • Sell price
    • Demand / Demand type
    • Supply / Supply type

One note about station to star distance: Am I right that this is changing all the time? Anyone tested if it affects the distance more than 1%?
 
I am assuming the API will enable getting information in the context of a particular player.

My application is a Pilot's Log. It will show where I have been; travel times; information about systems visited; other pilots encountered along the way; cargo hauled; missions completed; and other important events that have happened to the player over time.

It would be acceptable to poll for information every, say, 5 minutes, in which case the API would need to be able to tell me where I had been and who had shot at me in the last 5 minutes.

Even better would be to register for notifications of certain events: arrival at a system; new contact acquired; attacked by so-and-so. Later I could query for information about relevant objects. So the player has arrived at system 12345, eh? What is the govermnent type there?

If I could get things like star type and galactic co-ordinates, I could even plot a route in 3D.
 
It would also be great to see a downloadable db as CCP does for eve for static data like the system map (star coords only in this case) as my previous post for creating 3rd party nav + trade route finding with 100% accuracy without breaking the fun of finding what a system actually contains via exploration.
 
star system information
the more the better.
minimum to be useful: x,y,z + name + uniqueid (uniqueid as names don't seem to be unique)
wishlist: permit required would be ace.

with that set of data we could make oure route planners even more usefull, without having people go on manual putting in vars stuff
further data (objects in system, suns, type of, stations etc) would be nice but, but i can see how that might break stuff you consider gameplay.

Item/Ship Data - it would be nice to have an api (or export) that contains all attributes of ships and their equipment, bonus points for flair data.
this would be nice as it would allow tools to calculate jump ranges for websites AND more importantly fitting tools, so i can plan,
copy and exchange my outfits with other players out of game, and don't have to hunt down stations that have a specific item to find
out what the stats for the item are..

OAuth2
It would be golden if there was some way of having people login their cmdrs, and oauth2 is like made for this. This allows to have people link their game accounts to websites (comment with your character, create a profile with your character) and avoids the possibility of impersonation in other cases.
 
Last edited:
I can think of a few use cases for access to data from the ED servers. They range from basic to advanced, and the feasibility of them would depend on whether the server / client would be able to accept incoming requests from the app to change in-game state.


  • Commander's Log. This would allow the application to pull a list of recent events, the scope of which can be as grand as you like. From recent trade transactions to kills, deaths, interdictions, etc. with information about time and location. More advanced would be to allow queries on this data, such as "last 10 bounties collected" or "last 10 trades with profit > 1000 per tonne".
  • Trade Assistant. This would allow the application to pull a full list of commodities available at the current location (along with the time/date and location). This could then be used to build a local database and search for trade routes. The problem with this would be that it would make automated entry into 3rd party tools easy. The application I have in mind would be for personal use only, and would build up routes based on your own exploration. Perhaps packets of data containing data about other stations (or historical information about prices) could be bought using in-game currency and made available to the app. Again, hard to police what the data gets used for, so these are things I think the game client itself should provide.
  • SpaceNav. In its basic form this would allow you to easily view any route you've plotted in-game. In more advanced forms, it might provide information about systems along the way (including star types), jump distances and fuel requirements so that you can plan where you'll need to stop for fuel, or where you can scoop. It should either give access to information about the local galaxy (systems and their coordinates) to allow the app to calculate and set a route, or access to a server- or client-side route planner to allow you to find and plan a route offline. Once a route has been planned, the app could transfer it to the client.

Other information that might prove useful:


  • Station services. Allow an app to query the services available at the currently docked station so that it can build up a database. This could be used (for example) in a navigation app to help plan a journey.
  • Ship / module statistics. Allow an app access to a catalogue of ship and module statistics (or at least your current ship) to allow planners to take into account of this in their calculations.
  • GalNet updates (local and global). Alerts on interesting events.
 
Current Fines and bounties.

Factions that like me.
Factions that dislike me.

Top player/Npc bounties in local systems/galaxy.
 
Last edited:
Status
Thread Closed: Not open for further replies.
Top Bottom