Microsoft Baseball 3D
This page is part of the History Of Game AI project curated by the AI Game Programmers Guild. |
Microsoft Baseball 3D | |
---|---|
![]() | |
Developer: | WizBang! Software Productions |
Publisher: | Microsoft Game Studios |
Year: | 1998 |
Platforms: | PC |
Genre: | Sports |
AI Era: | Strategic |
Microsoft Baseball 3D (PC, 1998) was the first PC baseball game published by Microsoft Game Studios and was developed by WizBang! Software Productions.
The AI was primarily controlled by the AdLib scripting language engine (created in-house by Rob Duisberg). Steve Rabin was responsible for the baseball player AI, Vikki Zarkovich programmed the pitcher AI, Rob Duisberg wrote the announcer play-by-play AI, and Norm Sohl wrote the season simulator. From start to finish, the game took 2 years to complete (1996 to 1998) and was based off of WizBang's HyperBlade engine, which included AdLib.
Contents |
Description of AI Behavior
The AI was intended to replicate realistic baseball player behavior, avoiding anything that would be uncharacteristic of real baseball players. Decision making during plays was designed to be optimal, however AI player performance was guided by actual player statistics (accuracy of throws, running speed, etc). The player look and feel was designed to be highly realistic with several key players on each team sporting texture-mapped photo likenesses. In the quest for realism, some of it fell into the uncanny valley as motion captured animations/transitions were sometimes clunky or jarring and player locomotion was somewhat odd looking due to the foot planting locomotion engine (see below).
Notable Behaviors
The key notable behavior was how the baseball players could adapt and cooperate regardless of the situation, due to a central manager that enforced good cooperation. For example, the human player could have the AI play out of position to the extreme right or left and the system would cope and still work reasonably well. This is described in more detail in the AI Player Coordination section.
Architectures
AdLib Scripting Engine
This section is based on first-hand knowledge by AIGPG member, Steve Rabin. ![]() |
The individual player behaviors were basically state machines with about 20-30 states each. Originally each position had it's own state machine, but since any player could theoretically play any position, the final design had only 4 state machines: Outfielder, Baseman, Pitcher, and Catcher. In retrospect, there was still too much duplicated code and it would have been better to have broken up each state machine into specific tasks like Cover Base, Intercept Ball, or Rundown Chase (and then switch between state machines as needed).
AI Player Coordination
This section is based on first-hand knowledge by AIGPG member, Steve Rabin. ![]() |
First, a prioritized list of tasks were composed based on the current game world conditions (location/trajectory of the ball and base position of runners). For example, if the hit was a line drive between 1st and 2nd with no base runners, then the list of prioritized tasks would be: Catch the ball, Backup the catch, Cover 1st, Cover 2nd, Cover 3rd, and Cover home. The next step is to assign each prioritized task to the best candidate for the job (based on their ability to quickly accomplish the task). The highest priority task "Catch the ball" might be assigned to the First Baseman if he could get to the ball first. The second highest priority task "Backup the catch" might be assigned to the Second Baseman in this case. The third highest priority task "Cover 1st" might be assigned to the Pitcher. The fourth highest priority task "Cover 2nd" would likely be assigned to the Short Stop. The fifth highest priority task "Cover 3rd" would be assigned to the Third Baseman. Finally, the last task "Cover Home" would be assigned to the Catcher.
This Task-Based Assignment algorithm was used for every play including odd situations such as rundowns. The manager would revisit job roles whenever the situation changed significantly (such as the ball was caught, the ball changed owners, or the base runner situation changed).
Animation
This section is based on first-hand knowledge by AIGPG member, Steve Rabin. ![]() |
Locomotion
This section is based on first-hand knowledge by AIGPG member, Steve Rabin. ![]() |
Post-Mortem
What Worked
AI Player Cooperation
This section is based on first-hand knowledge by AIGPG member, Steve Rabin. ![]() |
Prototyping Behavior
This section is based on first-hand knowledge by AIGPG member, Steve Rabin. ![]() |
AdLib Scripting Engine
This section is based on first-hand knowledge by AIGPG member, Steve Rabin. ![]() |
What Didn't Work
AdLib Scripting Engine
This section is based on first-hand knowledge by AIGPG member, Steve Rabin. ![]() |
Lessons Learned
This section is based on first-hand knowledge by AIGPG member, Steve Rabin. ![]() |
Reception by Public
The game came out to mixed reviews, however most consumers of the game received the game for free bundled with a 3D graphics card, resulting in over a million copies of the game produced.
References
- Making the Play: Team Cooperation in Microsoft Baseball 3D, Steve Rabin, Computer Game Developers Conference (CGDC), 1998
External Links
(ADD LATER)