Axiom Verge is a metroidvania game created by Thomas Happ and released in 2015. This TAS completes the game as fast as possible in the speedrun mode. This mode shows an in-game timer, disables all cutscenes, and uses a fixed seed for the random number generator. This TAS starts at a slow pace, but once the drone-swap ability is acquired, movement changes radically.

Game objectives

  • Emulator used: libTAS 1.3.2
  • Takes damage to save time
  • Uses a game restart sequence
  • Genre: Platform, Action, Adventure

Framerate issue

Like many modern games, Axiom Verge has framerate-independent physics, and an in-game option to deactivate vsync. Unassisted speedrunners have witnessed that having the game running at a high framerate makes the Laser Drill, the Address Disruptor (glitch gun) and the Red Coat damage more efficient, thus top speedruns are currently done with vsync off. I could confirm this behavior, and interpreted it as followed:
Taking the Drill as an example, it is considered as a weapon that hits continuously (every frame). But targets (enemies, blocks, etc.) have an invulnerability period after each hit of the Drill. When the Drill hits, the target has a variable that is initialized to the invulnerability time, 1 second for example. Then every subsequent frame, this variable is decremented by 1/fps. When it reaches zero, the invulnerability period ends. As a result, the effective invulnerability period for this target took 1 second + 1 frame! This extra frame might seem small, but when invulnerability periods are short, it makes a significant difference. The actual invulnerability time (without the extra frame) of the Drill is 0.167 s, so the effective invulnerability period becomes 0.184 s at 60 fps and 0.168 at 1000 fps.
I could derive a formula from the values observed from the RAM watch. Here is a plot of the effectiveness of the Drill with one collected Power Node. x-axis represents the framerate in Hz and y-axis represents the number of destroyed blocks per second. This formula did match with measures from the game, except at the discontinuity points where real measure could take either the low value, the high value or a value in between. This formula converges to 3 blocks per second, which should be the intended value. If we remove the extra frame from the effective invulnerability period, we obtain this plot.
For this TAS, I decided to take advantage of it. The default value of 60 fps gives a bad outcome (2.5 blocks per second in the above example). However, I didn't want to take very high value because it would significantly slow down the process of TASing. As a consequence, I decided to make this TAS at 120 fps. It is a common framerate value, it provides a good outcome (2.86 blocks per second in the above example) which is close to the maximum value while still being a low framerate. I realize that this is an arbitrary decision, but I find legitimate to save time by tweaking the framerate because from what I understand, we are getting closer to the intended game behavior by having high framerates. Also, I didn't have TASVideos rules or guidelines to provide some grounds at that time.

Weapons

Here are the stats of the weapons used in this TAS. Frame counts are given for a game running at 120 fps.
  • Axiom Disruptor (base weapon): base damage of 20, cooldown of 18 frames
  • Nova (purple shot) - main projectile: base damage of 30, cooldown of 24 frames. There can be only one projectile on screen
  • Nova - shards: base damage of 18 per shard, cooldown of 48 frames (24 to fire the Nova and 24 to split)
  • Kilver (green burst): base damage of 34, cooldown of 36 frames
  • Drill: base damage of 18 (fully deployed), cooldown of 21 frames
  • Drone Drill: base damage of 12, cooldown of 21 frames
  • Red Coat: base damage of 30, cooldown of 18 frames
From the three weapons, the Nova has the highest dps, but requires to fire near the target to only have one projectile on screen. The Nova shards can deal even more damage, but there must be at least 4 shards to hit to be worth, which can only be possible if the target is moving towards the shards.
Each Power Node increases the damage of each weapon by 50% of base damage, which makes them worth taking.

Drill combo

It is possible to add Drill damage in between two shots of a weapon for extra damage. The Drill takes 10 frames to fully deploy, and then 21 frames to retract. The more deployed it is, the mode damage it deals. However, when the Drill is deployed, we cannot use our weapons. The above weapons with the Drill becomes:
  • Nova + Drill: base damage of 30+18=48, cooldown of 31 frames (it is better to fully deploy the drill even if the cooldown is higher)
  • Kilver + Drill: base damage of 34+18=52, cooldown of 36 frames

Dual drilling

The Drill and the Drone Drill have distinct cooldowns, so it is possible to constantly swap between the character and the drone to drill with both.

Save warps

The game saves each time you collect something. When you die or reload a save, you keep everything you collected. This behavior allows us to use save warps to skip portions of the game. The biggest one is skipping the Grapple. After collecting the Address Disruptor, we are supposed to collect the Grapple, so that we can backtrack all the way to the beginning, where the next area is located. Instead of that, we never use a save point, we don't take the Grapple and we reload our save which sends us at the beginning of the game, very close to the next area.
Also, after the Vision boss, the game registers the save location at the save point in the bottom of that area. This allows us to save warp multiple times to that location without having to save there (saving animation is quite long).

Drone Teleport techniques

When the Drone Teleport is taken, the fastest way of moving is by constantly launching the drone and teleporting at the drone position, with dashes in between. The game implements a long cooldown between drone launches, but this cooldown can be nullified by using the Drill or the Address Disruptor. There is still another cooldown left of 21 frames between drone launches. Also, the dash cooldown is 72 frames, which is not a multiplier of 21. So, depending on the situation, movement will be:
  • (drone launch, wait 21 frames, deploy and teleport) four times, then dash
  • (drone launch, wait 24 frames, deploy and teleport) three times, then dash
The main problem with Drone Teleport is that the character gains height, and ultimately reaches the ceiling, which prevent teleporting. So height is lost either by launching the drone downward, dashing downward or delaying the drone launch.

Address Bomb skip

There is a corrupted wall in Eden which requires the Address Bomb to pass. However, the wall is two tiles long. So after taking damage to benefit from invulnerability, we can go through the wall with the Trenchcoat, thus skipping the need for the Address Bomb.

Door glitch

By dashing with the Red Coat at the same frame as entering a Boss door, the character will continuously dash during the boss cutscene. This is used in Xedur 2 boss room to reach the other side faster.

Improvements

  • Some top-door transitions where I press up might be non-optimal. Holding up extends the hitbox of the character, which makes the transition longer.
  • It should be able to shoot more Nova-shard shots to Xedur boss, but it is really precise.
  • I couldn't save a phase on Sentinel boss, but maybe by modifying how the first phases are handled, could it be possible?
  • I used the full life bar multiple times, but skipping the Health upgrade might still be faster.
Huge thanks to the Axiom Verge speedrunning community for suggestions, feedback and support!

feos: Hoo boy, the future is now... Judging...
feos: Great movie, I was waiting for it for years. Everything seems good and sensible, even the framerate! Accepting to Moons.
fsvgm777: Processing.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15576
Location: 127.0.0.1
This topic is for the purpose of discussing #6158: keylie's Linux Axiom Verge in 27:44.38
Patashu
He/Him
Joined: 10/2/2005
Posts: 4043
I've already watched this TAS and it's great. In true metroidvania TAS, it goes from walkathon to a blur of maximally exploited movement techniques, and combat is unbelievably fast.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
Great job with the run! The game is not the best Metroidvania out there, but it's cool to see the movement tech at the end stages of the run. The boss fights are incredibly fast.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Joined: 6/4/2009
Posts: 893
well, i did not expect that game to get tased so fast. axiom verge is for me one of the best (if not the best) metroid clone out, emulating almost perfectly the ambiance of the original one, (the author even made some metroit hacks before doing thing game),and seriously this run gives it justice, i'm surpised on how much the nova was used over the kilver the normal weapon used in speeduns) but math being maths i'm sure it's faster. easy yes vote, and can't wait to see a 100%... also little random trivia: the health bar beat to the BPM of the song played
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
Just a few seconds in and it already looks like a Metroid reskin. The TAS looks pretty good to me. Near the end is where things get very interesting, with all the Drone Teleport going on.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
There's an interesting question how we should branch this movie. On one hand, it uses a secondary game mode available from the start, which we usually label. On the other hand, that mode was explicitly designed for speedrunning, and it makes the most sense to use it for speed oriented playthroughs. However, when we decide if anything even needs a branch label at all, we ask ourselves if that mode alone could be the only difference between 2 branches published alongside each other. At this point, it's highly unlikely that we will have speed oriented movies of this game playing these 2 modes and having no other difference. Just like with game versions, there has to be significant gameplay difference, or a specific trick unique to one release. If the main mode has something like a game breaking glitch not available in the speedrun mode, it could be published separately. But it'd be labeled according to the glitch, not to the mode. If the same glitch is then found in the speedrun mode, and it's yet again faster than in the main mode, the main mode run would be obsoleted. So far it doesn't sound like the game mode can ever be a defining factor for a branch for this game. Which means that we shouldn't put it in branches.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 6/4/2009
Posts: 893
well a much as i like the story,a "normal mode game" would simply skip the few cutscenes there (and that are not sequence breaked by the infinite drone jump) but there is a forgoten factor : speedrun mode have a unique common "seed" while normal mode have randomised "secret glitch world" and a unique randomied "strong weapon" since both are skipped and exept if we find a way to abuse cutscenes, there should not be a branching needed exept the classic any% & 100% (map + items)
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15576
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. ---- [3842] Linux Axiom Verge by keylie in 27:44.38
Active player (437)
Joined: 4/21/2004
Posts: 3517
Location: Stockholm, Sweden
Well, it took me years to stumble on this game on my Switch but what a delightful experience it was. I had a blast playing it. To my surprise and delight, I also found this tas :) Thank you keylie for this wonderful tas. When you got the lasso thingy, the whole game just kneeled before your might :) I was wondering if you had any plans on tasing a 100% run? While I am at it, is it possible to tas Little Nightmares?
Nitrogenesis wrote:
Guys I come from the DidyKnogRacist communite, and you are all wrong, tihs is the run of the mileniun and everyone who says otherwise dosnt know any bater! I found this run vary ease to masturbate too!!!! Don't fuck with me, I know this game so that mean I'm always right!StupedfackincommunityTASVideoz!!!!!!
Arc wrote:
I enjoyed this movie in which hands firmly gripping a shaft lead to balls deep in multiple holes.
natt wrote:
I don't want to get involved in this discussion, but as a point of fact C# is literally the first goddamn thing on that fucking page you linked did you even fucking read it
Cooljay wrote:
Mayor Haggar and Cody are such nice people for the community. Metro City's hospitals reached an all time new record of incoming patients due to their great efforts :P