Combien y a-t-il de joueurs actifs sur lichess.org et chess.com ?

La première méthode est la plus rapide. Il suffit de regarder le graphique de répartition des joueurs de blitz qui est la variante de jeu la plus populaire. On sait alors qu'il y a eu 490 000 joueurs sur la dernière semaine d'août 2020. Et en cette fin d'année 2020, leur nombre passe à 607 000 (+23%).

La seconde méthode est plus longue. L'idée est de se baser sur les extractions mensuelles des parties. Il est alors possible de faire le décompte du nombre de joueurs sur la période. Seulement voilà, les derniers fichiers compressés font 18 Go ! Par chance, les outils open source vont nous permettre de lire le contenu qui nous intéresse sans avoir à décompresser sur le disque les fichiers dont la taille finale pourrait être 6 fois supérieure.

Il faut d'abord mettre la commande suivante dans un fichier BAT ou SH selon que vous utilisez Windows (merci à gnuwin32) ou Linux. L'instruction bzip2 décompresse à la volée vers stdout, grep va isoler les 2 lignes donnant le nom des joueurs, et cut va renvoyer le nom du joueur situé entre les deux guillemets.

bzip2 -d lichess.bz2 -c | grep -P "\[White |\[Black " | cut -d "\"" -f2

Sans traitement additionnel, on va récupérer énormément de doublons. C'est là qu'intervient quelques lignes de script Python pour lire ces données à la volée et déterminer le nombre de valeurs uniques.

import subprocess
from bisect import insort, bisect_left

players = []
lines = 0
command = subprocess.Popen(['players.bat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, bufsize=0)
for line in command.stdout:
    line = line.strip()
    if line == '' or '/' in line or '\\' in line:
        continue
    lines += 1
    idx = bisect_left(players, line)
    if idx >= len(players) or players[idx] != line:
        insort(players, line)
        print('\r%d joueurs, %d parties' % (len(players), lines // 2), end='')
print('\r%d joueurs, %d parties' % (len(players), lines // 2), end='')
command.terminate()

Le résultat s'affiche progressivement, car le calcul d'unicité est un traitement très gourmand. Il nécessite de mettre en mémoire tampon toutes les données déjà traitées. Il faut ensuite faire une recherche optimisée dans cette liste afin que son remplissage ne ralentisse pas le script à la longue. La recherche dichotomique sur liste triée en insertion est assurée par le module bisect. Les performances sont complètement au rendez-vous, car bzip2 devient le processus le plus lent, alors que c'était Python en utilisant une condition de type in []. N'ayant qu'un fichier compressé d'entrée, le flux n'est pas parallélisable.

Les premières conclusions tombent. En janvier 2013, 4 923 joueurs ont joué 121 395 parties d'échecs, soit 25 par joueur. Ils étaient 37 394 en décembre 2014 pour 1 350 049 parties, soit 36 par joueur. En août 2020, 1 132 154 joueurs ont joué 71 405 167 parties, soit 63 par joueur. Cette frénésie de parties fait qu'il y a 1,7 milliards parties jouées sur Lichess fin 2020 et toutes sont disponibles au téléchargement. Le nombre de joueurs actifs est en fait plus élevé, car il existe des joueurs de variantes dont les parties sont dans d'autres fichiers. Certains joueurs ont plusieurs comptes.

Concernant le site Chess.com, il est difficile d'avoir des vrais chiffres, car ils affichent le nombre de blitzers par tranche de 90 jours ce qui provoque une évidente inflation de joueurs (2.8 millions en août 2020). Il y a aussi un classement mondial qui affiche fin 2020 le nombre de 11,2 millions joueurs de blitz. Impressionnant, mais sachant que les joueurs commencent souvent bas et que mon classement est situé bien haut par rapport à ce que j'estime qu'il devrait être, combien de tous ces joueurs sont réellement actifs ?

La page d'accueil prétend qu'il y a 5.1 millions de parties jouées par jour, ce qui se vérifie à l'aide des numéros de partie incrémentaux dans l'URL. Si on fait une moyenne sur 3 mois, cela fait 167 parties par joueur chaque jour, donc 950 000 membres «actifs». En cette fin d'année 2020, le nombre journalier passe à 9.3 millions, soit 82% d'augmentation. La saisonnalité et la croissance de ces sites sont donc difficiles à estimer.

Une autre approche serait de multiplier le nombre de parties journalières par 365/12=30.4 puis de diviser par le nombre de parties moyennes sur lichess obtenu précédemment. Le résultat reste peu fiable, car on n'a pas le nombre de parties journalières pour le blitz seul. Le total des parties de Chess.com inclut toutes les variantes.

Il est possible encore de comparer le nombre de parties en cours entre les deux sites. Le décalage horaire est à déterminer sur la base de plusieurs mesures, car Chess.com est en Californie et Lichess à Gravelines. Sans décalage, il y a un facteur de 8.7 entre les deux sites. Rapporté au nombre de joueurs moyen, la cohérence des chiffres reste difficile.

Au final, on n'est pas très avancé, à part concernant Lichess avec qui il est possible de faire quelques analyses pratiques.

Posté par admin le 17 septembre 2020 à 19:10 - Informatique
Texte soumis à la licence du site, sauf mention contraire
Rechercher plus d'informations

 

Commentaires

Evaluer l'article : * * * *

Ajouter un commentaire

Pseudo:
Site web: http://...
Message:
Avez-vous trouvé l'information que vous cherchiez ? Votre retour d'expérience sur le site nous intéresse.