Poobslag / turbofat

Block-dropping puzzle game
MIT License
52 stars 17 forks source link

New grading system based on player data #1193

Closed Poobslag closed 1 week ago

Poobslag commented 2 years ago
Poobslag commented 1 week ago

I've implemented the new rank algorithm which defines one or more thresholds in each level file.

I'd like to have a mechanism to tweak these manually based on playtesting data, I'll work on that over the next few days. My current idea is to have something like a "poobslag.json" file with a bunch of text like this:

practice/marathon_normal seconds=223 score=2609
career/asparagus_vault seconds=120 score=1742

For the player's best performance (highest score or lowest time), it'll store the seconds and score for that run. We can then compare their performance to the master rank for that run and get a list of percentages, and determine outliers.

If we get more playtesting data and add ways to import it, we might be able to do more complex statistical generation of these master times. It's possible I'm just really bad or really good at certain levels. With additional data we can hack together an algorithm which twists knobs and figures out things like "on asparagus vault, 78% of player's scores fall outside the standard deviation for where we'd expect given their other scores. by increasing asparagus vault's master score from 1700 to 2500, their scores fall in line with where we'd expect them"