def compute_trueskill_ranking(matches):
    env = TrueSkill(0, 0.5)
    env.beta = 0.025 * (0.5 ** 2) * len(matches)
    env.tau = 0
    player_objects = defaultdict(lambda: env.create_rating())
    for match in matches:
        system_name0, system_name1, win0, win1 = match
        player0 = player_objects[system_name0]
        player1 = player_objects[system_name1]

        if win0 == 1 and win1 == 0:
            new_player0, new_player1 = rate_1vs1(player0, player1)
        elif win1 == 1 and win0 == 0:
            new_player1, new_player0 = rate_1vs1(player1, player0)
        else:
            new_player0, new_player1 = rate_1vs1(player0, player1, drawn=True)

        player_objects[system_name0] = new_player0
        player_objects[system_name1] = new_player1
    ranking = sorted(player_objects.items(), key=lambda x: x[1].mu, reverse=True)
    return ranking