To create a proper TAS, you environment needs to fulfill certain requirements. For most TASes all of these requirements are implemented through the emulator tool. But emulators themselves are not strictly necessary for TASing.
Any environment satisfying the following requirements can be used to create a proper TAS:

1. Determinism

Given a state and an input, your environment has to always advance to the same next state. No matter how often you go back to the given state, if you apply the same input, it has to give the same result.
Why is it required?
Creating a TAS involves a lot of trial and error. Without determinism there is no way to assure the created TAS will play back exactly how it was created, making the creation process useless.
Related terms: sync, desync

2. Input Control

You need a system to record input into an external file, and a system to play back input from that file. This system needs to allow on the fly switching between playing back and recording from any state.
Why is it required?
An external movie file is needed to play back, share, and compare TASes. This movie file will be the created TAS.
Related terms: movie recording, movie playback, movie file

3. State Control

You need to be able to save and load complete states of the environment.
Why is it required?
An essential part of TASing is quick trial and error to find the perfect timing to input. Without savestates, it would be required to restart from the beginning several times each time a perfect timing is required. As the length of the TAS increases, the wait increases quadratically, so savestates are necessary for the creation of a proper TAS.
Related terms: savestate, loadstate

4. Time Control

You need to have control over advancing the environment to the next state.
Why is it required?
A proper TAS should not be limited by human skills. Control over time is needed to allow for techniques impossible for humans to input in real-time.
Related terms: frame advance, slowdown, rewind


HomePages/Masterjun/TASCreationRequirements last edited by Masterjun on 6/22/2021 1:05 AM
Page History Latest diff List referrers View Source