Submission #8861: Merl_'s Linux Mobility "Contact Mode" in 05:45.80

Linux
Contact Mode
(Submitted: Contact Mode)
(Submitted: Mobility.x86_64 1.2.0)
libTAS 1.4.5
10374
30
14488
PowerOn
Submitted by Merl_ on 1/22/2024 7:51 PM
Submission Comments
Mobility is a precision platforming game with a focus on accessibility. In order to achieve this, each level can be played on any of four difficulty settings, allowing the player to customize their experience to be as hard or easy as they want. This TAS aims to complete the game with the lowest in-game time possible, while playing each level on the default "Contact Mode" difficulty.

Game objectives

  • Emulator used: libTAS 1.4.5
  • Finish the game while beating each level on Contact Mode
  • Optimizes for IGT

Comments

Game Information

In Mobility, you play as a spaceship repairman and you progress through the game by repairing spaceships which act as hub worlds for all the levels in an area. In order to fix a ship, you must complete at least half of all the levels available on that ship, and in order to beat a level, you must touch each platform in the level at least once. On contact mode, there are checkpoints in the levels that you can respawn at. In the final ship, you actually need to destroy the ship in order to free your coworkers, and then you fight against a final boss before the game ends. You cannot activate blocks from below, only by landing on them or touching the walls.

Version Choice

I chose to make this TAS for the most recent version of the game, v1.2.0. Any version after v1.0.4 would work, since that version added the ability to skip the "ship repaired" cutscenes and added the ability to see your final time in the credits. There are some other minor version differences, but I don't think any of them affect the final time of the run.

Branch

I chose to TAS the game in Contact Mode instead of the highest difficulty setting, Growth Mode, for a couple of reasons. Contact Mode is the main speedrunning category for the game, and is my personal favorite, so I wanted to make a TAS for it to see how low the time could go. Secondly, I think that the Contact Mode speedrun is a better category, since the ability to respawn at checkpoints and backtrack makes for a more interesting and fun speedrun.

Movement

There are a lot of different types of jumps in this game. On the ground, pressing the jump button will do a normal jump. If you land back on the ground and jump again, you'll do a double jump, which gives you more height. You can jump in midair to do a midair/spin jump, and if you jump while crouching on the ground you do a long jump. Long jumps are the fastest way to move horizontally, but they don't give very much vertical height. You can also jump while sliding on a wall to wall jump.

Stage by stage comments

The Beginning

This ship doesn't have any levels on it, instead it has a teleporter room that takes you to all the other ships in the game. In order to get to the teleporter room, I have to play through a short tutorial section, so I skip through the opening dialogue and long jump to the door to enter the tutorial. The first ledge is too far away to reach with a single long jump, so I do a spin jump immediately after long jumping to get more distance. The first part of this room is supposed to teach the wall jump mechanic, but wall jumping is slow here and I want to keep moving to the right as fast as possible. I do a long jump and spin jump to get more height and I graze the left wall while moving right to wall jump in the direction I want to go. The next wall is too high to clear without a wall jump. There's a pillar hanging from the ceiling that forces me to crouch to get under it. I do a long jump while under the pillar to get through it quickly since crouch walking is very slow. I slide down the wall while holding crouch to slide faster, and then do some long jumps to make it through the double jump tutorial. Normally you're supposed to do a double jump to make it through this section, since hitting the springs prevents you from getting in the hole in the wall, but the momentum from the long jump makes it barely possible to fit through. Double jumps aren't done very much in this TAS since having to do two consecutive normal jumps takes time to set up and the extra height is almost never needed. I do some long jumps and wall jumps to reach the top of the level, where I need to turn around and go left to reach the door. You accelerate and decelerate faster on the ground than in the air, so when long jumping onto higher ledges you lose some time by going back to your normal walking speed faster. I do a spin jump into the ceiling in order to keep my long jumping momentum for a bit longer. Once I'm in the teleporter room, I walk left before jumping in order to avoid grazing the wall and spin jump onto the teleporter. When you enter a room, there's a cooldown before you can enter the teleporter, so I pause the game to wait it out. This doesn't save any time RTA, but it does pause the in-game timer during the waiting period.

The Arrowhead

After skipping dialogue, I long jump to the left and use the spring to reach the door to the top wing. I cancel the momentum from the spring by wall jumping on the door platform, since I would overshoot the door otherwise. There isn't enough space to long jump on the stairs, so I do a double jump to climb up to the first level in the run, Beta. I do a glitch called dialogue skip here. Normally, the fastest way to get through dialogue is to alternate space and down on every frame to skip through all the textboxes. However, you can stop the dialogue from appearing at all in specific circumstances. If the dialogue appears when you spawn in a room after entering a door, pressing space during the room transition will skip the dialogue. This was done in the teleport room and will be done when entering The Starii later. In Beta, it's a bit more complicated since normally the dialogue appears when you select the mode you want to play the level on, but you can select the mode during the room transition too, causing the dialogue to appear and be skipped. In order to beat a level in this game, you have to touch every single platform in the level at least once. This is supposed to prevent major skips from existing while keeping the levels open, but there are still unintended routes you can take as long as you hit all the platforms. For example, after long jumping to get the right platform, I turn left and wall jump underneath the fourth platform and hit it while moving left before landing on the next platform and continuing the level. This wall jump is very precise, it's done on the last possible frame. Mobility has a lot of coyote time, and even the wall jumps have coyote time, which allows me to do a wall jump even though I'm not touching the wall. After the checkpoint the level is played mostly unintentionally as I graze against several platforms to activate them without slowing down. The last set of platforms is tricky. I can't activate both the platform on the right and the platforms on the left without slowing down a little, so in order to do it optimally I slide on the left side of the right platform instead of landing on it. Sliding on walls is slower than falling normally if you aren't holding crouch, but it doesn't fully stop your momentum. I crouch slide on the wall for one frame before releasing crouch, which lets me get lower to the ground before I lose momentum. If you're only a couple tiles above the ground while falling, the game will snap you down to the ground on the next frame. It would normally be slower to wait a frame before slowing down, but because I fall more before slowing I'm able to snap to the ground and activate the final platform a frame earlier. After I touch the platform, I pause the game and exit the level that way instead of waiting for the victory animation to play. While the screen is fading in, I turn the player around. You can only long jump in the direction you're facing, and the player spawns facing right after beating Beta. But even when the game takes control away from the player, you can still turn around, so I save a frame by turning so I can long jump immediately when I regain control. The route I take through the blocks on the overworld is important, I maximize the amount of long jumps I do on the way to Ligno. I climb up the platforms and enter the door.
I do the first fade cancel of the run here. I couldn't do this glitch in Beta since it would make dialogue skip impossible, but it's faster to do this in every other level. By using the arrow keys to navigate the menu while the screen is fading in, the screen will skip the fading animation. So I press up, down, and space on the same frame to skip the fading while also selecting Contact Mode immediately. This saves 5 frames in every level except Beta. In Ligno, I long jump to the right and slide down the wall of blocks to activate all the platforms, and do a wall jump to cancel spring momentum. This lets me land on the ground and long jump sooner. I do what looks like an unnecessary extra long jump, but it's actually faster. I want to slide down all the blocks without slowing down, but if I tried to do that I would be too low and have too much momentum to turn around and hit the left block and the right blocks. The extra long jump lets me build up more leftward momentum while grazing the top right block, and I hit the left block from high enough that I can make it to the bottom right block without slowing my fall. I then long jump onto the moving platforms and make sure not to walk on them while they're moving left, and slide down the right side of them to activate them. I then long jump onto the rightmost platform and backtrack to the end of the level.
The next level is Xenon. I do a couple wall jumps at the start and then I do a precise long jump and spin jump to reach the right wall. Normally, touching a wall would stop the momentum I get from the long jump, but you actually don't need to touch a platform to activate it from the side. If you get within a couple pixels, you can still technically contact it. So I'm barely able to activate the lower platform with a long jump while keeping all my momentum to reach the right wall and wall jump off it sooner. I activate all the platforms on the way to the moving platform section. I graze the first platform, land on the second one, and by doing a very fast turnaround I can graze the third one with a long jump and land on the final platform. From there I just do some well timed long jumps to finish the level.
The final level to do is in the bottom wing. I go to Neon. Neon introduces plasma conveyors, which accelerate you in the direction they're moving when you touch them. I use the conveyors to get more speed throughout the level. I skip landing on a spring before the first checkpoint, and do a skip before the second checkpoint. In the final section, I do some extremely precise platform grazing to finish the level quickly. After exiting, I skip the "ship repaired" cutscene and travel back to the teleporter room.

The Starii

When you enter a room, there's also a cooldown before you can pause, so I have to wait a bit before I can pause to wait for the teleporter cooldown. After entering the ship and going through the door and skipping dialogue, I head to the first level, Rails. Grind rails are introduced in this level (technically they appear in the overworld first though). Grind rails let you slide around super fast on them, but your acceleration is super slow, and you can't long jump off of them. Additionally, you can crouch when on sloped grind rails to affect your speed. On downwards grind rails, crouching makes you go faster, but it slows you down on upward slopes. At the start of rails, I actually want to turn left to do a long jump, but I can't due to the fade cancel, so I turn around and long jump at the start of the level. There's a long section to the right, but there aren't any platforms there so I just go down to the next section. After the checkpoint, I go to the right to activate more platforms, and I skip touching another checkpoint so that I can reset and go back to the first one. This lets me skip another grind rail platforming section. I then long jump off the platform and do a third skip to activate the last platforms faster by going around the back on them.
The next level I head to is Canis. Canis starts with some easy long jumps, before you enter a tube with springs in it which launch you to the top of the level. I do a wall jump while in the tube to manipulate my speed entering the plasma conveyor, and then I long jump at specific times to get the most speed on the grind rail. I do a skip here by doing the final section counter-clockwise.
I use the springs to climb up the long room to get to the next level, Aurum. The start of Aurum is very precise. Spikes have a slightly smaller hitbox than it looks like they do, so I can actually wall jump off the second platform at the start. I then graze the platform above me and wall jump off the left platform. After sliding down, I long jump left to the blocks and fall as long as possible before jumping onto the next platform so I land sooner. At the wall jump section I hit the top left wall so that I don't have to backtrack after falling from the top of the level, and I can graze platforms all the way down to the center, where I wall jump to hit the platforms I missed.
I do a double jump to get up to the grind rail at the top of the room so that I can ride it to where the final level, Ignis is. I jump up to the first platforms at the start, but then I long jump backwards and precisely squeeze between the platforms and the spikes and jump under the level into the spring tube that you normally take to finish the level. I go around the top and then do some precise long jumps and spin jumps to get through the tunnel optimally. I get a huge boost from the plasma conveyors and the grind rails which gives me enough speed to walk off the rail and onto the platform, and I jump in order to keep my momentum for longer. I then double jump and graze the walls to activate them instead of wall jumping, which is faster. I use the plasma conveyors to build up a lot of speed on the final rail and finish the level. After skipping the "ship repaired" cutscene, I long jump to the middle of the room where there's a one-way door that takes me back to the teleporter room.

The Meteore

This level was a nightmare to route. It has eight levels, the most of any ship in the game, and there are dozens of viable routes. Most of the levels that are slow to play are located very conveniently in the overworld, while the fastest levels are typically very out of the way. What I did to solve this was I tested how long it took to get from each level to every single other level in the ship, put them all into a spreadsheet, and wrote a computer program to test every single possible combination of routes. The result is that the route I use in this TAS is mathematically the fastest possible one. It was only one (1) frame faster than the second fastest route.
There's a huge conveyor above the door to the dinner room, which is supposed to force you to long jump under it. But if you get momentum you can reach the door without jumping. The first level I go to is Domum. There isn't much to talk about in the first half of the level, there's just some tight movement and platform grazing. At the bottom of the level, I use spin jumps to keep my long jump momentum for longer since the platforms are elevated, and I play the level mostly as intended except for a small skip at the end, where I'm able to graze the final platform early due to the small spike hitboxes.
The next level I go to is Liberi. A weird thing about this game is that when you're touching two walls at the same time, the right wall takes priority, which means that I have to do slightly different wall jump timings on both sides of the level, even though it is symmetrical. I do long jumps at the top of the level and graze the walls while not crouch sliding in order to let my momentum carry me over the next platform so I can land on the ground sooner. Since the level ends when touching the final platform on the right I don't long jump off the bottom platform and instead do a coyote wall jump.
The next level is Vectis, which is the shortest level in The Meteore. You're supposed to start in the center and go around the level like a spiral, but you can do the level out of order and save a ton of time. When I'm sliding down the wall at the right of the level, I actually stop crouch sliding briefly at the end of the slide to get a better position where I can still reach the block I need to hit with a wall jump, but I land on the ground sooner for a long jump. At the bottom of the level, I walk for a specific amount of frames before long jumping and spin jumping to get past the enemy as soon as possible, and I do some very precise wall jumps to barely get under the spikes. My spin jump doesn't refresh until I touch the ground, so I have to do some slow wall jumps in order to get enough height to reach the top of the level.
The next level, Gladio, has a ton of plasma conveyors and it requires some weird movement and positioning to do optimally. I don't cancel my spring momentum at the end with a wall jump, since there are conveyors which would fling me up. Instead, I fly into the ceiling and bonk and get pushed down by the plasma conveyors up there. I use a combination of grazes and coyote wall jumps to climb up the wall jump section faster, and I long jump to the moving platforms section. I walk on the platform for as long as I can while it's moving right, and long jump off as soon as I can reach the next platform without a spin jump. I do long jumps in the corridor section at the end to get through it faster.
On the way to the final level, Gloria, I do a long jump into the spring in order to get a lot of speed and height. This lets me reach the door platform without any wall jumps or slowdowns. There's an NPC right next to the spring, so I have to be careful not to trigger dialogue with it, since pressing down to crouch is also used to talk. I do a skip at the start of Gloria by jumping over the spikes at the start, and then I slide down the wall and land on the bottom row of platforms. Landing on the platform without jumping is very tight, so I can't turn around before I land, so I delay the long jump by a frame to turn. I reset after hitting the last platform at the bottom to go back to the start. I do a normal jump off the second platform in order to set up a spike clip. Because you snap to the floor right a couple frames before you would actually hit the ground, you can end up moving more vertically in a frame than you would normally be able to. On one frame, I'm just barely above the spike, and on the next I snap to the ground, passing through the spike unharmed. I do some funky wall jumps in order to get less height so I land on the ground sooner, and then I jump to reach the spring platform above me. I graze it and then fall into the hole on my right without hitting the ground. I do some long jumps and a wall jump to get to the last section. I carefully manipulate my position in the plasma conveyors so I land on the ground quickly and also move far to the left of the platform, then I long jump onto the final platform to finish. I use the plasma conveyors in the overworld to make it back to the teleporter very quickly.

Starfix HQ

While I was fixing The Meteore, a competitor has destroyed our ship and taken the crew hostage. It's up to me to save them by taking down the Starfix HQ once and for all. The route for this ship is not complicated. Like The Meteore, I need to beat five levels, but the final boss has to be one of them, and his level only unlocks after I beat four others. There are three "rings" to the ship, the outer ring, the inner ring, and the core. In order to get to the next ring, you have to travel through the previous one, and since you spawn in the outer ring it makes sense to just do the two levels that are there. Overworld movement in the inner ring is very slow and difficult, and is mostly vertical, so going down is quite fast, but going up is slow and tedious. There are two sides to the ring, so just picking a side and doing the two levels there is by far the fastest choice. The right side has the shortest levels so it's done in this TAS, and basically every speedrun of the game ever.
The first level to beat is Vertigo, an aptly named level with a lot of height. This level uses a lot of "consecutive jumps" where you do a jump and then spin jump on the next frame. Spin jumps give you less height than wall jumps and normal jumps, so if you do one the frame after a different jump, you actually get less height. In this level, you can fall down the first section faster after you wall jump. These jumps are done everywhere in the TAS but it's noticeable here. There are some small skips in the first half of the level, like doing a frame perfect wall jump instead of two wall jumps in the falling section, and immediately falling to the bottom of the level after the first checkpoint. There's a spring that takes you up to two blocks you are supposed to wall jump up, but I do a very precise skip here by abusing coyote frames. I walk off the lower block in such a way that it grazes the wall, then I do a coyote long jump. Then, because I grazed the wall, I have wall jump coyote frames and I do a wall jump on the last frame possible for more height. Then, I do a spin jump, graze the higher platform, and wall jump to reach the next section. There's also a small timesave when I'm walking off the platform. I'm able to turn around faster to walk off because I crouched for a frame, which stopped all my rightwards momentum. At the part where the platforms have spikes next to them, I do a long jump and spin jump to get on the first platform, and then I just normal jump to get on the next platform since I'm too far left to do anything else. My wall jumps are very low so I land on the ground sooner and can long jump to the end of the level.
On the way to the next level, Gold, I do a skip in the plasma conveyor section. There's a small loop de loop you're supposed to go in, but you can just hold left to bypass it. I do wall jumps everywhere to instantly accelerate in the direction I want to go whenever I enter a new conveyor. If I land on the moving platform before entering Gold, I'll lose all of my speed, so I have to overshoot it, but I get so much speed I slam into the wall. Once I'm in Gold, I use the conveyors to my advantage as much as possible up to the checkpoint. I have to crouch under a spike here, which is slow and boring yet unavoidable. I then do more precise conveyor movement to get to the next checkpoint. After sliding down the wall, I'm barely able to avoid the spikes without jumping and I do a skip at the ending by getting speed from the conveyor to reach the big square block, then I reach the ending platforms from below.
I skip waiting for the moving platform to come down by climbing up the wall with wall jumps, and then I enter the inner ring. Epica is the first level I enter. This level is normally quite long, but there's a big skip in it. Instead of climbing back up through a long rail section once you get to the bottom, you can reset to go back to the top and then do the rest of the level backwards. Because the level starts with a long jump, I do the left section first since I spawn facing the wrong way after a reset. I slide down the walls and land perfectly in between the two blocks in the middle section. I want to wall jump to the right, but the right wall takes priority so I have to do two wall jumps in a row. I then activate all the platforms near me, before jumping over the left side of the rail and activating a block at the bottom of the level. I reset, jump over the spike wall to my right, and activate all the remaining platforms as fast as possible.
There are conveyors that get in the way on the way down to Avia, so I avoid them as best as possible. Avia is a level that mostly takes place on grind rails. The level is pretty straightforward and has no skips. There's a small but important optimization at the end though. Instead of jumping onto the spring from above, I slide off the rail and spin jump into it from below, starting the bounce from lower down. This lets me activate the final platform a few frames faster.
With that, the core is unlocked and I can fight the final boss in Ultima. Ultima is a very weird level. It has three sections, one for each phase of the boss. The boss has a shield that kills you if you touch it, but the shield deactivates if you activate all the blocks in the section. Then, you can hit the boss, after which you both fall into the next section of level and the cycle repeats. There isn't a set path you're supposed to follow like in most levels, the blocks are all the same shape and size for each phase and they're laid out in a simple pattern. Finding an optimal route through is hard. I start by long jumping off the spawn platform, which is slightly faster than walking off. Then, I graze the top middle platform, land on the second row and do a long jump and spin jump to graze the two top right platforms. I fall down to the bottom row, long jump across, and then do a coyote abuse long jump similar to what I did in Vertigo. I'm able to get back to the top row very quickly this way, and after activating all the platforms on the way down I hit the boss. If you hit the boss from the top, you will lose all your falling speed, so I made sure to find a route that hit him from the side so I keep falling fast. The problem now is that the boss, which has solid collision, is falling right in front of me and I need to get to the center of the screen. Fortunately, there's an obscure glitch with grind rails I can use. When you're standing on a grind rail, walls don't have any collision. This is normally impossible to notice, but since the boss moves down in front of the grind rails before the second phase, I can use the rails to clip through him, saving a few frames. I then complete the second phase as fast as possible. When coming up with a route, boss manipulation is something that needs to be considered. It doesn't play that much of a factor here, and is too complicated to be worth explaining, but these two routes ended up working out quite favorably, giving good boss patterns. After falling down to the third phase, I reset and then pause the game. This causes a glitch to happen that skips the final phase entirely. This can only be done once per fight, and it's fastest to skip the third phase here. Even though the third checkpoint is in the middle of the screen, Ultima's checkpoints are uniquely programmed so that you can activate them even without touching them, as long as you are at the right y level. Pausing after the reset pauses the in-game timer while the boss's defeat animation plays. I then unpause to get credit for beating the level, before pausing again to exit.

eien86: Claiming for judging.

eien86: A thoroughly enjoyable movie of a quircky platformer. This movie looks vastly optimized in routing and execution and beats the best human IGT record (set by the author himself) by more than a minute. The sub notes fully explain the routing, making it easier for anybody interested in obsoleting it in the future (personal note: this is highly appreciated).
I failed to sync the movie in my computer, although feos was able to confirm this movie syncs. For this reason I wasn't able to take a deeper look at the inputs, but from the encode they look sharp as they can be. Game version choice is adequate since it is the last one to be released.
Accepting to standard

feos: Processing...
Last Edited by eien86 on 2/11/2024 6:25 PM
Page History Latest diff List referrers