Showing posts with label Baseball. Show all posts
Showing posts with label Baseball. Show all posts

Tuesday, March 5, 2013

Baseball Mogul 2014: Minor League Park Factors

Park factors used for calculating 2013 Major League Equivalencies (MLEs) for minor league and major league players included in Baseball Mogul 2014. (.pdf version)

Five-year park factors generated using 2008-2012 minor league player data, where available.

California League (Class A Advanced)

Farm System
Bakersfield Blaze
High Desert Mavericks
Inland Empire 66ers
Lake Elsinore Storm
Lancaster JetHawks
Modesto Nuts
Rancho Cucamonga Quakes
San Jose Giants
Stockton Ports
Visalia Rawhide

Thursday, February 28, 2013

Baseball Mogul 2014: Minor League Stats

For Baseball Mogul 2014, we have added over 1 million lines of minor league batting, pitching, fielding and catching data, going back to the 1880s.

Click for larger image
The above screen shot shows Jurickson Profar, the Ranger's #1 prospect. The Baseball Mogul AI thinks he should be in their starting lineup on Opening Day.

Sunday, February 24, 2013

Baseball Mogul 2014: Fixing The Game (Part 2 of 2)

As mentioned last week, we have been reworking the General Manager AI so that computer-controlled teams are much more intelligent when it comes to trades and roster management. This also means that the computer-controlled teams won't have to "cheat" on high difficulty levels just to provide a challenge. But the other weakness that gets abused is the player rating system.

Player Ratings

One solution to the problem of accurate player ratings is to make them less accurate. This works, but leads to some really dumb results, like your scouts telling you that Ubaldo Jiminez has a "95" Control rating.

The other option is to simply turn ratings off. Baseball Mogul lets you do this, and it's actually a good option in my opinion. After all, the game is much more realistic when you turn off the ability to see player ratings. Nobody in Major League Baseball has a crystal ball regarding player abilities. You can't just give your scouts more money and magically gain access to the "true" ability level of every player in baseball. If a GM could view the Strat-O-Matic cards for every single player in his organization, the job of talent assessment would be pretty boring.

Strat-O-Matic Cards

Thursday, February 21, 2013

Baseball Mogul 2014: Team Colors

(Click for larger version)
Just posting a screenshot of the new Uniform Designer for Baseball Mogul 2014 (Release Date: March 22nd, 2013).

As you can see, you can specify the color of various parts of the home and away uniform. Each of those buttons is a "color picker" that lets you choose any color in the spectrum. You can even assign pinstripe colors (or choose no pinstripes).

Each team has 4 alternate uniforms, and the option to choose which days of the week (if any) they are used. Mogul currently loads the 2013 uniforms (and any official alternate uniforms) automatically. A database of uniforms for the last 110 years will be included with the final version.

These uniforms are used for all the batter and pitcher animations, and combined with the correct skin color for the player in question.

Saturday, February 9, 2013

Baseball Mogul 2014: New Uniforms

A very cool feature this year is new animations for the batter and pitcher. I realize that Baseball Mogul isn't about cutting-edge graphics. But it was pretty annoying that every single batter and pitcher was a white guy with bad posture and a dark blue helmet.

Old Animations
In case you were wondering, the old batter animation (and pitcher animation) was me. Filmed in my backyard, with a giant green tarp used as a green screen. There was snow on the ground.

So, this year features a new animation system, with the ability to change uniform colors and skin colors.

Examples of New Animations
The cool thing is that this feature is being added by an artist and another programmer, with very little effort on my part. So I get to keep working on the meat of the game.

Friday, February 1, 2013

The Skin Color Project

Over the years, I have heard baseball researchers ask if there was a "race database" somewhere.

For example. the National League was better than the American League throughout the 1960s and 1970s. From 1960 to 1982, the National League won 23 All-Star Games. The American League only won 2.

I would surmise that the National League dominated because they integrated more quickly, adding the best black players to their teams while a number of American League teams (most notably, the Red Sox) continued to stay all-white.

But I haven't seen data supporting that theory. That's because we have stats going back to the 1870s, but we don't have a database of racial/ethnic categorization. One reason is that every time it comes up, it becomes clear that "race" is a cultural phenomenon, not a scientific one. For example, President Obama is (at least) half-white and yet we call him the first "black" president.

So, forget "race". I'm working on a skin color database, ranking everyone from 1-9 like so:

Tuesday, November 27, 2012

Marvin Miller Dies at 95

Marvin Miller (1917-2012)

Marvin Miller, the father of free agency in baseball, died today at the age of 95. For those unfamiliar with baseball's labor history, I'm including below the history of baseball labor relations that we published 7 years ago (with some updates as part of our efforts to provide more realistic historical labor relations in Baseball Mogul 2014).

Friday, September 14, 2012

The Worst Front Office Move Ever?

Babe Ruth (1918)
Babe Ruth (1918)
It's not hard for most people to come up with a list of "dumb front office moves" in the history of baseball:
  • #10. Philadelphia Phillies trade Larry Bowa and Ryne Sandberg to the Chicago Cubs for Ivan DeJesus. (1982)
  • #9. The Cincinnati Reds trade Frank Robinson to the Baltimore Orioles for Milt Pappas. (1965)

Tuesday, September 11, 2012

National League's Best Pitching Staff

Billy Beane
"My job is to get us to the playoffs. Everything after that is fucking luck." - Billy Beane

Billy Beane was pretty much right. Over the course of a 162-game season, the best teams tend to make it to the playoffs. But in a short series, it's much more likely that the weaker team will advance.

Wednesday, July 11, 2012

Dickey's "Angry Knuckleball" Added To Baseball Mogul 2013

Photo by MG_4618 on Flickr (Creative Commons license)
Thanks to R.A. Dickey's recent success, we're adding a 3rd type of knuckleball to Baseball Mogul.

The game already had a "Knuckleball" and "Slow Knuckler" as options (Wakefield throws both of these). We also of course have a knuckle curve, but that isn't actually a knuckleball. With Dickey having a Cy Young season throwing what some have called a "Power Knuckleball", we're taking a close look at the physics behind this pitch and adding it to the game.

Saturday, June 23, 2012

Baseball Contract Analysis

We've been going through contract and salary data, in order to improve the artificial intelligence in Baseball Mogul 2013 and future versions.

Contract Lengths for Major League Baseball Players (n = 516)
We examined the 516 players on Major League 40-Man Rosters (as of opening day) that had reached either arbitration or free agency. The first fact worth noting is that the vast majority (84%) of all player contracts are between 1 and 3 years. The longer deals get all the headlines, but the shorter deals dominate team rosters.

Wednesday, May 30, 2012

Baseball Mogul's Simulation Engine

If you're a fan of the Baseball Mogul series, you might be wondering why, after 17 years, I chose this year to fully rewrite the simulation engine.

Well, first, some history:

Tuesday, May 29, 2012

Pythagoras Explained

Pythagoras of Samos, mathematician and philosopher, died about 2500 years ago. Nevertheless, his name is familiar to baseball fans. The "Pythagorean Expectation", invented by Bill James in the 1980s, predicts a team's winning percentage from runs scored and runs allowed. Despite the intimidating name, Pythagorean win expectations can now be found on mainstream sites like ESPN and

Wednesday, May 23, 2012

Baseball Mogul 2013 - Version 15.07

We have just released Version 15.07 of Baseball Mogul 2013. This is an update to Version 15.00 (which was launched on April 3rd). Simply put, if you were waiting to make sure the bugs were worked out of the initial release, this is the version to buy:

  1. Fixes a crash bug that was occurring when viewing Scouting Reports for certain players.
  2. Fixes a bug where a called strike sometimes didn't count on hit-and-run (or run-and-hit) plays.
  3. Fixes calculation of season and career WAR ("Wins Above Replacement").
  4. Includes year-by-year lefty-righty stats for every player going back to 1950 (alas, Retrosheet doesn't have complete data before that).
  5. Improves manager AI and pitcher usage patterns.
If you already bought Baseball Mogul 2013, download and run this file to automatically upgrade to Version 15.07.

Happy simming!


Sunday, March 25, 2012

Baseball Mogul 2013 Preview: Win Expectancy

Another new feature for Baseball Mogul 2013 is that all the game logs now show Win Expectancy after each play.

Win Expectancy is the chance that a team has of winning the game, based on the inning, score, outs and runners on base. In the case of the Baseball Mogul game recaps, the Win Expectancy for the home team is shown after each play.

Here's an example from the 9th inning of a game I just played in Play-By-Play mode:

At the top of this screen shot, the home team (Washington) is leading the game 4-3, at the start of the 9th inning. In this situation in the current run-scoring environment, this gives the home team an 87.2% chance to win the game.

Then the Washington pitcher walks the leadoff man (Sanchez), dropping their win chance by 9.6% (to 77.6%).

When John Buck doubles down the right field line, the game is tied and the Marlins have the go-ahead run on second base. The biggest play of the inning is when Jose Reyes singles with two outs to knocks in the (eventual) winning run. By the end of the inning, the Marlins are ahead 5-4 and the Nationals chance of winning the game has dropped to 17.4%.

In the bottom of the 9th, Washington's chances just get worse. The leadoff hitter (Marrero) strikes out, dropping their win chance below 10%.

At the end of the game, their chance to win has dropped to 0.0%. (This is self-evident, but it shows that the math adds up).

Thursday, March 22, 2012

Baseball Mogul 2013 Preview: Heat Maps

As I mentioned here, this is the year that Baseball Mogul went from being a random number generator (like Strat-O-Matic or previous computer sports games) to becoming a true physics-based simulation of each pitch. However, it's difficult to determine if our model is realistic without having a way to visualize the results. So, I added heat maps to Baseball Mogul 2013, plus the functionality to record data for every single pitch.

Ideally, we should see the same patterns in our data that we see in Major League Baseball. For example, we know from actual pitch data that BABIP (Batting Average on Balls In Play) varies by pitch location:
Heat map by Dave Allen
This heat map is for right-handed batters only, with a view from behind the catcher. Imagine the batter standing to the left of the strike zone.

As you can see, BABIP is slightly higher in the lower part of the strike zone, because low pitches lead to more ground balls, and ground balls turn into hits a bit more often than fly balls.

And, the "hot zone" for BABIP tilts. That is, on low pitches, the highest BABIP occurs just inside the middle of the plate. On higher pitches, this region is a bit farther away from the batter.

This prime hitting zone tilts at this angle because the sweet spot of the bat passes through the strike zone roughly along this line. With the bat (and arms) pivoting on the batter's shoulder, it's easier to reach the high outside corner with the heart of the bat than it is to reach the high inside corner. So, with Baseball Mogul, I modeled the bat moving through the strike zone, by assigning different coeffecients of restitution to each point on the bat. The coefficient of restitution (COR) reflects how quickly the ball comes off the bat at each spot. It can be represented as a parabolic function along the length of the hitting surface, with the COR peaking at the bat's sweet spot.

I hope I didn't lose you with the technical jargon. Simply put, once this COR model is added to the simulation, we should see results that look somewhat like real life. So here's the same heat map from one season of Baseball Mogul:

Heat map by Baseball Mogul 2013

I honestly didn't expect it would look that good. As with the first heat map, BABIP is highest from the middle of the plate down to the bottom edge. And, we see the same tilt: on low pitches, the batter is more likely to hit the ball solidly if it's over the inner half of the plate. As the pitch moves up in the strike zone, BABIP improves as the pitch moves toward the outer half.

Very cool. I'm really looking forward to using these heat maps to continue to dig into the new simulation engine.

Tuesday, March 20, 2012

Baseball Mogul 2013 Preview: The Charts Tab

Baseball Mogul 2013 now tracks and records every single pitch of your simulation. Pitch type, speed, location, result. etc.

In conjunction with this, we have now added a 'Charts' tab to every player's Scouting Report:

The above chart was created by simulating from the 2012 season through 2025. It shows BABIP (Batting Average On Balls In Play) for all lefties that Strasborg faced.

You can also limit the search to certain pitch types (fastballs, sliders, etc.) and situations (2 outs, RISP, "close and late"). For example, here's Jason Heyward's Slugging Percentage on just fastballs:

Finally, you can limit the search to at-bats against one team or one specific player, such as Dustin Pedroia versus the Yankees from 2012 through 2020:

Saturday, March 10, 2012

Baseball Mogul 2013: Under The Hood, Part 2

For years, people have been asking for direct access to the Baseball Mogul database. Many of them want to be able to build mods that read and parse the data.

For example, Mizerak created a very cool app called the Box Score Parser that sifted through multiple seasons of box scores in order to derive data that can be easily viewed inside Baseball Mogul. Unfortunately, he had to use box scores because they were one of the only things saved in a human-readable form.

Thursday, March 1, 2012

Baseball Mogul 2013: Under The Hood, Part 1

When I first wrote Baseball Mogul, it simulated each game by simulating the result of each plate appearance. This isn't unusual. This is how Strat-O-Matic works. This is how other computer games work. This is even the method I used when writing my very first baseball simulation, using paper and dice, back in 1976.

But the thing is, baseball isn't played with paper and dice. It's played inside televisions. And the game on television isn't determined by comparing player stats and generating a random number. It's determined pitch-by-pitch. Each pitch has a velocity, a spin direction (and magnitude), and the location where it crosses the plate.

Photo by Wall Street Journal

So, for Baseball Mogul 2013, I rewrote the entire simulation engine to calculate:
  1. The velocity and path of each pitch (similar to that recorded by PITCHf/x).
  2. The timing and velocity of the bat swing.
  3. The plane of the bat swing (and the location of its sweet spot).
  4. The angle and velocity of the hit that results from the above.

Saturday, July 26, 2008

Cliff Lee For MVP?

Photo by aturkus on flickr
Cliff Lee is now 14-2 for an Indians team that has won only 45 games. Lee has over 31% of his team's wins.

The last pitcher to finish the season with more than 30% of his team's wins was Fergie Jenkins, winning 25 games for the 1974 Texas Rangers. And Jenkins pitched in a 4-man rotation, allowing him to get 41 starts.

In other words, no pitcher has ever done what Cliff Lee is doing: winning 30% of his team's games while pitching in a 5-man rotation.