Submission Text Full Submission Page
  • Genre: Action
  • Genre: Role-playing
  • Heavy Glitch abuse
  • Heavy luck manipulation
  • Abuses programming errors
Bastion is an action RPG made by Supergiant Games and launched in 2011. It tells the story of a soldier known as The Kid, who wakes up in the aftermath of a catastrophe called the Calamity, which has destroyed his land. He then travels across the remains of his world, searching for a way to rebuild.
This submission beats the game as fast as possible, starting from a New Game file.
Before starting the game proper, we take a quick detour to the options menu. The PC port of Bastion supports three different controller schemes: Slinger-style (mouse + keyboard, the default), Mason-style (mouse for movement, with keyboard for actions), and Trigger-style (controller). We opt for Mason-style, for reasons that will be explained later. Then we start the game.

The Rippling Walls

As The Kid wakes up, we move him directly to the first point of interest. We do so by pressing the left mouse button towards his intended location, similar to MOBAs and old Action RPGs. Using the mouse for this purpose provides very granular control of The Kid’s angle compared to keyboard movement or even controller.
We then pick up the hammer, and with it the ability to roll! Rolling is by far the fastest form of movement in the game, as it provides a substantial speed boost that slowly decays during its animation. This is also why we picked Mason-style controls: due to an oversight, only when using these controls and moving, the game will add our walking speed to the roll speed rather than override it as long as we keep holding the left mouse button. This extends the length of a roll by about 30% and can be disabled granularly by releasing the button at any point, acting both as our fastest movement option and as a great way to precisely control our speed and position.
Rolling also deals 2 HP of damage to enemies and objects. This allows rolls to break past fences, boxes, and other debris found across the game without losing any momentum.
We keep moving and reach the first Gasfella. It has a total of 30 HP. We can quickly defeat it with two hammer swings. There are three kinds of hammer swings: the moving one (a simple sweep), the uppercut (a hammer uppercut motion, done stationary), and the overhead (a slow but powerful overhead hammer bonk), which deal 10, 15 and 20 HP of damage respectively. You can get the moving swing if swinging while moving, and the other two alternate if swinging while not moving, with the first being the uppercut.
As we hit the Gasfella, we ensure to hit it at a precise angle that avoids breaking the nearby walls. Hammer swings can easily break those walls, and doing so incurs freeze frames.
We keep moving forward, getting past the Fang Repeater laying at the floor and heading directly to the fountain right on top of the stairs. We collect one Tonic from it and drink it immediately. Doing so sets a 3 second timer to spawn a wave of Squirts, which gives us enough time to go back down, pick up the Repeater, and return before the Squirts are done spawning.
A wave of 6 squirts spawn, and killing them all is required to proceed. They have 4 HP, and the Fang Repeater shots deal exactly 4 HP damage… 50% of the time. Heavy RNG manipulation is performed to hit as many of them with the maximum damage roll.
Sadly, the fountain itself prevents us from damaging all 6 enemies from a single position, so we have to attack one with our hammer before heading into the Sole Regret.

The Sole Regret

After clearing out the area by destroying a turret from afar and removing the clutter for later, we receive our shield. We get into position to hit another turret, then we get a special delivery: Gasfellas!
The boxes come in two waves, and each have 21 HP. If we break them early, nothing spawns from them, but failing to do so spawns one Gasfella per box. The first wave can be easily cleared by hitting them with two moving swings + a roll each. The second waves spawns too many boxes for us to break them all, but we can use an interesting trick to speed this up:
Waves are coded in the game by assigning enemy groups to a specific wave, and they’re counted as completely if there’s no enemy in the raid currently loaded. Boxes take one frame between blowing up and spawning their respective Gasfellas. As such, breaking all the boxes in the final wave before the last box blows up causes the game to assume the wave has been cleared the first frame after the box blows up, allowing us to bypass it altogether.
After the boxes, a wave of Squirts show up. In this wave, it is enough to kill all but two of the enemies. Additionally, a green large Gasfella spawns, but it’s not considered part of the wave. Not only we don’t have to kill it, but this baby is capable of friendly fire, so we manipulate its attack patterns to get it to hit squirts for us, as its attack deals at minimum 5 damage.

The Wharf Fortress

We enter the Wharf Fortress by falling from the sky, and we break a box containing the Breaker’s bow. Sadly we’re busy so we don’t pick it up. We make our way towards the two stores at the south. While doing so, we’re required to destroy two turrets, which we can do from afar by countering their shots with a well timed shield.
We’re required to interact with both the Distillery and the Armory to progress. Once we do, we run to the barge we’re expected to board to reach the next part of the level, activate it, immediately turn around and leave before the door closes behind us. Autoscroller skip!
The game has a failsafe mechanism that guarantees we’re spawned in the area we were supposed to once the barge arrives if we’re not on it, so we ca use this time for… not much, really.
Once we’re warped, we can get to the corner next to the next gate and roll constantly. By doing this, we get ever so close to the tiles past it, and as we do, we can eventually skip the gate altogether, removing the need to kill a lengthy wave of enemies.
We get to the first Core for the Bastion and the game is never the same from here: welcome to Menu Storage
Almost all menus in the game contain a significant critical bug: it is possible to mess with them by pressing Escape (to leave them) and activating an option at the same time. This is most useful for the menu that confirms if we want to quit the game: accessing it via Esc + click returns control of the Kid while keeping the menu open, and thus preventing events from running. With this, we spam the interact button to collect 14 cores from this one core, close the menu, and die right away so we’re teleported to the next stage.

The Bastion

We get to the Bastion, ready to finish the game. We first talk to Rucks, the narrator, twice in quick succession. This allows us to make sure both cutscenes from his dialogue happen at once, saving time.
Once we’re done with him, we run to the Monument and dump our 14 cores one after another. As we finish, we’re teleported into the Monument. Here, after speaking to both Zia and Rucks, we activate the bastion and reload the universe’s savestate, ready for another run…
Bastion is an action RPG made by Supergiant Games and launched in 2011. It tells the story of a soldier known as The Kid, who wakes up in the aftermath of a catastrophe called the Calamity, which has destroyed his land. He then travels across the remains of his world, searching for a way to rebuild.
Special thanks go to the Bastion speedrunning community for their help and guidance.



TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15584
Location: 127.0.0.1
This topic is for the purpose of discussing #8030: ikuyo's Linux Bastion "game end glitch" in 04:46.53
Spikestuff
They/Them
Editor, Publisher, Expert player (2643)
Joined: 10/12/2011
Posts: 6439
Location: The land down under.
Something something shards-- Something something shards-- Something something shards-- Something something shards-- Something something shards-- Yes vote, good play.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4036
Ohh yes! I've been hoping we'd see a TAS of this game in this category. Nicely done, I liked all the little tricks you described to make it faster like activating the first Squirts and coming back with the Repeater before they spawned. Yes vote!
Joined: 9/22/2012
Posts: 19
Location: Oregon
Spikestuff wrote:
Something something shards-- Something something shards-- Something something shards-- Something something shards-- Something something shards-- Yes vote, good play.
That's the part that got me too. Narrator talking over himself caught me totally off guard lol Easy yes vote. Very fun.
rythin
She/Her
Skilled player (1143)
Joined: 11/4/2021
Posts: 47
Gotta love the loud menuing jumpscare. As for the run itself, I really liked it! The movement was smooth, the combat looked good and the skips were cool! It's a shame so much of the game gets cut out by the menu storage glitch, would love to see a no menu storage or all levels TAS in the future, though I imagine that would be quite the undertaking. Yes vote!
ikuyo
She/Her
Judge, Experienced player (506)
Joined: 7/8/2021
Posts: 101
Got a 159 frame improvement with Whirl Wind strats for the Gate Skip and improved core dump at the end:
Emulator Coder, Judge, Experienced player (729)
Joined: 2/26/2020
Posts: 783
Location: California
I decided to take a look at this TAS and see how well it would sync for me. It did not go well: 1. Off the bat the game would crash on startup with
The type initializer for 'System.ConsoleDriver' threw an exception. ---> System.Exception: Magic number is wrong: 542
This is fixable (at least for me) by doing
export TERM=xterm
2. The game appears to softlock on startup. It appears to be time and thread related, if I set it to uncontrolled time, the game starts up as expected. This appears to happen regardless of the wait timeout choosen (using Infinite Waits as specified in the annotations doesn't help it seems). Starting the game up attached to gdb reveals many threads spawning, and more interestingly, two threads seem to be constantly waiting on each other (and the game appears to be softlocked at this point). Trying the game on the latest libTAS master does allow it to avoid this softlock, but it just desyncs quickly, and doesn't even appear to be consistent desyncs. I would fear this TAS is going to be rejected just due to sync issues.
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
Native/Infinite/Full infinite waits - locks on frame 163. Finite/Full waits - the game somewhat runs but with black screen and no audio. No waits - the game runs with video, but the movie desyncs right away. Using version 1.50436 29.08.2018 121a2db59859b24ad76593f74abbcdc14aadd953 Bastion.bin.x86_64 Link to video
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.
fsvgm777
She/Her
Senior Publisher, Player (226)
Joined: 5/28/2009
Posts: 1213
Location: Luxembourg
Can't get it to sync either, though I did get into gameplay. It desyncs for me when attacking the first enemy. Build version and date are identical to feos's.
Steam Community page - Bluesky profile Oh, I'm just a concerned observer.
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2785
Location: The dark corners of the TASVideos server
om, nom, nom... blech, salty!