Emulator and game files
- ruffle_ab - fork of Ruffle with a patch for this game. Discussed in the original submission and here.
- bootstrap.swf - original MD5: d7f070c6b0a1aeca6aeb542c35b08288
- AstroBarrier.swf - original MD5: 4902abc3997f3cfa2401948314c7f747
- locale.swf - MD5: 54a2fa6128751ed089e8832d1ae1d999
File names must match.
With FFDEC:
- bootstrap.swf has been modified by removing line 1 of scripts>frame 1>DoAction
- AstroBarrier.swf has been modified by removing line 14 of scripts>frame 1>DoAction, and changing the value of the
isMember
variable on line 15 of scripts>DefineSprite (51)>frame 1>DoAction totrue
.
locale.swf is stored in /lang/en/.
Please let me know if you have any problems replicating this.
Comments
Astro Barrier (or Astro-Barrier) is one of Club Penguin's original minigames, released in August 2005. The final 10 levels (31-40) were added in July 2006. It's quite a simple game: Move your ship left-to-right, and shoot at the moving targets. Only one shot may be active at a time. Later levels introduce additional mechanics like extending targets and turrets.
Ruffle is running bootstrap.swf in order to properly load the text, as this is how it was in Club Penguin. It completes levels 1-40, which is the fastest possible completion without using the level skip hotkeys (see section Why does it start at level 30?). I TASed almost all of this last year on the 2006 version, but didn't submit due to the fork of Ruffle being necessary. As it was recently deemed acceptable, I synced it for the modern (2014) version which saved 11 frames.
Techniques
The bulk of optimisation is figuring out the best order and time to shoot the targets. Your position between levels isn't reset, so finishing a level on one side of the screen may be slightly slower, but make the next level much faster due to the better starting position. There is also a fake "next level loading" screen that can be skipped with Enter. Sometimes it's better to leave this up for a few frames to be in a better position for the next level.
Transition shots
Any active shot at the end of a level carries over to the next level. Usually this isn't possible, but there are a few places it can be used: on level 5's continue screen, on tutorial screens, and with turrets, which shoot at the same time as the player. These shots add a lot of possibilities to routing, especially in the later levels.
Improvements
I don't know of any improvements. I'd very much like this game to be frame perfect. Maybe brute forcing it would be a possibility in future.
Special thanks
Thanks to site staff for accepting the Ruffle fork, and feos for guidance on movie branches. And to whoever judges this one.
feos: Claiming for judging.
feos: fsvgm777 confirmed that the problem I'm having is uncommon, so it should be okay to accept this run as a standard branch.
fsvgm777: Processing.