FEZ is a 2012 puzzle/platforming videogame where the main unique mechanic is the ability to rotate camera perspective on 3D environments to change the 2D layout. Gomez, the protagonist, travels the world while collecting mysterious cubes, bits, ancient artifacts, maps and keys. Casually, this game offers multiple different types of puzzles, with secret codes, clever hints and obscure lore, but when speedrunning, it all transforms into pure skilled platforming and precise routing.
Run Objectives
- Version: 1.12
- Emulator: libTAS v1.4.6 on Linux
- Category: Full Completion (All Gold Rooms)
- Don't use major glitches
- Finish as fast as possible, prioritized IGT
- Get a nice hat, yay!
Configuration
- Command-line options: "--gotta-gomez-fast"
- Runtime > Sleep handling: "Never advance time"
- Video > Common: "1280x720 (16:9)"
- Delete FEZ Settings file in .config before running
- Don't prevent writing to disk
- In doubt, remove every Linux file written by FEZ
RNG is dependent on game resolution, and the Settings are automatically on Native if you open the game outside of libTAS. The emulator needs to write the file at 720p (also unlocks the ability to skip the "save-icon screen" after the TAS restarts frame 1). The custom launch option was implemented in the latest patch of FEZ to add a speedrun mode, effectively following the player with an in-game timer (and resetting the save file every new run).
Category Explanations
The SRC/community official name is Full Completion. It is meant to show off most of everything the game has to offer, more than every other ruleset. The core way to verify if you've done all requirements is to open the world map, it to be full, and all shown rooms need to have a golden outline. The way to get them outlined that way is to not only get every collectable in the game (totaling 209.4%), but also open every chest, open every door and, very importantly, solve every puzzle correctly. While there is ways to skip some puzzles, or use some tricks/glitches to effectively have the same result than solving them (like the totem box room clip and the telescope double spawn), those don't mark the map rooms correctly, thus are ignored in this run.
This TAS also adds some rules, that are either unwritten or simply not thought of by real time speedrunners. For the sake of not screwing with the timer, I am not using the "savestate manipulation" glitch, which keeps in memory some information from a precedent savefile, in this context by resetting the run while entering a load/door. I also decided to disregard any sort of dupe, or new game plus advantages. While those could probably save time in multiple regards without affecting the map completion, they can be very well argued against the spirit of the category, and make it harder to compare to RTA. Defining glitches can be very complicated, that's why we don't name this speedrun as glitchless. Other than that, a lot of techniques/exploits/tricks are abused here for speed sake, none being considered game breaking.
Since the world map is never opened, the savefile that is made by exiting Gomez's house at the end will be provided for verification purposes (playing the full credits and getting the 3d glasses are required to see the completed gold outlined rooms). Small note: 2D village and all its sub-areas do not appear on the map, making them unnecessary to be visited/completed.
Important Mechanics
Movement:
Gomez can run, jump, grab ledges, drop down, climb, pick up objects, and interact with environment like doors. When running, he builds more momentum (left or right) than in the air, however, the top speed is only attainable airborne. If you do jumps frame perfectly while landing on the ground, you can keep the max speed, and this is used extensively in the run. Also, doing corner kicks put Gomez at his maximum velocity. When it comes to jumping, the first 4 frames (especially the fourth one) are the most consequential when it comes to momentum. This is mostly seen when doing ledge jumps where Gomez goes from 0 to moving. The most known trick is the reverse corner kick, which is all about jumping and changing direction before the fourth frame.
There is a lot of variance in Gomez's momentum, per example how he will dive down water if he comes from a higher point, or if he gets pushed by things. Most of it is managed at max possible speed, but you can actually walk slower with a controller (which is only used for entertainment in lava rise).
Interactions:
Gomez can grab a lot of things, including bombs, boxes, pivots, vines and ladders. Most of those animations tend do be very slow, per example, climbing up a ledge, even if the grabbing animation is skipped, takes a bunch of time to our protagonist to get up. When carrying a bomb or a box over your head, the fastest way to move is to jump in the air, opposite to when being hands free. You can then either throw them or put them back on the ground (which is usually very slow). There is also a very weird glitch where if you are falling down while carrying a bomb close to a corner/ledge, if you throw it at a specific time, you will be propelled upwards. If you are currently grabbing something, the subsequent jump will have a lesser max height. If Gomez lands from too high, or simply never lands, he will be teleported back up from where he came. He can't truly die, but will get stunned temporarily in an animation depending on the cause of "death" (explosion, squish, etc).
Camera:
While Gomez moves in a bidimensional plane like many 2D platformer protagonists, he can also rotate the camera to change the perspective and offer himself new routes to travel in the world that is in actuality in three dimensions. Rotating usually keeps his movement, but double rotations will give an effect of reverse momentum. You can do double rotations frame perfectly by using both a controller and a keyboard at the same time. A rotation takes about 30 frames, and a double would take only 31. Gomez is frozen in place while the screen changes perspective. A pretty used trick is to put Gomez in between two walls and rotate, which will blink him on a side of the obstacle (decided left or right depending on which direction is rotated). It is called a perspective teleport. You can naturally save distance by simply changing perspective, but more importantly, often, you are required to play with rotations or else you can't progress. You can rotate "for free" when entering most 3D rooms in the game, however some frames need to be waited or else the game will load slower.
Many items, including bits, are not interactable if they are not positioned in the right perspective. Even if you position Gomez behind the decor, he will not be able to touch things or open chests. However, in some very rare circumstances (considered glitched) he will be able to pick up bits while not even be visible, and walk on floors that are not supposed to be solid. It is to be noted that some rooms have special camera mechanics, like being stuck in two dimensions. Dot, our annoying 4D hypercube companion, also loves to move the camera when she feels like saying something (usually useless lol).
Cycles:
The game can easily be described as "cycle based", because many, many things flow on cycles. First off, you have the bits, hearts, cubes, and some maps oscillate up and down at constant speed of about 2 seconds per full animation. Those are based on a global cycle, which is decided when the game is launched. The only ways to delay oscillations is by either rotating or pausing the game, both having the tendency to slow Gomez/the TAS down. A trick I call "pause crash" is used at the start of the game to manipulate them without losing them, and I also rotate in sync room, but those are the very rare instances I can even manipulate them without losing time. That scarcity of ways to deal with them makes it very hard to align everything, because the (time) difference between a collectable being high or low is massive. Talking about sync room, the whole section has cycles based on the music. Other cycles, mainly for platforms, usually start when entering the rooms they are in.
Codes:
We all like puzzles. Unfortunately, many of them are not even visible to the naked eye while watching this TAS. While some puzzles are about deciphering maps, placing boxes in certain positions, or bombing walls, a lot of them are codes that are written with controller/keyboard inputs. You normally need to figure them out with hints, but obviously, speedrunners know all the solutions. There is general rules for some types of codes. 2 codes can be used anywhere, one of them only unlocked after opening a chest after tree. They spawn cubes, and one of their main interest is to manipulate the random number generator, also named rng. Of course, since some of the inputs can be rotations, I needed to find optimal ways to spawn and collect them without losing time. This is true for most codes, fortunately there is a lot of tricks used in this run for that purpose, including entering them at TAS speed.
Special note about forks: you can discover their secrets by listening to the sound in the air when getting close enough. They are exclusively using perspective rotations, and can't be spammed to save time. Every single trigger needs to be... Triggered.
Play By Play
Due to writing this seemingly costing a lot of brain power, I am currently unable to write the full explanation. However, even if it's not written, I want to submit this TAS so that it can be shared to more people to enjoy. I may, or may not, one day finish this TAS explanation. I am very sorry for the inconvenience
Timesave
No real timesave has been found since I finished the TAS, but as always, I'm only human, and the game is also at the mercy of some rng and cycles. Some frames could theoretically be saved, but I don't know how to really, as of writing this. I am really proud of the final result, a lot of work was put into this TAS, and a ton of redos too ;)
Thank you from the bottom of my heart!
This is a TAS I dreamt from doing since 2014. And it could not have been done without the help of a lot of people. So here are the shoutouts:
- thearst3rd, the wr holder, my mentor, inspiration, and most of all, my friend. He was there every step of the way, giving ideas, feedback, critiques, and massive support. He also was the one helping me with Linux a while back
- Kilaye, who not only made the tools possible to TAS this game, but also went out of his way to make FEZ possible, with multiple patches for libTAS, including the very important "set time"
- People who watched me stream, even when boring, to give me direct support, by simply wishing me a good day sometimes. Shoutout to Jenna particularly in that regard
- The FEZ community. I have issues socially with communities, and I must say that this one is very comfortable to be in. Special shoutouts to Krzyhau, Morgan, Juikuen, Gyoo and Jokertyf who were very active, glitch hunters and/or runners
- Thank you to renaudbedard, the developper of the game, who is very kind to me and answers my questions when I have any
- Special thanks to TASvideos.org staff, making sharing my work possible to entertain people :)