My Friend Pedro is a flash physics based shooter-platformer which went on to become a much more popular, commercial game. Many of the ideas from the full game can be seen in the flash "prototype", albeit in a more basic form. This doesn't make the game any less of a challenge to optimize, however!
Game objectives
- Aims for fastest time
- Takes damage to save time
- Keeps on rollin' rollin' rollin'
Comments
The movement in MFP consists of walking (slow), jumping (slow) and rolling (fast!!), so the main optimization challenge comes from maximizing rolling time. Additionally jumping out of a roll will propel the main character in the direction he wasfacing during the roll, making some angles to jump out at better than others.
Stairs cannot be rolled up, so getting the character up on his feet quickly is crucial, as landing on them in any position that isn't "straight up and ready to land on his feet" will cause the character to partially clip into the stairs and stop momentarily.
The last movement-relevant ability is slowing down time. Generally it's a good idea to minimize the usage of the ability as much as possible since, well, slowing down time is pretty slow. It does, however, allow the character to rotate faster in the air, which is occasionally used to line up walljumps better. Time slowdown also appears to be able to extend some jumps horizontally and is used twice throughout the run for platforming skips.
This run does not utilize the wall-clipping glitch RTA runners use by changing the browser tab in focus, as I'm not sure it's even possible in ruffle. I admit I haven't tried, mainly because I think omitting that glitch makes the run more interesting.
Stage by stage comments
Tutorial
The most text-heavy level, serves as an introduction to all the game's basic mechanics. The main optimization here is jumping into cutscenes at good angles, forcing the character to continue rolling briefly while control is already taken away for dialogue.
Level 1
The first level is pretty straightforward. I make sure to minimize air time and maximize rolling time, as well as shoot any enemies in the way when convenient. The enemies can't block me and for the most part can be ignored, but I still tried to avoid taking unnecessary damage where possible. Halfway through you can see the first slowmo skip, doing a precise roll-jump off the fence to make it to the balcony and skip a little walljump section.
Level 2
Level 2 opens up with a forced fight, where all enemies must be killed before the elevator allowing me to progress comes down. The enemies die to one shot to the head, but there is a fairly large window right as they spawn where they will absorb bullets and not die, no matter what, so I needed to delay my shots just enough to make sure I don't fire any unnecessary bullets and kill them as early as possible. The rest of the level consists of simple movement, until the final elevator where I do a walljump to hit the level end trigger a tiny bit earlier.
Level 3
Once again, just rolling as much as possible and shooting enemies where it doesn't lose time to do so.
Level 4
Level 4 starts with a pretty tough series of walljumps. Walljumping in MFP works similar to jumping out of rolls, that is the angle you approach the wall at determines the angle at which you go after the jump. Generally the character will jump at a wall oriented straight up, and slowly tilt away from the wall, allowing me to jump off it. This however can be sped up greatly by jumping out of a roll at a good angle, which will make the character approach the wall feet-first and allow jumping off right away. I break my roll in a couple spots to better set up for the walljumps ahead.
Afterwards, I use a 1-frame tap of the slowmo button to rotate faster in the air and set up a walljump chain, rather than jumping all the way up to the ledge and jumping off it normally, saving me some time.
Finally, on the one tunnel that goes left I perform a zip, simply done by jumping out of the roll in the low ceiling area, once again with a proper angle (this trick is not seen in the my encode, as it was a last minute improvement I found that saved a handful of frames, and so I didn't bother re-encoding), and then I do the second slowmo skip. This one saves a lot more time than the first one, as it skips a quite lengthy walking section.
Level 5
The last platforming level, short and sweet. I do two more 1-frame slowmo aligns for walljump chains and another leftwards zip.
Boss
The boss fight consists of 3 attacks, repeating, meaning there's no RNG to manipulate for a better pattern. I start the fight by pre-firing a shotgun shot so that it connects as soon as the boss becomes vunerable, then spam knife attacks as they're the best DPS available, switching to the rifle whenever I need to get out of range of the knife.
Possible improvements
The game's movement system is surprisingly deep! I'm sure there's better ways to set up the jump angle for the walljump sections, as well as one particular room in level 2 (big, white room with a fountain in the middle and a chandelier right above it) that I'm fairly confident is possible to skip partially by jumping to the balcony straight from the fountain to skip going around, but I haven't been able to quite make it. I'm certain as ruffle TASing develops more and stuff like ram watching becomes easier, finding improvements will become quite trivial.
Samsara: Claiming for judging.
Samsara: Fun parkour, fun gunplay (funplay, if you will), and that very stabby final boss fight against A Man, Just A Large Man, everything comes together into a small gift-wrapped box of candy - a sweet little package. Accepting!
despoa: Processing... As a playback note, you have to add the following parameters for the movie to sync:
--width 900 --height 600
.