Simulating Matches Automatically
Sports games that simulate an entire season for a whole league of teams often provide a means of simulating matches automatically without the player's having to play them. Each team in American professional baseball currently plays 162 matches in a season. With 30 teams in the two leagues and 2 teams in each match, this totals 2430 matches—only the most rabid fan would want to play each match personally. To generate results for matches that the player doesn't play, you need a way of simulating a match. Of course, you want the resulting scores to accurately reflect the relative strengths of the teams: A bad team should be able to beat a good team occasionally but not often.
The simplest way to simulate matches automatically is to let the computer play out the match in computer versus computer mode (as described in the earlier section "Competition Modes") and record the results. A game with a good simulation model should produce scores that reflect the real abilities of the competitors.
However, if the player wants to generate results for a match that she doesn't want to play herself, she probably wants it done quickly. You can speed up the process by turning off the graphics. Because displaying the graphics often takes up the majority of the computer's time, an entire match can be simulated invisibly in a few seconds, and the computer can report only the result. Electronic Arts' Earl Weaver Baseball game did this successfully. When you implement a nondisplayed mode like this, test the game to be sure that the results without graphics are the same as those with graphics.
Instead of simulating entire matches with the graphics turned off, many games fake it—in effect, they roll dice to generate game scores. The dice are loaded somewhat so that good teams get high scores and bad teams get low ones, and whichever team rolls the highest score wins the match.
If you choose this approach, you will need to devise a suitable algorithm for generating point values; in games such as American football and rugby, in which different kinds of scores produce different numbers of points (touchdown, field goal, and so on), certain score values are much more common than others. It's extremely rare, for example, for a team to end an American football game with a score of 2. You'll also need to make sure that your algorithm creates reasonable scores and a reasonably random distribution of scores. No professional soccer game should ever end with a winning score over about 15, and even that will be rare; your algorithm should produce many more games with winning scores of 4 or less.
Unfortunately, the dice-rolling technique doesn't generate any statistics other than the scores themselves. In a particularly statistics-rich sport such as baseball, if you don't generate performance data for each individual athlete, some fans will consider your game to be a lightweight simulation rather than a serious one. It's up to you to decide just how important that market is to you and how much effort you're prepared to exert to meet their expectations.
Considerable debate has raged over the years about whether to build a home-field advantage into sports games. Although the home-field advantage is statistically significant in a number of sports, it's better not to build it into the mechanics of the game. Players like to feel that they are playing a fair game, and if they know that the odds are artificially stacked against them whenever they play an away game, they will resent it. It's also unclear exactly how the home-field advantage should be implemented. Fans normally observe the home-field advantage from win-loss statistics, but of course, the computer can't simply turn a loss into a win. You could shave off a percentage of goal-scoring attempts, but even this slight intervention is likely to generate odd side effects. If a scoring attempt that clearly should have succeeded fails for no visible reason, the players are bound to notice it. If you feel you must simulate home-field advantage, the best (and least detectable) way to do it is probably to improve all the ratings slightly for all the athletes on the home team.