Celeste TASing has been made possible thanks to DevilSquirrel, by modifying the game to read inputs from a file, as well as showing useful values and providing a friendly input editor. This game has been featured during the TAS block at SGDQ 2018. Since then, the any% TAS has been improved by almost two minutes, and inputs were converted to libTAS to make this submission possible.

Game objectives

  • Emulator used: libTAS 1.3.2
  • Aims for fastest in-game time
All movement techniques are described in the game resource page. This submission text only focuses on specific tricks.

libTAS conversion

The input conversion between Celeste TAS tool and libTAS did not cause any issue. Inputs from each level were converted separately, and inputs outside level (intro, hub, etc.) were done inside libTAS. Indeed, Celeste TAS tool ignore loadings, it feeds inputs only when pulled by the game engine.
There was only one desync at the end of stage 7A, where one frame needed to be deleted. Because it happened after a feather section, we suspect that this has to do with analog input conversion. Indeed, Celeste TAS tool input format contains analog inputs described as a stick angle in integer degrees (0 - 359), and feeds the converted X/Y coordinates to the high-level game code (into XNA/FNA game controller struct). On the contrary, libTAS feeds raw analog inputs as 16-bit X and Y coordinates, before any processing (such as deadzone) is performed by the XNA/FNA framework. So the script that converts Celeste TAS tool inputs to libTAS inputs requires some floating point operations, which could lead to small differences in the obtained analog inputs.
Also, Celeste TAS tool does not keep track of rerecords, so this value was set to 0.

In-game vs real-time

This TAS aims for fastest in-game time. This follows the convention for unassisted speedruns, as the game was designed with speedrunning in mind, providing a robust in-game timer, as well as displaying individual level times. Moreover, optimizing this game for real time would lead to differences, because several animations such as dashing, crystals or bounces freeze the stage and the in-game timer for several frames. A TAS aiming at real time would limit the use of dashes, resulting in slower movement but less freeze frames.

B-sides

The normal way of unlocking a chapter in this game is by completing the previous chapter. However, each chapter holds a secret cassette, which unlocks a special stage called B-side. By unlocking and completing the B-side of a chapter, the next chapter is unlocked. In this category, it is in fact faster (in-game time) to unlock and complete the B-side of chapters 5 and 6 instead of doing the levels normally.

Stage by stage comments

Prologue

The main optimization of this stage is using double corner boosts.

1A

We avoid most of the springs because it reset our speed.

2A

We use the cutscene warp to place us directly into the dream block to save a bit of time. When getting out of dream blocks, we can jump twice for some horizontal boosting. We can also dash diagonally downward and jump at the same time to execute an instant hyper dash. Collisions inside dream blocks have a bit of leniency, so we can cut through corners. The end of the stage features several ultra dashes.

3A

This level features a lot of crouched dashes to go through dust bunnies. When getting near Oshiro during the escape, time is slowing down but the in-game timer still runs at full speed, so we must avoid getting close to him, or knock him off.

4A

The wind adds (or remove) a constant value to our movement, except when dashing. Thus, we try to dash as much as possible when the wind is against us, and to avoid dashing when the wind is pushing us forward. The snowballs cancel our dash, which is very handy. However, we don't have much freedom to manipulate where they are appearing.

5A

We head to the cassette to unlock 5B. Inside the cassette screen, red/blue blocks are synchronized with the music. As a consequence, they are not delayed when the timer is frozen by a dash. So, to save in-game time, we have to dash as much as possible when we are waiting for red/blue blocks.

5B

Grabbing Theo cancels our dash, so we can setup a grounded ultra dash and grab him to conserve this speed. However, grabbing Theo takes a lot of time, which makes this section very difficult to optimize.

6A

Analog stick is used when in feather form for more precise movement.

6B

Bumpers send us further if we press the direction away from them when bounced.

7A

When the wind is pushing downward, we can jump on spikes if at a precise position. This is due to the order of steps in the game engine, we get pushed downward after the check for spikes, and we can jump away from the spikes during the next frame.

Thanks

Huge thanks to all Celeste speedrunners and the Celeste discord for all the suggestions and feedback.

feos: Judging...
feos: Replacing the movie with a 1565 frame improvement. Also I cleared the rerecord count (per author agreement), fixed a path, and reordered a sentence in the annotations.
feos: This games works the same as SteamWorld Dig 2 in terms of level loading: it spawns threads in-between levels, and libTAS can't control them. The situation is exactly the same, no gameplay trick is related to this, as no gameplay is there when loading happens. And the movie also aims for in-game time, which only counts gameplay times.
So exactly like that other submission, this movie relies on mid-level time pauses, and for exact same reasons I consider it acceptable. See my judgment there for all the details.
Great feedback, accepting to Moons (similar in that regard too).
fsvgm777: Processing.


Mitjitsu
He/Him
Banned User
Joined: 4/24/2006
Posts: 2997
I've been holding back on voting on this due to having bought the game and waiting to playthrough the game myself, but I finally completed it last night. Some of the sequence breaks in relation to climbing walls more quickly than a real time player could don't surprise me. However, most of the stuff I thought they're was only one possible way of overcoming certain sections; only to be shown that's not the case. There's one part where you seem to climb up a wall of spikes, which nothing more than game defying logic.
Active player (319)
Joined: 1/30/2017
Posts: 12
Location: austin
a player earlier today stumbled upon a way to skip the prologue cutscene, saving 19 seconds of TAS ingame time and similar timesave for RTA. we are getting into contact with kilaye/keylie to update the submission to include it in the run, along with a few other frames found here and there since this submission. hopefully won't take longer than a couple days, should be relatively easy to implement.
fsvgm777
She/Her
Senior Publisher, Player (226)
Joined: 5/28/2009
Posts: 1213
Location: Luxembourg
fishmcmuffins wrote:
a player earlier today stumbled upon a way to skip the prologue cutscene, saving 19 seconds of TAS ingame time and similar timesave for RTA. we are getting into contact with kilaye/keylie to update the submission to include it in the run, along with a few other frames found here and there since this submission. hopefully won't take longer than a couple days, should be relatively easy to implement.
If it does get implemented and the replacement file gets uploaded, then it means I'll have to re-dump it all over again (since I dumped it in both 540p and 1080p to anticipate a bit). It's fine, though.
Steam Community page - Bluesky profile Oh, I'm just a concerned observer.
Joined: 2/25/2006
Posts: 407
The submitter is missing some details in the "Game objectives" seciton of the submission. Is it Any%, 100%, Glitchless etc.? From the rest of the submission text I'd say it's Any%. Also, what version of the game is being TAS'd?
Ryzen 3700X, ASUS Crosshair VIII Hero (WiFi) Motherboard, 32GB 3600MHz RAM, MSI Geforce 1070Ti 8GB, Windows 10 Pro x64 http://tasvideos.org/Nach/FranpaAlert.html
fsvgm777
She/Her
Senior Publisher, Player (226)
Joined: 5/28/2009
Posts: 1213
Location: Luxembourg
Oh, reading the changelog, it seems the prologue dash cutscene is skippable as of version 1.2.6.0. Furthermore, the current first rank on the SRC leaderboard plays on version 1.2.6.1, which is the latest version. This means you'd have to re-sync on 1.2.6.1, since you can't skip said cutscene in 1.2.5.3 (the version that was used for this TAS).
Steam Community page - Bluesky profile Oh, I'm just a concerned observer.
keylie
He/Him
Editor, Emulator Coder, Expert player (2841)
Joined: 3/17/2013
Posts: 392
fsvgm777 wrote:
Oh, reading the changelog, it seems the prologue dash cutscene is skippable as of version 1.2.6.0. Furthermore, the current first rank on the SRC leaderboard plays on version 1.2.6.1, which is the latest version. This means you'd have to re-sync on 1.2.6.1, since you can't skip said cutscene in 1.2.5.3 (the version that was used for this TAS).
The reason why the prologue cutscene is skippable in 1.2.6.0 is that in earlier versions, it is possible to skip the prologue by pausing exactly when the cutscene begins (either frame-perfect input or two frames, I'm not sure). Because it would lead to many resets and could give a solid lead in races, the speedrunning community advised the devs to do something about it, and the best solution was to make the cutscene skippable (at any time, of course). Of course, the TAS could be updated to use 1.2.6.1, the TAS would likely sync on this newer version.
fsvgm777
She/Her
Senior Publisher, Player (226)
Joined: 5/28/2009
Posts: 1213
Location: Luxembourg
keylie wrote:
The reason why the prologue cutscene is skippable in 1.2.6.0 is that in earlier versions, it is possible to skip the prologue by pausing exactly when the cutscene begins (either frame-perfect input or two frames, I'm not sure). Because it would lead to many resets and could give a solid lead in races, the speedrunning community advised the devs to do something about it, and the best solution was to make the cutscene skippable (at any time, of course). Of course, the TAS could be updated to use 1.2.6.1, the TAS would likely sync on this newer version.
I see, so it's basically an ascended glitch now. Thanks for the clarification.
Steam Community page - Bluesky profile Oh, I'm just a concerned observer.
fsvgm777
She/Her
Senior Publisher, Player (226)
Joined: 5/28/2009
Posts: 1213
Location: Luxembourg
Oh, by the way, it seems you can only get the latest version on itch.io (unless there's a way to download older versions on that platform, but I haven't found one so far), which is 1.2.6.1 as of this writing.
Steam Community page - Bluesky profile Oh, I'm just a concerned observer.
keylie
He/Him
Editor, Emulator Coder, Expert player (2841)
Joined: 3/17/2013
Posts: 392
I'm sorry I didn't have much time lately. I will update and resync (if needed) the TAS on the latest version. I guess it is always possible to get each version on Steam (using the console), but I don't own the game on Steam so I can't test if it is supported by libTAS.
keylie
He/Him
Editor, Emulator Coder, Expert player (2841)
Joined: 3/17/2013
Posts: 392
Here is the improved version: User movie #52821885141911372, and the version with extra inputs for the epilogue: User movie #52821896824952159. The new TAS uses the up-to-date version of the game (v1.2.6.1). Sorry for the delay.
GamesFan2000
He/Him
Joined: 1/4/2019
Posts: 84
Location: Canada
fishmcmuffins wrote:
FractalFusion wrote:
Looking forward to 100%, but feel free to exclude golden strawberries (all that does is force you to run chapters multiple times).
we're currently working on the 100% and an all chapters run, so hopefully you won't have to wait too long! the standard 100% category for RTA doesnt include the golden berries due to them being redundant and we plan on doing the same for the TAS.
I figured that you would consider 114%(all berries and stages) as a separate thing from 100%(all RED berries and stages). As you said above, the gold berries are redundant. They just force you to do a second run of every stage, though the City A-Side does award you a special gold berry for completing the level without dashes(the only level that this is possible on). The only way the run could ever work is if you collect certain berries in one run and then save the other berries for the gold berry run, and the only way it would work on City A-Side is if the berries that can be grabbed dashless are left behind in the first run.
Editor, Player (44)
Joined: 7/11/2010
Posts: 1029
When doing 114%, does anything force you to complete the A-sides on the first run through? You need the heart and cassette, but I can't see any reason to actually complete the stage until after the gold berries have been unlocked. That said, you'd be playing all the B-sides twice, and some hearts come so late in their levels that you'd be playing most of those twice, too.
Active player (319)
Joined: 1/30/2017
Posts: 12
Location: austin
ais523 wrote:
When doing 114%, does anything force you to complete the A-sides on the first run through? You need the heart and cassette, but I can't see any reason to actually complete the stage until after the gold berries have been unlocked.
technically this is true, however several stages' optimal strats for 100% involves returning to the map to chapter select warp through the stage... eg: imagine you hit a chapter select checkpoint, and then have a 3 screen detour for 2 berries that forces you to backtrack - it is far faster to just return to the map and then warp back to that chapter checkpoint you hit after collecting those berries. this cannot be done with a gold berry. still, that could be solved by just routing around those cases and getting them out of the way on the initial run rather than the gold berry run - could lead to some interesting routing, but at the end of the day you absolutely have to complete every B and C side twice, which would be an extra 30ish minutes of completely redundant gameplay (quite literally just copy paste inputs). either way, lets not get too far off topic worrying about 114% routing :p
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
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
Of note that while I didn't experience that particular issue, the audio completely dies in my AVI dump at frame 69072 (in the improvement movie file keylie posted). My AVI dumps of the original submission (which I've since deleted) did not have that issue.
Steam Community page - Bluesky profile Oh, I'm just a concerned observer.
Post subject: Celeste for SGDQ 2019
Moderator, Senior Ambassador, Experienced player (907)
Joined: 9/14/2008
Posts: 1014
This is the wrong place for this but I haven't made a dedicated thread just yet - I would like to solicit a Celeste TAS for SGDQ 2019 and I think an All Berries or 114% or whatever category is ideal for this. I know there's some questions about what a "more complete" run might look like but I'm just throwing it out there that I'd love to see it happen. TGH is on board with attending to provide commentary. Thoughts on the viability of that? And of course, Yes vote site unseen but I'll refrain from actually pressing the vote button until after I've demonstrated it on libTAS proper. :)
I was laid off in May 2023 and became too ill to work this year and could use support via Patreon or onetime donations as work on TASBot Re: and TASBot HD is stalled. I'm dwangoAC, TASVideos Senior Ambassador and BDFL of the TASBot community; when healthy, I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
happy_mario
He/Him
Player (108)
Joined: 4/3/2013
Posts: 37
Location: China
I'm waiting for new video :)
Happy everyday! 快乐每一天!
fsvgm777
She/Her
Senior Publisher, Player (226)
Joined: 5/28/2009
Posts: 1213
Location: Luxembourg
fsvgm777 wrote:
Of note that while I didn't experience that particular issue, the audio completely dies in my AVI dump at frame 69072 (in the improvement movie file keylie posted).
Okay, it turns out that was a fluke, because I have an AVI dump where the audio plays fully until the end! So that's out of the way (since I still have the dash sounds, so that particular issue feos posted is at the very least not relevant for this TAS, as Madeline doesn't die once).
Steam Community page - Bluesky profile Oh, I'm just a concerned observer.
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
keylie wrote:
Here is the improved version: User movie #52821885141911372, and the version with extra inputs for the epilogue: User movie #52821896824952159. The new TAS uses the up-to-date version of the game (v1.2.6.1). Sorry for the delay.
In the annotations you have the path src/linTAS/GameLoop.cpp, while in 1.3.2 source it's src/program/GameLoop.cpp.
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.
Post subject: Re: Celeste for SGDQ 2019
Active player (319)
Joined: 1/30/2017
Posts: 12
Location: austin
dwangoAC wrote:
This is the wrong place for this but I haven't made a dedicated thread just yet - I would like to solicit a Celeste TAS for SGDQ 2019 and I think an All Berries or 114% or whatever category is ideal for this. I know there's some questions about what a "more complete" run might look like but I'm just throwing it out there that I'd love to see it happen. TGH is on board with attending to provide commentary. Thoughts on the viability of that?
an all red berries TAS has been finished and 100% is currently in progress. all red berries would be great for SGDQ, it's a pretty good length (40ish minutes) and has a lot of really impressive things going all while madeline has 20+ berries flying behind her - 100% seems a bit long for a GDQ, but all chapters could be good as well. on that note, if this does happen and you need more people around for commentary, i am planning on attending SGDQ 2019. i've contributed a bit to this TAS and the other celeste TASes in progress currently, and have even more time to work on this game since my other project just got finished up. i ran Dustforce last year and am planning on submitting a few more games this year, but will make an effort to go even if nothing i submit makes it in. if these plans go through, feel free to get in contact.
Post subject: Re: Celeste for SGDQ 2019
Editor, Player (44)
Joined: 7/11/2010
Posts: 1029
dwangoAC wrote:
This is the wrong place for this but I haven't made a dedicated thread just yet - I would like to solicit a Celeste TAS for SGDQ 2019 and I think an All Berries or 114% or whatever category is ideal for this. I know there's some questions about what a "more complete" run might look like but I'm just throwing it out there that I'd love to see it happen. TGH is on board with attending to provide commentary. Thoughts on the viability of that?
The two most viable full-completion categories are All Red Berries and All Stages / All Hearts. All Red Berries has less overlap with the categories already shown at GDQ, though, so would likely be the best choice. 100% is basically All Red Berries + completing the B-sides (which you have to do most of anyway for ARB) and C-sides (already shown at a GDQ), so it'd be very comparable to All Red Berries but a little longer. 114% is probably a bad idea, because it's basically "complete the game, then do it again deathless", and deathless isn't that interesting in a TAS (but would be rather time-consuming). That said, you could probably add the secret gold berry as a donation incentive; that's the only really new content in 114% over 100%.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15580
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. ---- [3899] Linux Celeste by buhbai, euni, fishmcmuffins, keylie, DevilSquirrel & KT in 27:04.43
Joined: 2/21/2008
Posts: 255
Does this TAS hold the record for fastest time between game release and TAS publication?
"The guy was fatally injured and wants to be covered by God's tears (rain) before he dies. God is too busy to bother because it wastes frames." Frames 16:26
Patashu
He/Him
Joined: 10/2/2005
Posts: 4043
xnamkcor wrote:
Does this TAS hold the record for fastest time between game release and TAS publication?
I would think #6265: juef's NES Nebs 'n Debs in 10:25.39 or #6231: juef's NES Lizard in 18:03.98 would hold that honour.
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
Editor, Player (175)
Joined: 4/7/2015
Posts: 331
Location: Porto Alegre, RS, Brazil
Hey authors, the devs just released the Farewell DLC, and in the level music track there's a secret message dedicated to all the Celeste community, and you're included thanks to this TAS Congrats! 💙
Games are basically math with a visual representation of this math, that's why I make the scripts, to re-see games as math. My things: YouTube, GitHub, Pastebin, Twitter