Tuesday, April 5, 2016

Baseball Mogul 2016: Rating Calibration

Baseball Mogul 2016 has a new feature that adjusts all stats for the statistical environment in which they are accrued before assigning player ratings. This applies to the current season and to historical seasons, but it also calculates major league equivalencies (MLEs) for the 1.2 million lines of minor league stats included in the game.

The New Rating Scale

The first thing you will notice is that everyone’s ratings have dropped by about 6-8 points. The average rating for a major league player in Baseball Mogul Diamond was about 82. The first version of Baseball Mogul was originally designed with the average player rating set at 75 (corresponding to a grade of "C" in an academic environment). But it crept up over the years until more than half of all players were clumped between 81 and 86, making it difficult to differentiate between an average player and a very good player. In last year's game, the distribution of ratings for major league players looked like this:

Player Rating Distribution in Baseball Mogul Diamond
Making league and stadium adjustments for every stat gives us the ability to rate all players on the same scale, in the same way that a stat like OPS+ defines '100' as the league average. In addition (and unlike OPS) we can specify the distribution of player ratings on this scale. That is, we can specify the degree to which all player ratings are either clumped near the average rating or spread out over the entire scale.

I used this opportunity to re-establish 75 as the major league average for all player ratings and to set the standard deviation at 7. Assuming a normal distribution, ratings for players at the major league level are now distributed on a “bell curve” like this:
Player Rating Distribution in Baseball Mogul 2016
As you can see on the graph, about two thirds of ratings fall between 68 and 82. Any rating of 90 or higher describes an ability in the top 2% of major league talent.

Fitting all player ratings to this scale means that any specific number has the same meaning regardless of whether you are playing in 1927 or 2027. 
For example, a pitcher's Power rating is primarily based on their projected strikeout rate. If a pitcher strikes out batters at a rate that is one standard deviation above the league average, he is assigned a Power rating of 82 (75 + 7).

Historical Adjustments

Player ratings now use the same scale regardless of which season you are playing in (and regardless of how many seasons you play into the future). This differs from previous versions of Baseball Mogul which had different average ratings in different seasons. As league averages went up and down, so did player ratings. For example, the strikeout rate in Major League Baseball has risen more than 65% over the last 25 years. This translated to a big jump in Power ratings for all pitchers. If you start a new game in 2015 using Baseball Mogul Diamond, the average pitcher has a Power rating of 83. But if you start in 1981, the average Power rating is only 70. This discrepancy means that the 1981 season has only nine pitchers with an Overall rating of 90 or more, compared to 56 such players in 2015!

Impact on Gameplay

This volatility was more than just a cosmetic problem. It could lead to a serious imbalance between batters and pitchers. If you start a game in 1969 you will see that pitching ratings are noticeably higher than batting ratings -- because run-scoring was at an all-time low in the late 1960s. Of forty players rated 90 or higher in the 1969 database, only seven (17%) are batters. Because player ratings are part of the game’s artificial intelligence and salary negotiations, this imbalance made it possible to take advantage of the computer-controlled general managers by trading away below-average pitchers in return for above-average hitters (and then signing those hitters at lower salaries than pitchers with the same win value were asking for).

The Shocker!

Baseball Mogul 2016 re-calibrates all ratings when loading a game saved in the previous versions. This means that a team of players rated between 82 and 88 could become a team with of players rated in the high 70s. These rating changes may come as a shock -- in the same way that you would be stunned if your employer suddenly cut your pay by 8% for no reason. I have noticed that I can rewrite the code for determining team revenue or ticket sales or player salaries without getting a single complaint. If the number of outfield assists or complete games goes down by 8% between versions, no one notices. But if the ratings for your players on your team drop by 8%, it seems like the game has undone all the hard work you put into building your team. It's worth remembering that the underlying player talent level is completely unaffected by this adjustment, which applies equally to every player in the database. This is a significant change, but it was a long-awaited fix to the problems of inexact player ratings and unpredictable talent distribution – problems that leaked over into everything from player evaluation to managerial decisions.

Monday, April 4, 2016

Baseball Mogul 2016: Bug Reports

We're currently working on the first patch for Baseball Mogul 2016, which should be available later this week. There haven't been any serious problems reported, but we'd like to address a few issues:

1) The updated rosters include a player called Pete O'Brien that died in 1937.

2) Injury levels are generally too low for the modern era. The number of trips to the disabled list has increased steadily over the last 50 years. There is a bug in how Baseball Mogul uses this data, causing injury rates to be about 40% too low. You can fix this yourself by with the following changes in the League Editor:
  1. Set "Injury Frequency" to +60%.
  2. Set "Injury Severity" to +20%.
3) We are fixing some bugs with the expansion draft.

4) Some of the help files need to be updated.

5) We would like to build a version that runs on Windows XP. (Windows XP is currently listed as not supported, but we still have customers who would like to play Baseball Mogul 2016 on XP).

If you find any other problems that need to be addressed, please send me an email at bugs@sportsmogul.com.



Sunday, April 3, 2016

Baseball Mogul 2016: Bringing The Dead Back To Life

It turns out that the updated rosters for Baseball Mogul 2016 included a player that died in 1937. (This happened because the Pete O'Brien who played 8 games for the Diamondbacks last year is listed as "obriepe01" at Baseball-Reference but as "obriepe04" at the Baseball Databank.)

Pete O'Brien
1890 Chicago Colts
Pete O'Brien
2015 Diamondbacks
(Not Dead)
A patch for this should be available this week. But if you'd like to fix it yourself (and learn a bit about how the roster files work) you can follow these steps:
  1. Go into Baseball Mogul and choose 'Open Baseball Mogul Folder' from the Help Menu.
  2. Go into the 'Input' folder, and then into the 'Players' folder.
  3. Edit the file called "2016-Rosters.csv", changing "o'bripe01" to "o'bripe04".
Now, you'll need to rebuild the main database  a file called "Universe.dat" that is loaded whenever you start a new game and choose "Modern".

Note: You will probably want to turn on the feature in Windows that lets you see (and edit) the 3-letter filename extensions.
  1. Start Baseball Mogul.
  2. Click 'Classic' and choose '2016' in the dropdown box. Then click 'Play'.
  3. It will chug for a few minutes and then show you the screen where you pick a team. Pick any team and click 'Play'.
  4. After the game setup finishes, choose 'Save...' from the Game Menu and save the game as 'Universe'.
  5. Go back out to the Baseball Mogul folder ('Open Baseball Mogul Folder' from the Help Menu).
  6. Find the existing "Universe" file ("Universe.dat") and rename it to "Universe.bkp".
  7. Find the game you just saved ("Universe.mog") and rename it to "Universe.dat".
The next time you start a 'Modern' game, it will load your new file.

Saturday, April 2, 2016

Baseball Mogul 2016: New Features

More Realistic Simulations - Now 70% Faster

This year's focus was on making Baseball Mogul 2016 better instead of bigger. The first task was ripping out and rebuilding some old database code that caused problems with sims before World War II — and sometimes caused a loss of data when saving games to the hard drive. As a result of this effort, historical simulations are now much more realistic. An added benefit is that the entire simulation is more than 70% faster!

New Player Rating Editor (and new ratings)

You can now directly edit each player's individual ratings (replacing the previous frustrating method of editing the player's statistical projections until the game assigned the desired ratings). All batting ratings are editable versus lefty and right pitchers, making it possible to accurately represent players like Mickey Mantle (who was a better overall hitter when batting right-handed despite having more power as a lefty).

This new format also introduces some new ratings, such as "Gap Power", "Plate Protection" and "Steal Tendency".

Improved Player Aging

In previous versions, ratings like "Speed" and "Power" matured and deteriorated at different rates, but the process was inexact because of the way ratings were derived from player statistics. With the new database format, we did our own research into how a player's skill set improves and declines. A couple of interesting findings:

1) The conventional wisdom is correct that catchers lose foot speed more quickly than other players, presumably because of the wear and tear on their knees.

2) Despite modern training practices, pitcher effectiveness peaks earlier now than it did in the 20th century.

PITCHf/x Data

We've parsed and processed PITCHf/x data for more than 5 million individual pitches over the last 14 years, giving us more realistic pitch ratings and pitch selection for more than 1,400 different pitchers (in addition to the hand-edited pitch repertoire information that is included for pitchers going back to the 19th century.

Plus Many Smaller Changes, such as:

You can now choose either a "strict" or "flexible" pitching rotation for each team.
  • With a flexible rotation, the computer manager will skip the last starter depending on how well rested your ace is. As before, this level of flexibility is still adjustable for every team and every player using the "Start On Short Rest" strategy setting.
Improved artificial intelligence for salary arbitration.

Improved general manager AI (including roster management, drafting, trading and free agent salaries).

New system for "generic photos" (used for fictional players). This fixes the problem where a player's handedness might not match that shown in his action photo.


Updates for Opening Day of the 2016 Season

  • Updated rosters for every franchise including more than 2100 active players
  • Complete major league and minor league stats through 2015
    • Includes 1.4 million lines of minor league stats
  • Authentic 2016 MLB season schedule (all 2430 games)

Backwards Compatibility

Baseball Mogul 2016 automatically loads databases from previous versions of Baseball Mogul.