Difference between revisions of "Generic techniques"

From SDA Knowledge Base

Jump to: navigation, search
(Mostly editing, making it easier to read. Adding a couple of examples. Adding a bit to lag reduction. I'm up to additional items, I'll edit it later.)
(Planning: Fixed spacing and rewrote something)
 
(9 intermediate revisions by 5 users not shown)
Line 21: Line 21:
  
 
===Lag reduction===
 
===Lag reduction===
Computation-intensive games coupled with game consoles' hardware constraints or simply bad coding are prone to creating artificial slowdown, also known as lag. On a lag frame the console is busy calculating the information required to draw next frame. If a game's time isn't measured using in-game timer, lag puts runner at a severe disadvantage as they are losing precious time even nothing is done wrong. However, it might be possible to reduce lag by carefully determining what produces it. Testing on an emulator with lag counter may help a lot, although beware, emulators do not always emulate lag accurately.
+
Computation-intensive games coupled with game consoles' hardware constraints (or simply bad coding) are prone to creating artificial slowdown, also known as ''lag''. On a lag frame the console is busy calculating the information required to draw next frame. If a speedrun's time isn't measured using in-game timer, lag puts runner at a severe disadvantage as they are losing precious time even when nothing is done wrong. However, it might be possible to reduce lag by carefully determining what produces it. Testing on an [[Using_emulators|emulator]] with lag counter may help a lot, although beware: emulators do not always emulate lag accurately.
  
Common factors that create or increase lag are: large amounts of objects (polygons for 3D games) on screen, explosions.
+
A common factor that creates or increases lag is large amount of objects (or polygons, for 3D games) on screen, such as explosions, enemies, or bullets.
 
+
Methods of reducing lag in 2d-platformers include killing enemies and minimizing the number of shots on screen. One of the techniques used to reduce lag in early 3D console games was looking at the floor or walls to reduce the amount of processing required to draw frames.
+
  
 +
Methods of reducing lag in 2D platformers include killing enemies and minimizing the number of shots on screen. You can reduce lag in some early 3D console games by looking at the floor or walls to reduce the amount of processing required to draw frames.
  
 
==Building up momentum==
 
==Building up momentum==
In nearly all games with horizontal or vertical acceleration (you can tell it if the player character's moving speed increases as it moves in a direction), it should be possible to save time by building up momentum before you are allowed to move in a desirable direction. In practice, this usually boils down to two major examples.
+
In nearly all games with horizontal or vertical acceleration (you can tell it if the player character's moving speed increases as it moves in a given direction), it should be possible to save time by building up momentum before you are allowed to move in a desirable direction. In practice, this usually boils down to two major examples.
  
 
===Jumping before a fall===
 
===Jumping before a fall===
If the character's horizontal speed isn't significantly reduced during a jump, it is usually a good idea to jump just before you fall off a platform to have a higher vertical momentum by the time you clear the ledge. This is further emphasized if you need to change horizontal movement direction after you clear the ledge (but the gain can be negated if a game doesn't allow changing directions while airborne, like Ghosts 'n Goblins or Castlevania). A good example of jumping before a fall is Mega Man 1, 2, and 9, jumping before a fall is frequently seen in speedruns to save time, especially in the [http://speeddemosarchive.com/MegaMan9.html#TimeAttack Mega Man 9 time attacks].
+
If the character's horizontal speed isn't significantly reduced during a jump, it is usually a good idea to jump just before you fall off a platform to have a higher vertical momentum by the time you clear the ledge. This is further emphasized if you need to change horizontal movement direction after you clear the ledge (but the gain can be negated if a game doesn't allow changing directions while airborne, like Ghosts 'n Goblins or Castlevania). A good example of jumping before a fall is Mega Man series; jumping before a fall is frequently seen in speedruns to save time, especially in the [http://speeddemosarchive.com/MegaMan9.html#TimeAttack Mega Man 9 time attacks].
  
 
===Running towards opening doors===
 
===Running towards opening doors===
Line 51: Line 50:
  
 
===Utilizing faster-than-running moves===
 
===Utilizing faster-than-running moves===
Many action games (both 2D and 3D) have moves that allow you to dodge or attack with a method that is faster than normal movement, even if it means moving in a non-straight line. Carefully examine all movement (especially jumps and other aerial attacks) before deciding on an optimal way of movement.
+
Many action games (both 2D and 3D) have moves that allow you to dodge or attack with a method that is faster than normal movement, even if it means moving in a non-straight line. Carefully examine all types of movement (especially jumps and other aerial attacks) before deciding on an optimal way.
  
 
Examples: Ocarina of Time, Metroid Prime.
 
Examples: Ocarina of Time, Metroid Prime.
Line 59: Line 58:
  
 
Examples: Quake, Half-Life.
 
Examples: Quake, Half-Life.
 +
  
 
==Abusing hitpoints/life==
 
==Abusing hitpoints/life==
In a speedrun, the character's health can and should be used to speed up the gameplay if the game allows. There are several common ways to do so.
+
In a speedrun, the character's health is a currency, it can and should be used to speed up the gameplay if the game allows it. There are several common ways to do so.
  
===Damage Boosting===
+
===Damage boosting===
Taking damage from an enemy is often faster than dodging it. Sometimes taking damage can create a major sequence breaking opportunity, because a successful damage boost can propel the character past an normally impassable checkpoint, or to an otherwise unreachable distance (Castlevania: Symphony of the Night). Some games also have a dodging move that can be abused this way (Super Metroid).
+
Taking damage from an enemy is often faster than dodging it. Sometimes taking damage can create a major sequence breaking opportunity, because a successful damage boost can propel the character past a normally impassable checkpoint, or to an otherwise unreachable distance (Castlevania: Symphony of the Night). Some games also have a dodging move that can be abused this way (Super Metroid).
  
A special case of damage boosting is using the player's own weaponry. Notable examples include rocket and grenade jumping in the Quake series.
+
A special case of damage boosting is using the player's own weaponry. Notable examples include rocket and grenade jumping in the Quake and Half-Life series.
  
 
===Invincibility period abuse===
 
===Invincibility period abuse===
Abusing an invincibility period resulting from a hit or a death often allows the player to bypass instant-kill obstacles such as spikes. In some games, the invincibility period also lets the player use enemies as platforms (see also: [[#Damage_Boosting|damage boosting]]).
+
Abusing an invincibility period resulting from a hit or a death often allows the player to bypass instant-kill obstacles such as spikes. In some games, the invincibility period also lets the player use enemies as platforms (see also: [[#Damage_boosting|damage boosting]]).
  
 
Example: Mega Man series.
 
Example: Mega Man series.
  
 
===Respawn abuse===
 
===Respawn abuse===
If dying respawns the player in the same screen he or she died, then dying can sometimes climb heights faster, cross pits, etc..
+
If dying respawns the player in the same screen he or she died, it may allow climbing heights faster (Chip 'n Dale), cross pits (Contra 4), etc..
  
 
===Checkpoint abuse===
 
===Checkpoint abuse===
Line 90: Line 90:
  
 
===Moving too fast===
 
===Moving too fast===
Certain triggers can be bypassed if you don't give them enough time to start. This usually means hitting another trigger (commonly room transition) before the invisible timer expires.
+
Certain triggers can be bypassed if you don't give them enough time to start. This usually means hitting another trigger (commonly a room transition) before the invisible timer expires.
  
 
Examples: Castlevania: Symphony of the Night (skipping the Richter fight), Super Metroid (skipping Torizo).
 
Examples: Castlevania: Symphony of the Night (skipping the Richter fight), Super Metroid (skipping Torizo).
  
 
===Moving around a trigger===
 
===Moving around a trigger===
In both 2D and 3D platform games, triggers are commonly placed as small areas of ground activated by stepping upon them. However, more often than not you can move around these triggers by jumping over/around them or using an event that instantly moves you behind the trigger.
+
In both 2D and 3D platform games, triggers are commonly placed as small areas of ground activated by stepping upon them. However, more often than not you can bypass these triggers by jumping over/around them or using an event that instantly moves you behind the trigger.
  
 
Example: Half-Life series.
 
Example: Half-Life series.
Line 112: Line 112:
 
If a game has random events, it is possible to retry a segment (or a full run if length allows) until the odds are in the player's favor. These retries can save a lot of time in games that have critical hits or instant-kill attacks, like RPGs.
 
If a game has random events, it is possible to retry a segment (or a full run if length allows) until the odds are in the player's favor. These retries can save a lot of time in games that have critical hits or instant-kill attacks, like RPGs.
  
It should also be noted that in some games, the random events aren't really random: they depend solely on the player's input. In these cases it means there might be a pattern of input that produces the same or similar results if repeated. This manipulation is very important for boss fights, where you want the boss to behave as you want it to.
+
It should also be noted that in many games, the random events aren't really random: they depend solely on the player's input. In these cases it means there ''might'' be a pattern of input that produces the same or similar results if repeated. This manipulation is very important for boss fights, where you want the boss to behave a certain way.
  
  
=Planning=
+
==Using audiovisual cues==
Planning is a core element of pretty much every speedrun. Whether it is hitpoints, ammo, weapons or routes, everything must be thought through before actual speedrun attempts begin: you don't have time to think about what you should and shouldn't do during a speedrun, you should ''know'' it. Planning is often a difficult and tedious process, but there are several common rules that can make it easier.
+
Speedrunning frequently involves the use of high-precision tricks. Mastering these tricks is often the key to a successful speedrun. Every trick is different, but there are a few things to keep in mind that can improve your success rate.
  
 +
* Use the surroundings to help position yourself properly. For example, look for markings on the floor or nearby walls to know where to stand. Another example is that you may want to aim in a certain direction before performing a trick. To help you do this, you might line up a certain part of the surroundings with a health bar or some other element of on-screen display.
 +
* Adjust the camera. Many tricks can be made much easier by just having a different camera angle. You can combine this with the above tip.
 +
* Use the surroundings or the character's animation to help you time things. An example of using the character is in The Legend of Zelda: Ocarina of Time, where you can time bomb hovers by looking at Link's breathing. An example of using the surroundings could be something as simple as "put a bomb down when you pass a certain point."
 +
* Use sounds effects to help you time things. Like using the surroundings to position yourself, this is heavily dependent on the individual game and trick. One example is in Super Mario Sunshine, where you can reach a certain ledge early by using a triple jump and then hovering at the peak of your jump. The camera doesn't always let you see Mario when he's at the peak of his jump, but the "whish whish whish" sound can be heard no matter how bad the camera is and can be used to reliably time your hover.
 +
* You can use a metronome to help yourself perform tricks requiring extreme timing in long segments or single-segment runs, in case a game doesn't provide sufficient audio cues. Set it up at 60, 90, or 120 bpm for convenience.
 +
 +
 +
==Taking advantage of the controller==
 +
Using the controller in a different way may enable you to perform certain tricks a lot more effectively.
 +
 +
For instance, you can press two buttons in rapid succession with the same finger by tilting it (an example is [http://www.youtube.com/watch?v=ktHS4V4pxeU shield-dashing] in Symphony of the Night).
 +
 +
Alternatively, if you need to press two buttons in very quick succession and you'd normally press both with the same finger, try holding the controller such that you press the buttons with two different fingers. Depending on the controller, you can use even more fingers to reach higher button-mashing speeds, as [http://www.youtube.com/watch?v=ciOM2daxIe4 demonstrated] by FlyHec!
 +
 +
 +
=Planning=
 +
Planning is a core element of pretty much every speedrun. Whether it is hitpoints, ammo, weapons or routes, everything must be thought through before actual speedrun attempts begin: you don't have time to think about what you should and shouldn't do during a speedrun, you should ''already know'' it. Planning may become a difficult and tedious process, but there are several common rules that can make it easier.
  
==Hoarding powerups==
 
Be sure to collect only as much HP and ammo powerups as needed for maximum speed. It might be hard to avoid getting a powerup at first, but eventually you should get used to it. Likewise, if you've been granted surplus powerups, be sure to use them effectively (if you can).
 
  
If a game gives an additional time-consuming bonus for leftover ammo or HP (like in early Castlevania games), it is advantageous to discard them if it doesn't cost time.
+
==Studying the game==
 +
* Knowledge is power! Make sure you have studied all the available material on the game you have chosen from [[SDA_Strategy_Wiki#External_links|reliable sources]] before making any actual attempts. There is always a possibility that you are overlooking something already known. Being overconfident in this respect can be detrimental to your performance.
 +
* If there already is a speedrun of the game online, be sure to check it carefully and be able to explain every single one of the player's actions. If there is an up-to-date TAS, that's also great: if you read the run comments and discuss the tricks with its author(s), you should be able to learn new ideas for timesavers and adapt them to your capabilities. Also, if you find or suspect that the game you are speedrunning has an engine similar to another game that has already had a speedrun submitted, check it out to see if particular tricks or glitches used in it are applicable to your game as well.
 +
* Look for a different way to do something. Just because the first posted video of a trick shows it being done a certain way, it doesn't mean that is the only way to do it. Maybe you can tweak the positioning and timing to make the trick faster and/or easier, or perhaps there is a completely different way to accomplish the same thing.
 +
* Do something unusual, set up glitches, try your best to confuse the game and see if it grants any unexpected results. Think outside the box, don't be shy to experiment. That's how many great glitches are found.
  
  
 
==Item collection==
 
==Item collection==
Some games, like the Zelda or Metroid series, require items to access formerly inaccessible locations of the game world or increase the player's health or ammunition.
+
Some games, like those of the Zelda or Metroid series, require items to access formerly inaccessible locations of the game world or increase the player's health or ammunition.
 +
 
 +
===Hoarding powerups===
 +
Be sure to collect only as much HP and ammo powerups as needed for maximum speed. It might be hard to resist getting a powerup at first, but eventually you should get used to it. Likewise, if you've been granted surplus powerups, be sure to use them effectively (if you can).
 +
 
 +
If a game gives an additional time-consuming bonus for leftover ammo or HP (like in early Castlevania games), it is advantageous to discard them where it doesn't cost time.
  
 
===Determining the necessary item set===
 
===Determining the necessary item set===
Line 134: Line 158:
 
After you've determined the minimum of items required to go through the game, you can see if there are items along your way that can speed the run up further. In this context, pay attention to everything you can pick up without deviating from the general route. Items like these usually have higher ratio of time saved per time spent getting. Do note that an early game item might be skipped in favor of a later one that gives more substantial benefits.
 
After you've determined the minimum of items required to go through the game, you can see if there are items along your way that can speed the run up further. In this context, pay attention to everything you can pick up without deviating from the general route. Items like these usually have higher ratio of time saved per time spent getting. Do note that an early game item might be skipped in favor of a later one that gives more substantial benefits.
  
If the game has an item that speeds the rest of the game substantially but requires a large detour to get, make sure to run tests (again, emulators may be helpful in this context).
+
If the game has an item that speeds the rest of the game substantially but requires a large detour to get, make sure to run tests (emulators can come in handy with their assorted timing capabilities, see the [[#Using emulators|using emulators]] section below).
  
 
===100% item collection===
 
===100% item collection===
Line 140: Line 164:
  
 
More often than not the best strategy for 100% item route planning is coming up with a route that eliminates as much backtracking as possible. In other words, every area should ideally be visited 1-2 times (where the second time is usually called cleanup). Even if a game has a powerup that massively speeds up the player, it often takes more time to return to a previous area than to pick up all its items the first time around, even if the process by itself is slower.
 
More often than not the best strategy for 100% item route planning is coming up with a route that eliminates as much backtracking as possible. In other words, every area should ideally be visited 1-2 times (where the second time is usually called cleanup). Even if a game has a powerup that massively speeds up the player, it often takes more time to return to a previous area than to pick up all its items the first time around, even if the process by itself is slower.
 +
 +
=Using emulators=
 +
While emulators can't directly help you get a run on SDA, they surely can help you ''prepare'' for making a run on the actual hardware that is eligible for SDA's verification process. If you have a comfortable controller, a way to get a hold of emulators and game files, and a bit of patience to learn the software features, you'll be able to tell precisely:
 +
* damage values of your attacks and the hitpoint count of each enemy;
 +
* the movement speed of your character and how much does moving suboptimally slow them down;
 +
* the invincibility periods of both your character and bosses;
 +
* trigger timers;
 +
* possibility of adapting TAS tricks to realtime conditions via savestate practice;
 +
* feasibility of detours and taking surplus items;
 +
* mechanics of the in-game timer (for games that have it).
 +
 +
Whether the benefits outweigh the complications in this case is your call. The text below assumes you are ready to use emulators in preparation for making a speedrun.
 +
 +
 +
==Making a reference run==
 +
It is often handy to have a reference run tailored exactly for your skill level so that you could compare to it and see your abilities and limitations clearly. But since no-one can make this run beside yourself, it might become a problem. A possible solution is making a ''mock run''. A mock run is a speedrun made in the emulator at normal speed for testing purposes, using savestates or a rewind feature so that avoidable mistakes could be prevented. This will provide you with a reference gameplay that you ''know'' you should be able to reproduce, as well as a target time to aspire for.
 +
 +
===A simple guide===
 +
You will need:
 +
* a game file (ROM) for the system you want to play it on (let's say Donkey Kong for NES — ''don't ask us for directions on where to get it!'');
 +
* a re-recording emulator for the same system (for NES, it is FCEUX);
 +
* a PC-compatible controller (a good keyboard also works, but most players find it a lot less comfortable).
 +
 +
''TODO: write the guide, make it user-friendly''
 +
 +
 +
==Monitoring hidden values==
 +
''TODO: write a simple guide on memory watch''
 +
  
 
=See also=
 
=See also=
 
[[Bughunting]] — a guide to discovering and taking advantage of programming errors in games.
 
[[Bughunting]] — a guide to discovering and taking advantage of programming errors in games.

Latest revision as of 07:18, 27 February 2011

Although many types of games exist, there are still lot of optimization and planning techniques that apply to any game.

TODO: add more examples and link them to game pages.


Basic techniques

These tricks are common to most games, especially platformers, yet they often tend to be overlooked by beginning speedrunners. Make sure to pay attention to these techniques!


Avoiding common slowdowns

Jumping

In many platform games, movement on slopes or curves is slower than movement on flat ground. This is commonly bypassed by jumping or other kinds of aerial movement.

In many cases jumping also slows the player down. In this case, minimize jumps, and if the game allows it, their height as well.

If a game has ladders, see if it's possible to jump up or down from them.

Damage knockback

When a player character takes damage in a game, they are usually knocked back. In some cases the player is also paralyzed for a short period of time. If avoiding damage doesn't seem to be feasible, you can try minimizing the delay by taking damage in different conditions: while airborne, while turned around, and so on.

Lag reduction

Computation-intensive games coupled with game consoles' hardware constraints (or simply bad coding) are prone to creating artificial slowdown, also known as lag. On a lag frame the console is busy calculating the information required to draw next frame. If a speedrun's time isn't measured using in-game timer, lag puts runner at a severe disadvantage as they are losing precious time even when nothing is done wrong. However, it might be possible to reduce lag by carefully determining what produces it. Testing on an emulator with lag counter may help a lot, although beware: emulators do not always emulate lag accurately.

A common factor that creates or increases lag is large amount of objects (or polygons, for 3D games) on screen, such as explosions, enemies, or bullets.

Methods of reducing lag in 2D platformers include killing enemies and minimizing the number of shots on screen. You can reduce lag in some early 3D console games by looking at the floor or walls to reduce the amount of processing required to draw frames.

Building up momentum

In nearly all games with horizontal or vertical acceleration (you can tell it if the player character's moving speed increases as it moves in a given direction), it should be possible to save time by building up momentum before you are allowed to move in a desirable direction. In practice, this usually boils down to two major examples.

Jumping before a fall

If the character's horizontal speed isn't significantly reduced during a jump, it is usually a good idea to jump just before you fall off a platform to have a higher vertical momentum by the time you clear the ledge. This is further emphasized if you need to change horizontal movement direction after you clear the ledge (but the gain can be negated if a game doesn't allow changing directions while airborne, like Ghosts 'n Goblins or Castlevania). A good example of jumping before a fall is Mega Man series; jumping before a fall is frequently seen in speedruns to save time, especially in the Mega Man 9 time attacks.

Running towards opening doors

If a game has doors or other temporary blockades you have to wait for (like in Metroid series), it might be possible to go slightly back and use the distance and waiting time to accelerate. This way, by the time the blockade is cleared, the character will be moving at a high speed, saving the time needed to accelerate.


Advanced techniques

These techniques are not as common as the basic techniques. They usually require better character handling and might be difficult to perfect, but the result is usually worth it.


Optimizing movement speed

In vast majority of games, simply moving forward (in straight lines for 3D games) is faster. In 3D games this also means you need to sharply cut corners, moving in a shortest possible path from A to B. However, there are exceptions.

Diagonal movement

Certain games, usually overhead 2D games or first-person action games, sum up forward and sideward movement vectors, increasing your diagonal speed above that of a regular forward movement. This can be abused if you turn the character at an angle (usually 45° to the target direction). In other words, you run sideways. This technique is commonly known as straferunning.

Examples: Contra 3 overhead stages, Doom.

Utilizing faster-than-running moves

Many action games (both 2D and 3D) have moves that allow you to dodge or attack with a method that is faster than normal movement, even if it means moving in a non-straight line. Carefully examine all types of movement (especially jumps and other aerial attacks) before deciding on an optimal way.

Examples: Ocarina of Time, Metroid Prime.

Bunny hopping

Bunny hopping is repeated jumping in order to preserve horizontal momentum. Bunny hopping is used in two ways. The first is avoiding downtime after a certain in-game physics event, like falling from a large height in platformer games (Super Castlevania IV) or beginning horizontal movement (Darkwing Duck). Another is minimizing friction after building up a high movement speed (Rocket Knight Adventures, Quake series and many other FPS games). More often than not bunny hopping allows jumping without horizontal speed penalty.

Examples: Quake, Half-Life.


Abusing hitpoints/life

In a speedrun, the character's health is a currency, it can and should be used to speed up the gameplay if the game allows it. There are several common ways to do so.

Damage boosting

Taking damage from an enemy is often faster than dodging it. Sometimes taking damage can create a major sequence breaking opportunity, because a successful damage boost can propel the character past a normally impassable checkpoint, or to an otherwise unreachable distance (Castlevania: Symphony of the Night). Some games also have a dodging move that can be abused this way (Super Metroid).

A special case of damage boosting is using the player's own weaponry. Notable examples include rocket and grenade jumping in the Quake and Half-Life series.

Invincibility period abuse

Abusing an invincibility period resulting from a hit or a death often allows the player to bypass instant-kill obstacles such as spikes. In some games, the invincibility period also lets the player use enemies as platforms (see also: damage boosting).

Example: Mega Man series.

Respawn abuse

If dying respawns the player in the same screen he or she died, it may allow climbing heights faster (Chip 'n Dale), cross pits (Contra 4), etc..

Checkpoint abuse

In games that have several checkpoints per stage, dying just as you reach one of them can benefit you by skipping a mandatory cutscene or refilling your HP and ammo.


Abusing uninterruptible moves

Certain games have moves that are frequently left uninterrupted by in-game cutscenes, like slides, jump attacks, tackles, and so on. If a game has a cutscene that forces the player character to freeze in place or slowly move towards a certain point on the screen, it might be a good idea to initiate an uninterruptible action just before the cutscene starts to let the character move [faster] during the downtime.

Examples: Castlevania: Circle of the Moon, Castle Crashers.


Bypassing unwanted triggers

Many games have cutscenes or in-game events that can lead to an unwanted slowdown. Sometimes there are ways to bypass these triggers.

Moving too fast

Certain triggers can be bypassed if you don't give them enough time to start. This usually means hitting another trigger (commonly a room transition) before the invisible timer expires.

Examples: Castlevania: Symphony of the Night (skipping the Richter fight), Super Metroid (skipping Torizo).

Moving around a trigger

In both 2D and 3D platform games, triggers are commonly placed as small areas of ground activated by stepping upon them. However, more often than not you can bypass these triggers by jumping over/around them or using an event that instantly moves you behind the trigger.

Example: Half-Life series.


Clipping through objects

As elaborated on the Bughunting page, collision detection in games isn't always perfect. There are sometimes ways to clip inside/through an object or terrain element by pressing into it at a certain angle, moving in a certain way, utilizing a collision-altering effect (such as invincibility period), using another object, or a transportation device (often as simple as a ladder, like in NES Donkey Kong). It's often possible to clip inside an object if it solidifies after the player character enters it.

Zipping

Some 2D games employ a protective mechanism that ejects the player character from a solid object, known as zipping. Since zipping commonly occurs at a very high speed (either horizontal or vertical), in some cases it's possible to abuse it by entering solid objects purposefully.

Examples: NES Mega Man games and other games with similar engines.


Luck manipulation

If a game has random events, it is possible to retry a segment (or a full run if length allows) until the odds are in the player's favor. These retries can save a lot of time in games that have critical hits or instant-kill attacks, like RPGs.

It should also be noted that in many games, the random events aren't really random: they depend solely on the player's input. In these cases it means there might be a pattern of input that produces the same or similar results if repeated. This manipulation is very important for boss fights, where you want the boss to behave a certain way.


Using audiovisual cues

Speedrunning frequently involves the use of high-precision tricks. Mastering these tricks is often the key to a successful speedrun. Every trick is different, but there are a few things to keep in mind that can improve your success rate.

  • Use the surroundings to help position yourself properly. For example, look for markings on the floor or nearby walls to know where to stand. Another example is that you may want to aim in a certain direction before performing a trick. To help you do this, you might line up a certain part of the surroundings with a health bar or some other element of on-screen display.
  • Adjust the camera. Many tricks can be made much easier by just having a different camera angle. You can combine this with the above tip.
  • Use the surroundings or the character's animation to help you time things. An example of using the character is in The Legend of Zelda: Ocarina of Time, where you can time bomb hovers by looking at Link's breathing. An example of using the surroundings could be something as simple as "put a bomb down when you pass a certain point."
  • Use sounds effects to help you time things. Like using the surroundings to position yourself, this is heavily dependent on the individual game and trick. One example is in Super Mario Sunshine, where you can reach a certain ledge early by using a triple jump and then hovering at the peak of your jump. The camera doesn't always let you see Mario when he's at the peak of his jump, but the "whish whish whish" sound can be heard no matter how bad the camera is and can be used to reliably time your hover.
  • You can use a metronome to help yourself perform tricks requiring extreme timing in long segments or single-segment runs, in case a game doesn't provide sufficient audio cues. Set it up at 60, 90, or 120 bpm for convenience.


Taking advantage of the controller

Using the controller in a different way may enable you to perform certain tricks a lot more effectively.

For instance, you can press two buttons in rapid succession with the same finger by tilting it (an example is shield-dashing in Symphony of the Night).

Alternatively, if you need to press two buttons in very quick succession and you'd normally press both with the same finger, try holding the controller such that you press the buttons with two different fingers. Depending on the controller, you can use even more fingers to reach higher button-mashing speeds, as demonstrated by FlyHec!


Planning

Planning is a core element of pretty much every speedrun. Whether it is hitpoints, ammo, weapons or routes, everything must be thought through before actual speedrun attempts begin: you don't have time to think about what you should and shouldn't do during a speedrun, you should already know it. Planning may become a difficult and tedious process, but there are several common rules that can make it easier.


Studying the game

  • Knowledge is power! Make sure you have studied all the available material on the game you have chosen from reliable sources before making any actual attempts. There is always a possibility that you are overlooking something already known. Being overconfident in this respect can be detrimental to your performance.
  • If there already is a speedrun of the game online, be sure to check it carefully and be able to explain every single one of the player's actions. If there is an up-to-date TAS, that's also great: if you read the run comments and discuss the tricks with its author(s), you should be able to learn new ideas for timesavers and adapt them to your capabilities. Also, if you find or suspect that the game you are speedrunning has an engine similar to another game that has already had a speedrun submitted, check it out to see if particular tricks or glitches used in it are applicable to your game as well.
  • Look for a different way to do something. Just because the first posted video of a trick shows it being done a certain way, it doesn't mean that is the only way to do it. Maybe you can tweak the positioning and timing to make the trick faster and/or easier, or perhaps there is a completely different way to accomplish the same thing.
  • Do something unusual, set up glitches, try your best to confuse the game and see if it grants any unexpected results. Think outside the box, don't be shy to experiment. That's how many great glitches are found.


Item collection

Some games, like those of the Zelda or Metroid series, require items to access formerly inaccessible locations of the game world or increase the player's health or ammunition.

Hoarding powerups

Be sure to collect only as much HP and ammo powerups as needed for maximum speed. It might be hard to resist getting a powerup at first, but eventually you should get used to it. Likewise, if you've been granted surplus powerups, be sure to use them effectively (if you can).

If a game gives an additional time-consuming bonus for leftover ammo or HP (like in early Castlevania games), it is advantageous to discard them where it doesn't cost time.

Determining the necessary item set

Not all items are required to finish most games. It's usually easier to go from the bare minimum and see if you can find a place you can't proceed to under any feasible circumstances. At that point, add one item that helps you bypass the obstacle and repeat the process. If several separate items can be used to bypass a given obstacle, see which of them saves more time in other places, and continue planning from there. After you've come up with a bare minimum, you can think of getting additional items to speed the process up.

Additional items

After you've determined the minimum of items required to go through the game, you can see if there are items along your way that can speed the run up further. In this context, pay attention to everything you can pick up without deviating from the general route. Items like these usually have higher ratio of time saved per time spent getting. Do note that an early game item might be skipped in favor of a later one that gives more substantial benefits.

If the game has an item that speeds the rest of the game substantially but requires a large detour to get, make sure to run tests (emulators can come in handy with their assorted timing capabilities, see the using emulators section below).

100% item collection

While 100% item collection alleviates the need to plan which items you have to take and partially covers the problem of power shortage, it brings another problem: what sequence to get the items in.

More often than not the best strategy for 100% item route planning is coming up with a route that eliminates as much backtracking as possible. In other words, every area should ideally be visited 1-2 times (where the second time is usually called cleanup). Even if a game has a powerup that massively speeds up the player, it often takes more time to return to a previous area than to pick up all its items the first time around, even if the process by itself is slower.

Using emulators

While emulators can't directly help you get a run on SDA, they surely can help you prepare for making a run on the actual hardware that is eligible for SDA's verification process. If you have a comfortable controller, a way to get a hold of emulators and game files, and a bit of patience to learn the software features, you'll be able to tell precisely:

  • damage values of your attacks and the hitpoint count of each enemy;
  • the movement speed of your character and how much does moving suboptimally slow them down;
  • the invincibility periods of both your character and bosses;
  • trigger timers;
  • possibility of adapting TAS tricks to realtime conditions via savestate practice;
  • feasibility of detours and taking surplus items;
  • mechanics of the in-game timer (for games that have it).

Whether the benefits outweigh the complications in this case is your call. The text below assumes you are ready to use emulators in preparation for making a speedrun.


Making a reference run

It is often handy to have a reference run tailored exactly for your skill level so that you could compare to it and see your abilities and limitations clearly. But since no-one can make this run beside yourself, it might become a problem. A possible solution is making a mock run. A mock run is a speedrun made in the emulator at normal speed for testing purposes, using savestates or a rewind feature so that avoidable mistakes could be prevented. This will provide you with a reference gameplay that you know you should be able to reproduce, as well as a target time to aspire for.

A simple guide

You will need:

  • a game file (ROM) for the system you want to play it on (let's say Donkey Kong for NES — don't ask us for directions on where to get it!);
  • a re-recording emulator for the same system (for NES, it is FCEUX);
  • a PC-compatible controller (a good keyboard also works, but most players find it a lot less comfortable).

TODO: write the guide, make it user-friendly


Monitoring hidden values

TODO: write a simple guide on memory watch


See also

Bughunting — a guide to discovering and taking advantage of programming errors in games.

Personal tools