I was holding off on submitting this due to issues with movie rules and sync on official libTAS builds but it's April Fools so here we are
Environment
libTAS: 1.4.1 interim 1ad9949 or newer + SCUMMVM 2.2.0
OS: Ubuntu 20.04.2 LTS kernel 5.8.0-45
System: i5-9300h + UHD Graphics 630
libTAS options
Game Executable: usr/games/scummvm
Command Line Options: baseball (must launch scummvm once outside libTAS and select Add Game to add the folder where the backyard baseball game files sit)
To get encoding to work I also had to set SCUMMVM options stretch mode: center and Aspect Ratio Correction: on, but this does not appear to be relevant unless dumping an encode
Goal Choice
Backyard Baseball is one of the best and most well known kids sports games, being the first game in the Humongous Sports franchise and the first appearance of many famous characters including Pablo Sanchez, Pete Wheeler, Kenny Kawaguchi, and many more. The TAS follows the RTA "6 inning pick up game category," in which a pickup game of random teams of the kids is selected. The stadium can be chosen in RTA to use the faster concrete fields, but in TAS the stadium has little to no effect. A finished run of this goal simply has to win the pick up game (finishing the pickup game but losing does not count). The game -does- have a credit sequence that is reachable in the season mode, but there is no different gameplay in a full season except some slightly harder opponent batting RNG in the playoff/world series games and different stadiums (which again do not appear to affect TAS gameplay). This coming at the significant downside of the gameplay being repeated 21 times to get through the 14 season games, 2 best of 3 playoffs, and a best of 5 world series.
TAS route details
The cornerstones of this TAS are the escape button and the location of left button clicks. This being a SCUMM game, it is effectively an entire implementation of baseball shoved into a point and click adventure. Immediately off the bat we use escape twice to skip the Humongous logo and an opening credit sequence. We then click on the window to get to the pick up game menu and open the options. In the options we set errors off to eliminate error RNG, though hilariously errors can still happen rarely with errors off (mainly when players are facing away from the ball or are thrown the ball when very short). We turn on the pitch locator purely for entertainment value (the location of your pitches has little effect on AI gameplay as long as they are strikes and where you swing doesn't matter so the information is not useful to the TASer on either side). Last in the setup menu, we set difficulty to hard as the AI throws the ball sooner and faster and just generally reacts more quickly, getting outs and ending innings faster (compare with RTA where this is not certain to be helpful as you may need to reset way more to be able to score and prevent the opponent from ever scoring). In "Sound options" we turn off only the options that slow gameplay - the play by play and color commentators Sunny Day and Vinnie the Gooch and the player talk option; the rest of the audio of this game is essential and hilarious.
After starting the game by exiting options and clicking "play ball," we click "home" to swap to the home team. The ability to do this was discovered in 2019 by RTA Speedrunner Yellowfish, nothing in game readmes or the UI indicates that the word "home" is a clickable interface to switch home/away sides. We then click "play ball" again to advance to the meat of the gameplay.
Playing the Best Baseball of a Pitcher's Life
The starting second of the TAS used by libTAS is manipulated so that at this point the teams start with pitchers with fast animations and you have a first batter in one of the innings who can run reasonably quickly; Ronnie and Amir are known to have some of the fastest pitch animations, and Dmitri later will be able to run the bases. There is potential to manip more with startup time; there are some hidden game mechanics with players having on/off days that can make them run faster, and players supposedly have "on" days where they run faster/hit better on their birthdays, but these aspects are mostly irrelevant since almost everyone is instantly going to be getting out. One important aspect to research in the future may be that Amir tends to favor curveball pitches which are slower to than fastballs and are less consistent to hit causing longer delays setting up RNG, so it may be necessary to factor both windup animation length and fastball odds.
For the first six batters we're introduced to the basic cycle of the TAS: hit escape to cancel the batter's walkup animation to the plate (first frame this is possible is the frame where the batter's name appears in the stats at the bottom of the screen), and then either pitch the ball if in the field or wait for a pitch if batting. If open/center/closed stance needs to be changed to match an inside/outside pitch or a left/right curve, this must be done after the pitcher's windup begins or the pitcher will wait longer before throwing the ball. This also applies to choosing power/line drive/grounder/bunt options. An example of this is visible in Sally's at bat at the beginning of the bottom of the 1st inning. There is a -very- rare glitch known where a foul ball to the catcher can be called an out before the 3rd strike, but it is not known how to manipulate this. Whether a swing results in a line drive or ground ball or foul or strike is determined by RNG, with the timing of the swing determining whether contact is possible or not and which direction the ball goes, so the TAS is all about managing chained small delays to get that line drive RNG. For this TAS I set a bar for the RNG at making sure every at bat resulted in a low infield pop up or line drive. This is faster than other outcomes because the ball takes time to travel if a pop up is hit to the outfield, and if a bunt or ground ball happens and the batter is thrown out at first, the ball has to be thrown back to the pitcher before Escape can take you to the next batter or half inning.
Except for that One Run
The single run to win the game is scored in the 3rd inning. The batter is advanced with minimal timeloss by getting on base with the first batter of a half inning, and then advancing him one base at a time with sacrifice ground balls while manipulating the fielders to throw the ball toward first base. For the last batter it is necessary to make sure they reach 1st base safely so the run counts before intentionally stepping off the base to finish the inning.
For future reference: there is another glitch known to be possible with home runs. In a perfect TAS scenario, a home run might be on the surface considered suboptimal because the game sits doing nothing while the ball travels and you can't mash Escape to the next batter until the ball stops and a distance marker for the home run appears. However, on some fields a glitch can get the ball stuck not very far in the distance; for example in the shed in the center of Steele Stadium. If this could be done fast enough, it may be better than the time wasted while the ball is thrown back to the pitcher during the sacrifice plays.
The rest of the TAS continues as previously described getting outs as quickly as possible. A new quirk arrives in the last at bat as input is not needed to advance to the screen with the final score, so the last input can be moved back to the input to throw the final pitch, at which point we don't need to manipulate anything beyond to make sure that the hit is able to be caught without any input. The last pitch also needs one more frame of input than you might expect because the location of a pitch is actually read the frame after the click to pitch, and we do need to throw a pitch that is hittable (in other words the location of the mouse cursor is essential game input on its own for the frame after clicking to pitch).
slamo: Ok, I didn't expect this to actually sync. I'm gonna pass this off so we can figure out what to do with it.
feos: This movie may involve quite some meta level discussion, so let me handle the boring nomenclature part.
feos: Canceling as discussed
here. Hopefully next libTAS release will also allow to set which system you're playing the game from, to let the user specify this for all the non-native-linux games, so that the site parser could also work with that info.
Whenever it plays on a libTAS release that implements the required functionality, this submission can be uncanceled and judged all the way.
feos: Replacing the movie with
one that works in latest libTAS release and has annotations. Not judging it until I finish my current judgments. If some other judge grabs it by then, I won't complain.
feos: Changing the platform to Windows since it's what the userfile intended to use. Still to be decided what it should be.
slamo: Judging for real this time.
slamo: So this is a bit of uncharted territory for the site. We have known for years that various source ports and other game engine replacements
work in libTAS, but we have never had a serious submission using one until now. ScummVM is quite stable in libTAS, and we've gotten multiple people to sync this run without too much trouble, so it deserves consideration.
There was some discussion about how ScummVM works in the submission thread. To summarize it, ScummVM is software that replaces the game's executable and attempts to run some reproduction of the game using the original game's data files. Because this software can add features and fix (or create) bugs, any game run in this software is not really the original game, but it is still a valid game in and of itself. Obviously we will need to keep an eye on the quality of any game engine replacement, but ScummVM is quite good and is even used in official re-releases of many games. Any game submission should have "ScummVM" as the version to distinguish it from the original version, and if the original version is submitted, we can then discuss which one is preferred. Official re-releases that use ScummVM should probably just be treated as an official game version under Linux.
The platform is going to stay Windows. The game had no official Linux release, and ScummVM is not really a "game", so it shouldn't be considered a Linux run. The movie uses data files from the Windows version, so it will be treated like a Windows game.
The optimization looks fine to me. The outs are fast, and the way you score the one run was actually quite creative. The home run sequence looks like it can be lengthy, so this was probably the right decision.
The goal is a bit of a weird one. "Pick-Up Game" is a separate game mode with an obvious ending, so that's good. There are settings in the game setup that can drastically affect this mode. 6 innings, hard difficulty, and errors off all serve to minimize the game time. However, the "Tee-Ball" mode is not selected. This mode appears to be shorter since you just hit a stationary ball with no pitching animations, but it's also far less interesting and would make the run a little too trivial to optimize. Regular mode is a far better representation of this game, is more technically impressive, and more closely resembles baseball in general. Our current Vault rules for sports games only allow for one game per series, so this is probably the best way to showcase this series. A full season run would likely obsolete this run, though. The publisher should look into shortening the branch name to just "Pick-Up Game", since it would be kind of arbitrary to have "6 Innings" in the branch name but not the other game settings.
Feedback was somewhat limited but not great. I'm going to say that this category is Vaultable for the reasons given earlier. Accepting to Vault.