#API for ship data

1 messages ยท Page 1 of 1 (latest)

scarlet spire
#

Will there be an API for in game ship data in the future? We could query this data and do lots of things, such as creating graphs, outputting the data to a custom tablet (for those who have custom flight sim setup) among other things.

quasi star
#

I haven't seen this question answered yet.
Love the idea tho.

#

Maybe as part of the hotas support Dan wants to do soon

scarlet spire
#

Yeah exactly. Would be super cool.

wheat stirrup
#

Even just the ability to send messages to a Discord channel (ship log style).

distant kelp
wheat stirrup
#

oh? I didn't see anything in the menus for it.

distant kelp
#

Oh, it's not in game yet. They had a channel report on the position of the ship. I think it was just an experiment.

scarlet spire
#

Thats cool. That can be easily done with either discord web hook or a bot done with sdk in python/js etc

#

I was thinking more for collecting ship data for engineering nerdness

#

Making graphs of field power to cooling efficiency etc. pakled

sweet pilot
# scarlet spire Will there be an API for in game ship data in the future? We could query this da...

Yeah, so Discord spam is easy, we tried that and it works fine. You just need to enter a hook URL into the game settings (once implemented), and it will spam a channel of your choice with whatever data you want.

We also have a MySQL connection, and we'll be using that so that players can organise their own fleets. Similar thing, players will need to enter their DB address and password into the game settings to use the feature.

Essentially that will enable the showing of other ships on the sensors, sharing scan data, and consistent alien responses to other UN ships if they have already been visited. It will even allow text-based hailing between ships in-game.

Beyond that, we could potentially dump to a .csv file and keep saving over it for any local usage needs.

scarlet spire
#

MySQL db is perfect and now that I think about it you spoke about it on dev stream. Thanks Dan! Very excited.

sweet pilot
#

No worries ๐Ÿ™‚

pallid dust
#

Following on with this question, will there be the option to export data to 3rd party sites like a StarSim version of Elite Dangerous Star Map (EDSM)?
A full documented API would be great.

cursive aurora
sweet pilot
scarlet spire
#

One last message before this thread is necroed, will all ship data be availalble within the self-hosted MySQL DB instance that you mentioned? I mean things like battery capacity, live load on electrical systems, coolant loop temperature etc?

sweet pilot
scarlet spire
sweet pilot
#

Yep, and server load on the DB

#

if you have literally thousands of components all updating the DB once per second, then it's going to cause a problem somewhere

scarlet spire
#

Unless its an in-memory DB like Redis ๐Ÿ˜„ (obviously not really feasible) ๐Ÿ˜„

#

If dedicated hosting was an option, then the mysql DB can sit within the same availability zone as the game server, which would reduce a lot of the overhead. But I definitely understand it from a client game perspective that it will be a little too much.

cursive aurora
#

Database can handle a lot of data being transmitted to it, as long as you are writing single values and dont rely on calculations.

#

I worked with big databases, and as long as the input is simply adding or updating an entry in the database, its fast.

#

Its when you start doing calculations or grabbing complete tables that it goes slow.

#

But for data, its most likely going to be "persistent" data, or data that needs to be saved and will be needed during reboots.

#

Eg: data of the ship and its occupants.

#

Bit of thought from another gamesystem i was using (evennia):
If it needs to survive a reboot, put it in database. If it can live in memory, put it in memory.

#

Memory calls are also cheaper than database calls...

sweet pilot
# cursive aurora Its when you start doing calculations or grabbing complete tables that it goes s...

That's promising then. Various individual systems in the game will be reading and writing to individual rows of a table independently I expect. I haven't even begun to think about the table structures, but I imagine it would make sense to have a table per system.

One table for the electrical system, one for the fluid system, etc. Keeps it nice and organised.

To begin with we'll just start with the ship's location and see how quickly we can read/write to that table. The quicker we can do it, the smoother the rendition of other ships will be in the game.

naive seal
#

Quarters? Leave the reactor room? Sounds like a trap.

dusty heath
#

Indeed it does. XD

cursive aurora
#

Note that its best to do this with a dedicated server, so you dont have all the overhead.

cursive aurora
tawny root
#

ED updates the status file every 1-2 seconds, or based on a minimum distance moved on a planetary body

#

Reposting my questions / thoughts i put earlier in the ideas channel, so its all in one place here :

#

I am the developer of a third party app for Elite Dangersouns named EDCoPilot (www.razzafrag.com). I am wondering if you have plans to externalise data from players' game sessions into journal files and json status files, such that the data can be gathered and used for things like navigation to systems, bodies, coordinates on a planet surface, report on the status of modules in the ship, show information about facilities on a station etc. (Edit; yes i know about the MySQL db, but thinking of more frequently updated flags / local status files)

One of Elite Dangerous's main strengths i feel is the wide range of third party apps and web sites that have sprung up to collect and present data about the in-game universe. This is possible because of its data externalisation, For info on what Elite Dangerous writes out for external apps to use see here https://elite-journal.readthedocs.io/en/latest/Status File/

Using Elite Dangerous's status.json file for example, i was able to create a whole SRV racing 'guided time trial" feature which lets users race around defined routes and record their times on a global leadboard, to let them compete against other players.

#

Just to give you an idea of the things you can use externalised data for, see the feature list for my app here : https://www.razzafrag.com/featurelist ... i i'm thinking about maybe making a simlar app with some of these features as a companion app for Starship Simulator , if the data is available