Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Serve game length stats by MMR bracket #350

Open
francislavoie opened this issue Oct 31, 2024 · 5 comments
Open

Serve game length stats by MMR bracket #350

francislavoie opened this issue Oct 31, 2024 · 5 comments

Comments

@francislavoie
Copy link

On https://w3champions.com/OverallStatistics/ we have a "Game Lengths" graph which shows game lengths (bucketed by 30s or 60s chunks) for each mode.

What would be nice is if we could also load this data by MMR range, which would be interesting to know whether low-skill matches are shorter or longer than high-skill matches for various modes.

I see this is where the data is being loaded currently for that graph:

public Task<List<GameLengthStat>> LoadAllGameLengths()

In that same file, it serves data on "Matchup Lengths" for 1v1 by MMR brackets, but this doesn't support showing data for other game modes.

Can we reuse some of the matchup lengths code to expand it to collect buckets for other game modes (regardless of matchup)? I figure it would just mean an additional query param for the MMR bracket to query to the game-lengths endpoint:

[HttpGet("games-lengths")]
public async Task<IActionResult> GetGameLengths()
{
var stats = await _w3StatsRepo.LoadAllGameLengths();
return Ok(stats);
}

For ref, the MMR buckets are defined as 200 MMR ranges, the frontend has a MmrRangeValues enum here https://github.com/w3champions/website/blob/978e9011fdea499fd9f724d6bee6d7815d0f15dc/src/store/overallStats/types.ts#L119-L134

@francislavoie
Copy link
Author

There was some good discussion following on this on Discord https://discord.com/channels/688377338576109643/741708055833608313/1301425259626631239

@gremlinhunter
Copy link

gremlinhunter commented Oct 31, 2024

Can we reuse some of the matchup lengths code to expand it to collect buckets for other game modes (regardless of matchup)? I figure it would just mean an additional query param for the MMR bracket to query to the game-lengths endpoint

What does this mean? Isn't the filtering done client-side?

Here's a draft:
#351
I seem to have misunderstood the issue.

@francislavoie
Copy link
Author

Well I think we wouldn't want to send all the data down up-front (on page load) if there's a lot of buckets of data, it could be changed to be fetched as the user changes the options.

Did you read the conversation on Discord? I think we'll want to use MMR quantiles instead of flat 200 ranges if anything. Still unclear if the data will be interesting so we might want to do some tests on the match history dataset to figure that out before wiring it up. I don't have access to the data nor the skills to do that data science work though.

@gremlinhunter
Copy link

gremlinhunter commented Oct 31, 2024

The discord conversation is private. Isn't it kind of odd if the primary information for the issue is not on github? 😄

@francislavoie
Copy link
Author

francislavoie commented Oct 31, 2024

Oh, you should probably get added as Staff to see the conversations if you want to contribute! FYI @gustav87

But yes I agree, just that others replied to the idea there and we had a more lengthy conversation from there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants