Scripts to process Ocarina of Time Randomizer spoiler logs for statistical analysis
- Python 3.x
- MSSQL 2016+ compatible database (SQL Server Express)
- (Optional) SQL Server Management Studio
These scripts are a mess. Unless you want to check different settings, just use the spreadsheet for analysis.
- Check out copies of the randomizer from the official repo. For the fall settings poll use the 5.1 release tag.
- Update relative path to the randomizer root folder near the top of the following files:
- ext_hints_mssql.py
- dbUpdate.py
- Create the database where spoiler data will be stored
- Edit connection information near the top of the following files:
- ext_spoiler_mssql.py
- ext_hints_mssql.py
- dbUpdate.py
- Save pre-generated spoiler logs somewhere and update the folder path in the following files:
- ext_spoiler_mssql.py
- ext_hints_mssql.py
- If you are using anything other than 10000 logs, edit the views in dbUpdate.py with the total number of logs to analyze
- Run the scripts in the following order. This will take a while.
- ext_spoiler_mssql.py
- ext_hints_mssql.py
- dbUpdate.py
Several views will be generated in the database:
- ad_seeds
- returns list of seeds requiring OoT logically to complete
- Spreadsheet checks for Burning Kak instead of OoT for the Stone Bridge + GBK LACS settings
- total_spheres
- returns total spheres to complete each seed
- woth_area
- returns list of woth areas as a percent of all seeds
- woth_item_area
- returns list of woth areas excluding songs as a percent of all seeds
- woth_loc
- returns list of woth checks as a percent of all seeds
- fool_area
- returns list of foolish areas as a percent of all seeds
- non_hinted_loc
- returns list of logically required checks per seed that are not found in any hint (woth or sometimes/always)
- excludes skulls, keys, songs, beans, ocarinas, light arrows, Zelda's letter, Gerudo card, tunics, shop items, and sphere 0 checks
- checks_per_area
- intermediate view, calculates checks per area excluding keys
- prog_areas
- intermediate view, determines medallion/stone dungeons and which are required
The various SQL files in this repo are used to generate most of the tables in the spreadsheet. Filenames should be mostly self-explanatory.
- Assumes no MQ dungeons
- Assumes no sanities (key, scrub, shop, skull, cow, bean)
- Sphere analysis does not consider advanced tricks/out-of-logic checks
- Hint analysis does not go beyond direct hints. WOTH chains are not considered