I'm currently developing an application in Python that calculates the probability of winning a game of Rainbow Six Siege based on the skill level of the players in the game.

Siege is a 5 vs. 5 competitive first person shooter played in rounds. Let $A$ denote the number of rounds won by Blue team and $B$ be the number of rounds won by Orange team. If Blue team wins the game, it can be in the form of one of the following outcomes:

$$(A, B) = (4, 0), (4, 1), (4, 2), (5, 3) \text{ or } (5, 4)$$

i.e., there is a tie break if the number of rounds played reaches (3, 3). The reverse is also true for Orange team winning a game.

Now for the data: the Python script reads the names of the players in each team from the scoreboard, sends an API request to Ubisoft (the game's developer) and obtains the following statistics for each player in the game:

total number of games won
total number of games lost
total number of games played
total number of kills
total number of deaths
total time played (seconds)

Note that some players can leave the game, making it a 4 vs. 5 game for example.

Now I would like to be able to calculate (an estimate of) the probability of winning the current round and the probability of winning the entire game, at any given stage in the game.

Here is what I am thinking to do so far:

  • Calculate the average W/L (win-loss) ratio for each team:

    for example, the Blue team average W/L ratio ratio is given by

$$\text{average W/L} = \frac{1}{n}\sum_{i=1}^n \frac{\text{total number of games won by player } i}{\text{total number of games played by player } i}$$

where n denotes the number of players on Blue team.

  • If we have for example, Blue team average W/L ratio = 0.9 and Orange team average W/L ratio = 1.2, the probability of Blue team winning the game should be given by:

$$\frac{0.9}{1.2+0.9} \approx 43\text{%}$$

Is there anything wrong with this method? Additionally, I would like to incorporate the K/D ratio as well as the total time played in the calculation. Also, if a certain number of players leave each team, how could we take this into account?

Thank you in advance.

P.S. I plan to release all of the code on GitHub when the project is (mostly) complete.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.