Showing posts with label FAQ. Show all posts
Showing posts with label FAQ. Show all posts

Saturday, March 25, 2017

Adding Stadium Art to Baseball Mogul

I got an email this morning with the following question:
  1. I am trying to use this photo of Jarry Park in Baseball Mogul, but all the numbers are skewed. The batter is nowhere near home plate, the first baseman is almost on the pitchers mound... what can I do to fix this?
They attached a file called PBP-Stadium-Montreal.jpg:




To verify the problem, I copied this file to my 'Stadiums' folder and started a new game as the 1974 Expos. When I went into Play-By-Play mode for their first home game, the field looked like this:


As reported, the ratings for all the fielders are in the wrong place on the field (as are the outfield fence distances). This is because every stadium photo requires a matching text file that specifies the coordinates that Baseball Mogul needs to use when drawing these labels.

To get these coordinates, open the photo in a graphical editing program. I use the "Paint" program included with Windows. Baseball Mogul assumes a photo size of 640 x 480 pixels, so you should resize your photo before proceeding.

Microsoft Paint displays the coordinates of your cursor in the lower left corner of the window. Start by placing your cursor over home plate and record the coordinates to a text file. Continue this process for each of the following locations on the field, typing each set of coordinates on it's own line. (If the foul poles are outside the picture, estimate their coordinates.)

Home Plate
First Base
Second Base
Third Base
Left Field Corner
Center Field Wall
Right Field Corner

After each pair of coordinates, you can add a comment by typing '//' and the following it with a useful label. When done with PBP-Stadium-Montreal.jpg, my text file looks like this:

318,351 // HOME_PLATE_COORDINATES Bottom corner
515,290 // FIRST_BASE_COORDINATES Outside corner
321,250 // SECOND_BASE_COORDINATES Top corner
128,285 // THIRD_BASE_COORDINATES Outside corner
-47,221 // LEFT_FIELD_COORDINATES Base of foul pole
324,194 // CENTER_FIELD_COORDINATES Base of CF wall
700,229 // RIGHT_FIELD_COORDINATES Base of foul pole

Save this file with the same filename as the stadium photo, but add the ".ini" file extension (e.g. PBP-Stadium-Montreal.ini).

When I go back into Baseball Mogul 2016 and resumed the game with the 1974 Expos, the stadium view now looks like this:


Much better!

Friday, January 23, 2015

Baseball Mogul Diamond: The "Skip" Button

Baseball Mogul gives you multiple ways to manage players in the last year of their contract (including those eligible for arbitration). The easiest way is to select "Expiring Contracts" in the Sortable Stats Dialog (on the Team Menu):


Then open the player's Scouting Report and click the "Negotiate" button:


However, if you still have expiring contracts at the end of the season, the game will force you to sign or release each of your players. This is frustrating, because you have to decide (for example) whether to sign Jon Lester before you know how much Felix Doubront is going to ask for in arbitration.

So ... we are adding a "Skip" button for Baseball Mogul Diamond.


It's a small feature, but for folks (like me) who wait until the end of the year to deal with expiring contracts, it makes it easier to keep your best players and still stay within your payroll budget.

Tuesday, December 9, 2014

Viewing Head-to-Head Stats (Baseball Mogul)

When I posted some news last week about Baseball Mogul Diamond, one of the responses was a request to add "hitter/pitcher results vs. each pitcher/hitter and hitter/pitcher results vs. each team".

As it turns out, we've been tracking player-vs-player and player-vs-team results since 2007. So here's some info in case you didn't know how to access this feature:

1. On the charts tab in the Scouting Report, click on the gray box that shows what is currently being displayed (batting average, 2 outs, etc.) and you will get a dialog box that lets you choose vs-player or vs-team:


2. Stats by each team's lineup versus the other team's pitchers are shown at game start (when selecting a starter or adjusting the lineup). For example, this screen shot shows a player comparing the career performance of two pitchers against the Yankees:


3. During game play, head-to-head stats are shown under the batter's scouting report.





Thursday, April 17, 2014

Creating an Expansion Team (Baseball Mogul)

This year's version of Baseball Mogul has a new feature: the ability to create a new expansion team and build it from players on current teams, using the current MLB rules for conducting expansion drafts.


When you choose "Expansion" on the New Game Dialog (above), there is a new button in the lower right with a question mark on it:


Clicking this button takes you to the Create Expansion Team dialog, where you select the city for your expansion team, and specify a team name, stadium name and division.

Note: The team name automatically includes your city name. For example, the above team will be called the "Las Vegas Dealers". You can use the League Editor to change this later (such as to the "Nevada Dealers").
After you click "Play", Baseball Mogul will automatically create a 2nd expansion team to ensure that there are an even number of teams. The computer analyzes the current city data and picks a city at random from among the best options.

Is it fair to assume that the "Oregon Cavemen" play in "GEICO Park"?
Baseball Mogul then hands you control of your team, at the beginning of the expansion draft.


Each of the existing teams is allowed to protect 15 players in the first round of the expansion draft, and 3 additional players in each additional round (and players drafted in the last 3 seasons, such as Manny Machado, do not need to be protected). For example, in the following list of third basemen, we see that the Yankees left A-Rod unprotected, because they would love an expansion team to take his contract off their hands:


At any point, you can use the Play Menu to let the computer complete the expansion draft for you. And, after the expansion draft is complete, you can still grab unsigned players to fill out your major-league and minor-league rosters.

Tuesday, September 10, 2013

Adjusting Rookie Talent Levels (Football Mogul)


Football Mogul 2014 has a new feature that lets you adjust the talent level, the talent distribution, and the improvement potential for each of the 15 position types in the game.

This is implemented by the addition of a file called DraftTalent.txt, located in the same folder with FB2K14.exe. If you have trouble finding this folder, you can choose "Open Game Folder" from the Help Menu.

DraftTalent.txt includes instructions, but I will include them again here for convenience.

The first 15 lines of DraftTalent.txt look like this:

  0,  0, 0, // QUARTERBACK
  0,  0, 0, // RUNNING_BACK
-30,  0, 50, // FULLBACK
-50,  0, 0, // TIGHT_END
-10,  0, 0, // WIDE_RECEIVER
 30,  0, 0, // TACKLE
 50,  0, 0, // GUARD
 70,  0, 0, // CENTER
-40,  0, 0, // DEFENSIVE_END
-60,  0, 0, // DEFENSIVE_TACKLE
-30,  0, 0, // LINEBACKER
  0,  0, 0, // CORNERBACK
  0,  0, 0, // SAFETY
  0,  0, 0, // KICKER
  0,  0, 0, // PUNTER

Each line refers to a position (shown at the end of the line, after the '//'). Football Mogul actually ignores all text after '//'. The position names are only there so humans know which line refers to which position. What Football Mogul does care about is the line order. The first line will always modify QB talent, then next line is for RBs, then FBs, and so on.

For each position:
First number = base talent level
Second number = talent level variation
Third number = "potential" (i.e. the difference between "Overall" and "Peak")

The default value is 0. A positive number indicates an increase. A negative number indicates a decrease.

Example #1: Your amateur draft has 10 QBs with the following Overall/Peak talent levels:
60/70, 63/73, 65/75, 67/77, 69/79, 70/80, 71/81, 73/83, 75/85, 77/87, 80/90

Increasing the first number will increase the entire talent pool, as in this example:
65/75, 68/78, 70/80, 72/82, 74/84, 75/85, 76/86, 78/88, 80/90, 82/92, 85/95

Increasing the second number will increase the talent level variation (while the average remains the same):
55/65, 59/69, 62/72, 65/75, 68/78, 70/80, 72/82, 75/85, 78/88, 81/91, 85/95

Increasing the third number will increase the amount that each player improves after the draft:
60/75, 63/78, 65/80, 67/82, 69/84, 70/85, 71/86, 73/88, 75/90, 77/92, 80/95

For overall talent level, changing a 0 to 10 *roughly* equals a 1-point change in the "Overall" rating.
For talent level variation, changing a 0 to 10 *roughly* increases the distance between the worst and best player by 1.

Note that college players are generated for the draft at the end of each regular season (i.e. at the start of the playoffs). So, in order to see your changes to DraftTalent.txt reflected in the game, you will need to make any edits (and save the new file) before the first playoff game.

Thursday, February 28, 2013

Real Minor League Stats (Baseball Mogul)

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.

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 MLB.com.

Sunday, March 25, 2012

Win Expectancy (Baseball Mogul)

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

Strike Zone Heat Maps (Baseball Mogul)

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
Wow.

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

Pitch Tracking and the "Charts" Tab (Baseball Mogul)

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: