So fellow hacker Iain M Norman and I were guests on Kerrash's Twitch Stream last Friday, and we were having a community discussion on what kind of apps people might find useful.
Aside from the people looking to make their own peripherals or data displays which augment the existing client experience (which I personally think falls within the remit of client "addons" rather than an external API), an overwhelming number of people were thinking of an
activity tracker / pilot's log application.
The idea of the application I have in mind is that it starts out as a private repository of information, where you can refer back to where you've been and what you've done. Ultimately I'd love it to become as big as DICE's
Battlelog webapp which for me is one of the best game social tools I've used. It's well designed, comprehensive and real-time with some very smart streaming tech at the back-end.
Second order stats
The next step is to provide some second order functionality by analysing the data we've collected, and giving you some insight into where the best trade routes are, when you had your biggest kill streak, best profit per hour, most cost-effective weapon, the last time you went exploring. It's also
The next step from that is to layer on top a social graph where you can group together and see friend's stats, coordinate efforts and compete with each other in as much of a playful or serious way as you want.
Third order stats and social tools
Finally, once you have stats and friends, you can start work on higher level functionality, and these are some of the ideas generated:
- Player-generated missions: Declare a period of time and the rules, and invite others to participate in some externally verifiable activity. ie/ "Manic Miner", who can mine the most valuable or greatest volume of ore in a given period. Include and exclude particular types of mineral.
- Player groups which allow every member to view the activity of each member, and understand how cumulatively you're affecting the galaxy.
- Multi-hop racing between systems where we verify your route and the timings via an API
- "Top trump Commanders" using your friends list and assigning metrics to a set of stats according to the real data
Architecture
I'm not clear as to what the appropriate architecture for this would be. It can either:
- Commanders install a client app which hits the Frontier API, it pulls data back and then posts it to a central website via another API
- Commanders create an account on a website and authenticate (OAuth2?) with Frontier to give the website some keys to poll the API on their behalf. This is then done periodically, or some sort of stream is set up to receive events as they happen, as Twitter's streaming API does.
API data
This is a fairly exhaustive list of the activities we'd love to see made available via an API call. Personally I'm a big fan of
JSON data obtained via REST/HTTPS calls:
Systems you've jumped to
Stations you've docked at
Chat log
Scan log (NPCs and other human players)
Trade log (including black market)
Kill log
Deaths
Missions log (completed, failed, branched?)
Bounties and bonds log
Explorer discoveries log
Explorer sales log
Ships and module transactions
Faction rep changes
Naval rank progression
Permits obtained
Trade/Combat/Explorer ranks obtained
Time spent fuel scooping (or tons scooped)
Times you were interdicted
Shot accuracy
Damage dealt (and with what weapon)
Damage taken (hull and shields)
Travel log
- Supercruise
- Stations
- Nav beacons
- USS & RES
Items scooped (cargo and ore)
All of the items marked 'log' would need some sort of timestamp associated with the data to allow reconciliation in the back-end database. There was also a question over whether Frontier could supply a Friend list of the commander hitting the API, allowing the pilots log website querying the API to automatically suggest friends who've also signed up to the pilots log website.
We also had some questions about the nature of the API and app development:
- For efficiency, what is Frontier's thoughts around API usage rate limiting, and how frequently we can ask for real-time pieces of information like a player's location?
- Can you charge for a mobile app that utilised a web service which was collecting data from Frontier's API?
Thanks!
Nick / Commander Bewilderbeest