Raider: Episode 1 is the first episode of a platformer series developed by Pseudolonewolf, a Flash game developer best known for the MARDEK RPG series. This game follows the story of an alien space pirate named Arkus Zei. The series was planned to consist of 5 episodes, but only 2 episodes were released. In this TAS, I complete the Beginner difficulty as quickly as possible.
I've wanted to TAS this game for a long time, even before Flash TAS-ing became a reality. Well, I've wanted to TAS Flash games in general, since they were the ones I grew up with. This year I decided to finally get back to TAS-ing, and I was pleasantly surprised at the tricks I discovered and probably wasn't documented anywhere. Enjoy!

Information

  • Emulator used: libTAS 1.4.7 + Ruffle nightly 2024-09-01
  • Option: --no-gui -g gl (the -g gl part might not be necessary)
  • SWF MD5 hash: bc03b2160d5a641bcec68dd4d56dae56

Game objectives

  • Fastest completion
  • Uses the easiest difficulty
  • Takes damage to save time

Basic Mechanism

Difficulty

This game has three difficulty modes. There are several differences, but the ones relevant to TAS-ing are:
  • Beginner: start with 7 HP, and spikes deal 1 damage.
  • Intermediate: start with 5 HP, and spikes deal 2 damage.
  • Expert: start with 3 HP, and spikes deal full damage. Requires beating the intermediate difficulty to unlock.

Walking

Horizontal movement has a slight acceleration, but bumping into a wall doesn't reset the speed. Falling straight from the floor has no acceleration, so you don't need to jump off every ledge.
On the floor, halting has a larger deceleration than turning around. (Not sure about in air; that one didn't matter that much in this TAS so I haven't dug deeper)

Jumping

Jumping has a slight deceleration near the end, but hitting a ceiling doesn't reset the speed, just like walking.
Jumping is a bit restrictive in that you have to be touching the floor or holding(climbing) a ladder for 4 frames before jumping again. That's why it looks like I'm jumping suspiciously late in some places, but I'm actually jumping at the first possible frame.

Attacking

Arkus can swing his sword every 16 frames, and shoot every 10 frames. It takes 1 sword or 3 bullets to destroy a robot or a turret. Skeletons take 3 swords, and are immune to bullets. Ghosts (except the boss) are immune to all attacks.
Any attacking animation on the floor prevents walking; even if you jump immediately, you'll halt for 4 frames due to the jumping delay. Therefore, it's important to attack fully in air for optimal movement.

Pickups

Destroyed enemies can drop a pickup that restores health: one restores 1 HP, and the other restores full health.
Pickups are determined by an RNG that advances at every kill, so you can't kill enemies on different frames and get different results. It can instead be manipulated by changing the initial system time, or killing more or less enemies.

Tricks & Glitches

Clipping

Between a room and the room directly above it, the spawn point is slightly below the top of the topmost tile, and the room transition trigger is slightly above the top of the topmost tile. The same is true for the room below it, just in the other direction. This allows the following clipping glitch:
  • Walk on the ceiling block, then jump to enter the upper room on the wrong horizontal position.
  • After falling back, Arkus will spawn inside the ceiling.
  • If the ceiling is 1 block high, Arkus then falls through the ceiling. Alternatively, if he is at the end of the room, he gets pushed out of bounds and falls until he hits another room transition trigger, either horizontally or vertically.

Standing next to spikes

There's a tiny space next to each spike, in which Arkus can stand on the block directly below it (unless there is another spike next to it, of course).

Door animation skip

If Arkus enters a door while he is invisible due to I-frames, the animation of walking through the door will be skipped.
Since getting hit has a longer "animation" than the door one, it's not worth it to take an extra hit just for this trick... fortunately.

Room by room comments

Surprisingly, clicking the start button allows the transition countdown to start a few seconds faster than pressing A.

Room 8

It's not worth trying to destroy either turret without taking damage; even if I wait a few frames to avoid the second hit, there wouldn't be enough time to destroy the second turret before it shoots another bullet, so I have to either also avoid that one or take a hit anyway.

Room 9

No matter how I land on the third moving platform, I missed the gap by a few pixels.

Room 11

This is the first room where clipping is performed. An alternative strategy would be to go down the intended path, taking damage along the way. Unfortunately, my best effort still missed the moving platform by a couple pixels. If it succeeded, it would have saved 1 second since every room entry resets the room's cycle.
It's also not possible to bypass the platform entirely by clipping somewhere to the left, because the room transition trigger isn't there, as room 10 is horizontally narrow.

Room 13

An alternative strategy would be to move left immediately and take damage, but ultimately the bottleneck is to avoid the ghost. While not very noticeable in the movie, I actually had to stall for 2 frames right before it.
After flipping the switch in room 14, you will eventually emerge out of the door in room 12. It's tempting to die and respawn at the checkpoint in room 12, but that resets the switch.

Room 17

Using the rightmost ladder instead of taking the second damage was slightly slower (4 frames? I don't remember exactly). Avoiding the first damage was also slower.
For climbing the long ladder, I found that jumping every 17 frames is optimal.
Above this room is one of the 4 secret rooms with a bonus relic. I use that room to clip through the ceiling.

Room 18

The only room where the door animation skip is performed, since I need I-frames to jump through the upper ghost anyway. I wait a bit before jumping so that I land on the platform after getting hit.

Room 19

I ride the slowly moving platform to the end because it has a secret: after sinking, it returns and rises all the way up, giving access to another secret room. I instead use it to clip and fall all the way down to room 22. The obvious alternative of just damage boosting through rooms 19-21 was 3 frames(!) slower. (video coming soon...)
Fun fact: you can warp back to room 4 if you clip the wrong way.
I also manipulated luck to fully restore the HP, which was needed to test the alternative strategy. That's why the system time is set to 1234 seconds.

Room 24

Waiting for the ghost to move away instead of jumping off the ladder took the same amount of frames.

Room 25

Waiting for the first ghost to move away and jumping was a few frames slower.

Boss

Wraith starts with 50 HP. He can be hit every 6 frames, and only blaster (gun) can deal damage. I start with 6 damage on the first cycle, then 10 damage per cycle.
At 20 HP or lower, Wraith enters the second phase, consisting of a long invulnerable wave of electric orbs before doing the first phase attack again. For some reason, the number of first attacks before restarting the second attack depends on your position: you have to be on the left side of the screen for him to do the first attack twice instead of once.
I deal 11 damage during the first cycle of the second phase, but wasn't able to replicate it during the first phase. The main obstacle is to find a set-up that satisfies both of the two conditions that seemingly conflict with each other:
  • The last shot of the previous cycle should be made close to the middle of the room and very high up in the air, since Wraith would be ascending back to the top of the room at that point.
  • The first shot of the current cycle should be made very early so that I can shoot 11 times, which also means that I have to be near the end of the room and somewhat high up in the air so that the bullet actually hits Wraith.
But the first condition doesn't apply to this cycle, allowing me to deal 11 damage. Anyway, the last cycle focuses on dealing the remaining 3 damage quickly instead of firing 3 times early.

End

Input ends as soon as skipping the final dialogue box.

Possible Improvements

Apart from further micro-optimizations, room 11 (first entry) and the boss fight have potential for better strategies, as elaborated above.

Human Comparison?

Real-time records for this goal seem non-existent. Kongregate has no scoreboard for fastest completion, and the only entry in speedrun.com obtains all relics in 9:17. I found two maximum score runs, which involve obtaining all relics on the Expert difficulty as quickly as possible, and this TAS looks clearly faster than both runs in the common sections:
The highest score recorded on Kongregate is 287 points. I haven't looked into how scoring works in terms of time. If I do an "Expert, all relics" run someday, hopefully a more concrete comparison can be made.

InputEvelution: Claiming for judging.
InputEvelution: Optimisation looks good. Accepting.

despoa: Processing...


TASVideoAgent
They/Them
Moderator
Location: 127.0.0.1
Joined: 8/3/2004
Posts: 17972
Location: 127.0.0.1
This topic is for the purpose of discussing #10170: synabler's Flash Raider: Episode 1 "Beginner" in 05:00.550
synabler
He/Him
Editor, Active player (381)
🇰🇷 South Korea
Joined: 7/11/2016
Posts: 55
Location: 🇰🇷 South Korea
btw I just requested a username change, so if the author suddenly changes to "synabler", that's just me using a new name.
CoolKirby
He/Him
Editor, Experienced player (708)
Joined: 11/8/2010
Posts: 4270
Welcome back! Liked all the tricks and glitches you found in this NES-like platformer. Yes, Flash TASing is exciting for our generation, lots of untapped potential there still.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Location: 127.0.0.1
Joined: 8/3/2004
Posts: 17972
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [7037] Flash Raider: Episode 1 "Beginner" by synabler in 05:00.550