About the Game:
Ice Cream Castle is a homebrew platformer made by David Couzelis. You play through a single short level avoiding lasers, spikes and saws. This game was originally made for the PICO-8, but this TAS is of the Game Boy port.
About the TAS:
This TAS aims for fastest completion, which means beating the level as fast as possible.
Gameplay:
We start by waiting for the lasers to clear before walking through them. Then we jump onto a ledge and turn left. After this, we jump over two rows of spikes, with the ceiling slowing us down a little bit near the end of this part. Next, we jump onto another ledge and turn right. Finally, we jump over more spikes, wait for the saw to move to the left before jumping over the last spikes and complete the level.
Thanks for reading.
This is an interesting case. Due to the movie being so short, I would expect that there shouldn't be anything that can be optimized.
Looking into the game (and its
source code), there appears to be "subpixels" used for movement. For this, I wrote a
lua script to show the position and effective speed values. The player moves by 0.75 pixels for each movement frame. However, if the player is pushing against a wall, then the speed is modified by 1 pixel in the opposite direction. So if you're moving 0.75 pixels rightwards, and then you push against the wall, you end up moving 0.25 pixels leftwards (0.75 - 1 = -0.25). This is until the player is outside of the wall, then the game allows for moving 0.75 pixels again, then pushes you out in the same manner.
This movie often pushes up against walls while waiting for the player to fall down to the point they can move again. In theory, with this knowledge of movement, this movie should be improvable.
However, as the game is often waiting against obstacles to move out of the way, this doesn't actually end up helping much. The only place it could matter is the final jump, which pushes rightwards on a wall, waiting for the player to fall down enough so they can move rightwards. If your subpixel position is off, you will lose a few frames. However, it so happens that this movie happens to be aligned in a way where the perfect positioning happens regardless, resulting in no timeloss, and as far as I can see, a perfect time.
Accepting for fastest completion.