The SimEngine simulates a game one possession at a time. The following is a high-level view of the decision process involved in every normal possession of a simulated basketball game. Normal possessions pertain to almost 95% of all possessions, but do not cover breakaways, put-backs or late-game situations:
- We determine who has the ball by looking at every offensive player’s real-life possession rate. This value looks at his real-life field goal attempts, free throw attempts and turnovers. A player’s chance at having the ball for this possession is exactly relative to the real-life possession rates of the other players. If everyone has the same possession rate, everyone will have a 20% of possessing the ball. We use the composition of the team on the floor and the offensive set to determine how much time has come off the clock by the time this decision is made and the possession is terminated.
- Now that we have picked a player, we must determine what he will do with the ball. There are three things he can do: turn the ball over (3), shoot (5) or be fouled (4). Every player has a real-life turnover percentage, field goal attempt percentage and times fouled percentage that is relative to his total number of actual possessions. At this point, many factors can adjust those percentages and affect whether we go to step 3, 4 or 5. Generally, we will view the chance that he shoots as the amount remaining after modifications to fouled percentage and turnover percentage. These factors include: the man defending the player, the rest of the defense, the type of offense, the type of defense, a player’s fatigue value, any team under-possession penalty and the player’s over-possession penalty.
- If a player has committed a turnover, he may have committed a ball-handling mistake, poor pass or offensive foul. The percentage chance that an offensive foul has occurred is relative his actual personal foul rate. This is figured into the chance in the previous section. Ball-handling and passing turnovers each use a fixed percentage of the remaining chance that is based on historical averages for these turnovers. If it is one of these two types of turnovers there is a chance for a steal. This chance is based on the defenders and is relative the steal weighting used in the decision above. If a steal has occurred, there is a chance for a breakaway. Either way, the player who steals the ball is determined after the steal event is known. Each defensive player’s chance for a steal is relative to his contribution to the steal weighting in #2. If no steal has occurred, the ball simply goes to the other team.
- A player has been fouled. This can be a shooting foul or a personal foul on the floor. This decision is determined using historical averages and the player’s real-life field goal attempt rate. If there is a shooting foul, a player has a chance to make the shot. We determine if it is a two or a three in the same way as we will below and the chance of making it is relative to his real-life shooting percentage, but discounted by a historical percentage. Either way, the foul is assigned to one of the defensive players. Each player’s chance of committing the foul is based on his real-life foul rate and is relative to the weighting used to determine if there is a foul in #2. If it is shooting, the shooter will be able to shoot the appropriate number of shots. If the final free-throw shot is missed, we proceed to rebounding (6). If it is not a shooting foul, we restart the possession.
- A shot has been attempted. Whether this is a three-point attempt is strictly based on the shooters ratio of three-point attempts to non-three-point field goal attempts. The chance that a player has of making the shot is based on his shooting percentage, the assist rates of his teammates, his defender’s stop percentage (captured by defensive rating) and to a lesser extent the other four player’s stop percentages and the block rates of all five defensive players. If the shot is made, we determine if there was an assist. Assist chances utilize a historical average as a base that is modified by the sum assist rates from the other four offensive players. If there is an assist, every player’s chances are relative to his assist rate compared to the other players. If the shot is missed, we must determine if there was a block. Block chances are relative to the weighting that each player has in the field goal make or miss decision. Either way, if the shot is missed, we must determine who gets the rebound.
- Every missed field goal attempt in a normal possession is rebounded. Rebounding looks at the real-life offensive and defensive rebounding percentages of all ten players on the court, though the shooter and his defender generally have less of a chance, especially in the case of a three-point attempt. We look at each one-on-one matchup for this situation (shooting team is still considered offense) to determine if one player has a better than average advantage over his opponent. These players will get a boost to their percentages, while their opponents will see their percentages drop. We then look at all ten modified percentages. The chance that an individual player has of getting the rebound is relative to how his percentage compares. If the ball is rebounded by an offensive player, there is a chance for a put-back. Assuming no put-back, the possession restarts. If the ball is rebounded by a defensive player that team begins its possession on offense.