DEV Community

Cassandra de la Cruz-Munoz
Cassandra de la Cruz-Munoz

Posted on

Salmon Run Statistics (Part 1)

| Next

Hi, Cass here.

I'm the developer of Salmon Tracker, a toolkit for performing statistical analysis on the Salmon Run game mode of the Nintendo Switch game Splatoon 2.

Here's an intro to what my tool does and some of the cool things I've found.

First off, let's go through an overview of the data set.

Jobs: 295255
Average Waves: 2.2568457773788757
Clear %: 57.90689404074444
Wave 2 %: 77.00089752925438
Wave 1 %: 90.77678616788878
Golden: 16.685295761291087 (0.0, 16.0, 133.0)
Power Eggs: 632.864202130362 (0.0, 614.0, 3722.0)
Rescued: 2.2307564647508085 (0.0, 2.0, 59.0)
Deaths: 1.624947926368732 (0.0, 1.0, 23.0)
Hazard Level: 154.71349375961694 (4.4, 158.4, 200.0)

This overview was generated by the following code:

data = core.init("All")
print(core.getOverview(data))
Enter fullscreen mode Exit fullscreen mode

Core is the main file of the library, containing functions to prepare the data, as well as fetch parts of the data efficiently.
The init function in core pulls the latest match results from the stat.ink API and stores it in either "salmon.jl.gz" or "salmonAll.jl.gz" depending on whether the mode is set to "All" or "User". "User" mode requires providing an API key.
getOverview takes in one parameter, the path to the data file, and outputs that nice stat summary you see above.

At time of writing, the data set takes up 255 MB with gzip compression, or approximately 6 GB uncompressed.

The library uses jsonlines formatted data stored in gzip files to get around memory limitations.

Next post, I'll cover the hypothesis testing, and show just how powerful the Grizzco weapons are.

Top comments (0)