Wednesday, June 8, 2016

Clay's Time Use

Now that I'm done working on 야구의신 and able to once again work full-time on Baseball Mogul, I've been using Time Doctor's time-tracking software for the last 6 months to help me stay on task — and to help identify tasks that are eating up too much of my time. This is the raw data for hours of work during that time:

Project
Hours
Notes
Sports Mogul Inc.113.02Responding to customer e-mail, editing the web site, writing newsletters, filing, accounting, taxes, payroll, etc.
Other / Personal53.7Includes everything from reading Facebook to walking the dog (if done while Time Doctor is running).
Football Mogul22.4
Baseball Mogul959.1See below

And this is a pie chart of the same data:

With 83% of my time being allocated to Baseball Mogul, I made a chart showing a more detailed breakdown of my time use for just Baseball Mogul:


This chart doesn't tell me much, except that I was able to spend most of my time coding and debugging (including technical design etc.). This can be very difficult for small-business owners, and it's taken years to develop the necessary habits and focus — and to surround myself with the best people.

That big "PROGRAMMING / DEBUGGING" section can be further broken down into sub-tasks:


One thing that stands out to me in this chart is the large amount of time spent on "Loading/Saving Game Data" and "Data Manipulation". This occurred because Baseball Mogul 2016 required a complete rewrite of the code that loads and saves your game data, in order to permanently fix a bug that was causing some players to lose "year-by-year" player stats. Going forward, I expect the amount of time spent on these two areas to drop significantly.

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.

Thanks!

Clay

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
(Dead)
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.

Friday, March 25, 2016

Baseball Mogul 2016 Launches April 2nd at 11:30 pm!

Baseball Mogul 2016 will be available for download from sportsmogul.com at 11:30 pm (EDT) on Saturday, April 2nd.


This year's version includes updated team and player stats through 2015, complete spring training rosters, and an additional 1,000+ real-life minor league players (that's more than 75 players per franchise, complete with hand-edited ratings and vital stats).

More than a hundred beta testers have been putting Baseball Mogul 2016 through it's paces -- with the new rosters, but also with fictional and historical leagues. More than 80% of the reported bugs have been fixed, and I'm pretty confident we can fix the rest before March 31st.

We have also completely re-designed the Baseball Mogul data format, making it possible to directly edit player ratings (as opposed to the old frustrating method of editing a player's "predicted" stats until you got the ratings you wanted).

I'll be posting more info over the next few days and weeks. Thanks for reading!

[Edit: Date and time of product launch updated.]

Saturday, September 19, 2015

Football Mogul: 2016 Mock Drafts

To test Football Mogul 16's improved drafting AI, we ran several simulations of the upcoming 2016 NFL Draft. These are the ratings for the top college players going into the draft...


... and here is one simulation of the 1st round:


... and another simulation:


... and another:


As you can see, there is no single prediction for the 2016 NFL Draft. Team needs change over the season (as does their draft position) and college players improve or decline in the rankings (because the Football Mogul 16 aging model affects all players, including college players).

Note: New England forfeited their 1st-round pick because of Deflategate.