This repository contains Python code to query percentiles of player levels, to infer the total number of Steam players.
- Install the latest version of Python 3.X.
- Install the required packages:
pip install -r requirements.txt
python player_levels.py
To apply the method to achievement unlock percentages, run:
python achievements.py --app-id 788100
Let us assume that, in order to compute the percentages, Valve:
- divides the total number of players by 100,
- then truncates it.
For instance, with 16,483,473
players at level 1, and 104,857,600
players in total,
then the percentile would be:
16,483,473 / 1,048,576 ~ 15.719864845275879
which is finally displayed as:
https://api.steampowered.com/IPlayerService/GetSteamLevelDistribution/v1/?player_level=1
{
"response": {
"player_level_percentile": 15.719864845275879
}
}
Least Common Multiple: 1048576
Following our assumption, this would mean that the total number of Steam players is
a multiple of 104,857,6XY
, where XY
are unknown digits.
This is not super useful info.😅
Note
Interestingly, the least common multiplier is a power of 2.
This could indicate a truncation of the numbers in binary representation,
which would prevent the estimation of a total number of Steam players
of the order
GetSteamLevelDistribution
: API which returns how a given Steam Level compares the user base at large- Tyler Glaiel, Using achievement stats to estimate sales on Steam, June 2018
TylerGlaiel/steamsalesestimator
: C++ code supporting the aforementioned blog post- Ars Technica's article: Valve leaks Steam game player counts; we have the numbers, July 2018
- Ars Technica's supplemental data: snapshot of "players estimate" for 13,281 games