Kobusson/Strategy

Infrastructure

 * Client - The actual client that interacts with the Kancolle servers.
 * Location - Linode Japan
 * KCKB Knowledgebase - The Knowledgebase contains both strategic and statistic data. This will be public access via REST API, so other people can query that data easily.
 * Location - US East
 * Entropy Source - The entropy source to reduce detection from heuteristics. To reduce lag, the random data should get cached.
 * Location - State College or LA.

Events
One final task would be to try and beat seasonal events using a programmable script. This script would only need a map, a route, and an ideal fleet programmed.


 * 1) Calculate how much resources to stockpile


 * Automatically figure out where to get them and how long that will take


 * 1) Find and program in ideal route and fleet (found about a week in)
 * 2) Rerun routes until dropped
 * 3) Stop when all drops achieved

Database Collection
The most popular recipes were developed by a group of Teitoku in Japan who added 100 to the recipe each time. They discovered the highest rate formulas from there.

Statistical Data (Heuteristics)
Statistical Data is generated automatically through the collaborative efforts of players using certain clients. As China contains a large amount of users, this data becomes quite valuable for analysis

Statistical Data is variable by definition and not an exact forecast, as it is based on random chance. However, the developers do set certain baselines (that is subject to change over time). With a large enough sample population, the margin of error can decrease significantly.


 * Shimakaze Go - Daofeng Go collects data from the Daofeng VPN, which is the most popular VPN used by Chinese users.
 * Construction Rate based on Recipe. Quite good,
 * poiwebsite
 * Poiviewer automatically pushes statistical data to Poiwebsite.
 * Ship Dropping Rate in Sorties

Strategic Data (
Strategic data, such as Sortie and tactical tips, tends to be static and is only appended to, rarely edited. The tables also follow a consistent format. This allows a solid strategy to be programmed and adhered to.


 * Chinese Kancolle Wiki - This has tons of data already lovingly sorted out.
 * Wiki for Kancolle (By Tianhao Wang) - Dev Blog - iPhone and Android
 * KCWiki - Poiviewer - Microblog
 * Wiki data is contained inside the app for offline usage.
 * The best way to accomplish this data grab is to decompile the Android APK (though that is beta), or the iPhone IPA, and extract the SQL database.
 * Perhaps an English translation of this derivative can be made and released.
 * Zh Wikia Kancolle - A translation of the English Wikia I guess.

Web Scrapers
Update every week. Try to keep schema consistent so that few changes are necessary.

Database Schema
The database is extracted raw from the app. If necessary,

In fact, perhaps we can use this statistical database as a base for a Kancolle private server.

Shipgirls
Like a trading card, the shipgirl values can be reduced to a set of numbers that can be put into a table in the database as a record.

Because we hate linking tables, we can use JSON for multivalue fields instead in PostgreSQL.

However, we can still do foreign key relations.

Knowledgebase REST API
The REST API allows users from around the world to query data from the database. It also functions as a layer over SQL so we don't have to deal with that junk.

This makes both scripts and mobile apps and other strategic systems possible.

Python API Wrapper
An API Wrapper will have to be written to recieve and make API calls. It will be nice and simple.

Strategy Helpers
Strategy Helper Apps use the Knowledgebase (or have a piece of it clientside) to guide the player in strategic decisions.

This is the equivalent of Smart Car or autopilot systems that help drivers delegate tasks, but not relinquish complete control of the car.


 * Resource Scouter - This is the most important app, since it will figure out what expeditions to do. Like a GPS.
 * Input - Enter amount of resources you want. (all 4 types) Set the expeditions that are available to you. Set the maximum resource limit you have.
 * Output - Tells you what expeditions it recommends you do, and how many times is needed. It separates into Daytime (short time) and Nighttime versions (long time).
 * Ship Recipe Recommendations - A helper app that recommends recipes for you in various stages of play (based on the sorties you've done?), from early to midgame to endgame. This is based on recommended ship classes that players should have at each stage: for example, Fuso-class heavy battleships are prized in early stages to blow away destroyers, while Kongou-class fast battleships are better for later stages.
 * Input - Sorties available, ships you have
 * Output - Ship Classes to build, recommended recipes for those.
 * Fleet Selector -
 * Damage Predictor - Predict the minimum amount of resources needed to repair a fleet based on how damaged they are. Also attempts to predict exactly when to repair, and when to continue on.
 * Ship Incubator - Ships when dropped need to be raised to your current level to make them workable, much like Pokemon.
 * Input - The ship to raise (one or multiple), the level you want to reach, the sorties and expeditions available to you.
 * Output - The recommended sorties to grind, how many times required, and how long it could take.
 * Day Planner - A more advanced system that ties together all the above and functions as the preliminary component of the basic robot. It effectively plans out an entire day's worth of strategy for you.

Deployment Phases
Much like any project, components will be developed and deployed in phases.

Phase 1: Data Collection and Querying
The first phase of deployment is to gather data.


 * Strategic - Extract SQL Database from iPhone App
 * Develop Database Schema Migration
 * Statistic - Scrape data from Daofeng Go weekly
 * Add to a separate table in the database, or even another database to save on writes

Phase 2: Strategization
In Phase 2, we will use the data gathered in the Knowledgebase to create Strategy Guidance apps that help a human player formulate strategies at various stages of the game.

This is akin to a GPS for human players: it tells them what to do and where to go, but is only a suggestion, and requires the human to actually carry out the recommended course of action.


 * KCKB: Knowledgebase - The Knowledgebase is a public REST API + associated wrapper that provides strategic data to apps, and perhaps robots in the future. This will be a major product and could possibly be announced for public use. * **

Phase 3: Automation
In Phase 3, some Strategy Guidance apps are attached to Action systems and

This is akin to developing cruise control, ABS, and parallel parking systems, which are prerequisite components to autonomous driving, but leave a human player in control.


 * Fuzzer - The fuzzer is designed to add a certain element of randomness to match a human.

Phase 4: Singularity
In Phase 4, all the various strategic functions and action systems are bound together into a single package to create a complete Kantai Collection playing robot.

This is akin to combining all the features of assisted driving into a true autonomous self driving car.


 * Scheduler - A linear task scheduler is set up to decide what to do and when. It lines them up by Severity and Prerequisites, and attempts to gauge the best course of action based on a cer