Post by Captain Starbuck on Jul 15, 2015 1:30:10 GMT -5
Summary: Export data for external processing.
The setup:
This game is a "pseudo simulation" of galactic travelers with advanced technology, but every day many of us here are struggling to get basic information. We know it's in the game but we need to jump around to screens to find it. If this were reality, we would be able to ask our system questions, and using computers to analyze the data that's available to help us make better decisions. But it's tough to keep asking the developers here to build more and more into the game. There just isn't time and they might not feel that some requests fit with their view of this game universe. So I'm thinking it would be cool to allow us in the field to create our own extensions with a minimal impact on the game.
As a developer I'm always looking for a way to plugin to the software I use. Give me an API and I'll extend the environment with tools that the developers might not have time or interest to implement. But with mobile games it's tougher to transfer data between a data provider and a separate app that's a data consumer. It would be too tough to build-in and support an API for this game.
The proposal:
So rather than trying to actually link into the game, I was thinking it might be pretty easy to add a feature here which dumps data to a file which we can then retrieve and parse however we want. All we're talking about is saving the game ("serializing" it really) in a different format than the current internal storage mechanism.
Example of use:
Picture this:
Now, what if we already have this and we just don't know it? What if the data is already in a format that's easy to parse? I have no idea. Would Trese Brothers be willing to publish the file spec for the stored data? Is it binary? Sqlite? Wouldn't it be ideal if there were no coding effort required at all from the developers in order to make all of this functionality available to the user base? My "Proposal B" would simply be to document the data storage, and I'm guessing that's already been done.
The only issue might be saving the data to a location which can be used elsewhere. If the brothers wanted to make this extremely easy on all of us, with a final "Proposal C", all they'd need to do is to put in an additional Save mechanism, which can be triggered on demand rather than at the end of a turn. This would save the data to a networked repository which is configured through game settings. So I might enter the address, user/password to an FTP server or a Google repo, and clicking the button would send the data there by default.
With the data easily available and well documented, I think we'd see a lot of utilities springing up from the community which allow developers to build new functionality around the game. In business terms this kind of community strengthens the brand - just look at Lua scripts for WoW, third-party maps for other games, and the huge world of Minecraft mods.
Now I'm getting the itch to dig into my tablet for the data file and look for myself to see what format the data is in. But first I'd rather find out what the developers here think. There also could be the issue of the fog of war, and what we're allowed to see at any given time. The data saved for this purpose should reflect the player's current view, not the entire game state. Other considerations may apply so I understand this might not be a slam-dunk. But I'm guessing we're a lot closer than it might seem.
Thanks for your time and consideration.
The setup:
This game is a "pseudo simulation" of galactic travelers with advanced technology, but every day many of us here are struggling to get basic information. We know it's in the game but we need to jump around to screens to find it. If this were reality, we would be able to ask our system questions, and using computers to analyze the data that's available to help us make better decisions. But it's tough to keep asking the developers here to build more and more into the game. There just isn't time and they might not feel that some requests fit with their view of this game universe. So I'm thinking it would be cool to allow us in the field to create our own extensions with a minimal impact on the game.
As a developer I'm always looking for a way to plugin to the software I use. Give me an API and I'll extend the environment with tools that the developers might not have time or interest to implement. But with mobile games it's tougher to transfer data between a data provider and a separate app that's a data consumer. It would be too tough to build-in and support an API for this game.
The proposal:
So rather than trying to actually link into the game, I was thinking it might be pretty easy to add a feature here which dumps data to a file which we can then retrieve and parse however we want. All we're talking about is saving the game ("serializing" it really) in a different format than the current internal storage mechanism.
Example of use:
Picture this:
- While in-game at any time you can tap a new button that dumps data on planets, ships, politics, and research. The data can be in CSV, JSON, or XML, doesn't matter. It goes to a standard location. This would be "Proposal A" and the effort from Trese Brothers could stop here.
- From there we have another app (not written here, completely external) which is monitoring that folder to send the data out to Google Docs or a Dropbox. So now the data is "in the cloud".
- From there we can use whatever technology we want to parse and query the data for whatever information we want. I could write Java, PHP, or .NET code to read that data and reformat parts of it into a grid which can then be filtered and sorted. I could view that data from an app on my PC, or from my mobile phone on a web page while I'm playing my game on a tablet. This external app could poll for data and actually display live stats that are important to me while I'm playing, without any extra effort. I could create common queries like "where is the nearest fuel planet?" or "where is the closest available planet that will build an 'Invader II' ship in less than 10 turns?" or "show a list of planets with less than 4 population or 4 factories".
Now, what if we already have this and we just don't know it? What if the data is already in a format that's easy to parse? I have no idea. Would Trese Brothers be willing to publish the file spec for the stored data? Is it binary? Sqlite? Wouldn't it be ideal if there were no coding effort required at all from the developers in order to make all of this functionality available to the user base? My "Proposal B" would simply be to document the data storage, and I'm guessing that's already been done.
The only issue might be saving the data to a location which can be used elsewhere. If the brothers wanted to make this extremely easy on all of us, with a final "Proposal C", all they'd need to do is to put in an additional Save mechanism, which can be triggered on demand rather than at the end of a turn. This would save the data to a networked repository which is configured through game settings. So I might enter the address, user/password to an FTP server or a Google repo, and clicking the button would send the data there by default.
With the data easily available and well documented, I think we'd see a lot of utilities springing up from the community which allow developers to build new functionality around the game. In business terms this kind of community strengthens the brand - just look at Lua scripts for WoW, third-party maps for other games, and the huge world of Minecraft mods.
Now I'm getting the itch to dig into my tablet for the data file and look for myself to see what format the data is in. But first I'd rather find out what the developers here think. There also could be the issue of the fog of war, and what we're allowed to see at any given time. The data saved for this purpose should reflect the player's current view, not the entire game state. Other considerations may apply so I understand this might not be a slam-dunk. But I'm guessing we're a lot closer than it might seem.
Thanks for your time and consideration.