Difference between revisions of "Generic techniques"

From SDA Knowledge Base

Jump to: navigation, search
m (Moving around the trigger: removing tautology)
(Added lag reduction, zipping and luck manipulation, moved invincibility period to its own subsection, added some stuff.)
Line 1: Line 1:
 
Although there is a multitude of different games in different genres, there are also a lot of optimization and planning techniques applicable to many of them.
 
Although there is a multitude of different games in different genres, there are also a lot of optimization and planning techniques applicable to many of them.
 +
  
 
=Basic techniques=
 
=Basic techniques=
Line 9: Line 10:
  
 
In many cases jumping also incurs a penalty on horizontal speed. In this case minimize the amount of your jumps and, if game allows that, their height as well.
 
In many cases jumping also incurs a penalty on horizontal speed. In this case minimize the amount of your jumps and, if game allows that, their height as well.
 +
 +
If a platformer game has ladders, see if it's possible to jump up or down from them.
  
 
===Damage knockback===
 
===Damage knockback===
 
If a player character can take damage in a game, it usually means it will knock it back, in some cases also paralyzing it for a short period of time. If avoiding damage doesn't seem to be feasible, you can try minimizing the negative effect by taking damage in different conditions: while airborne, while turned around, and so on.
 
If a player character can take damage in a game, it usually means it will knock it back, in some cases also paralyzing it for a short period of time. If avoiding damage doesn't seem to be feasible, you can try minimizing the negative effect by taking damage in different conditions: while airborne, while turned around, and so on.
 +
 +
===Lag reduction===
 +
Computation-demanding 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 time isn't measured using in-game timer, this 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 which in-game actions produce it and minimizing their amount. Testing on an emulator with lag counter may help a lot.
 +
 +
Common factors that create or increase lag are: large amounts of objects (polygons for 3D games) on screen, explosions. 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.
 +
  
 
==Optimizing movement speed==
 
==Optimizing movement speed==
Line 28: Line 37:
 
===Bunny hopping===
 
===Bunny hopping===
 
Bunny hopping is a generic technique that consists of repeated jumping in order to preserve horizontal momentum. This is commonly 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 it also means that the game allows jumping without horizontal speed penalty.
 
Bunny hopping is a generic technique that consists of repeated jumping in order to preserve horizontal momentum. This is commonly 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 it also means that the game allows jumping without horizontal speed penalty.
 +
  
 
==Building up momentum==
 
==Building up momentum==
Line 37: Line 47:
 
===Running towards opening doors===
 
===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.
 
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=
 
=Advanced techniques=
Line 45: Line 56:
 
===Damage boosting===
 
===Damage boosting===
 
Taking damage from an enemy is often faster than dodging it. In certain cases, most notably platform games, it allows major sequence breaking as a successful damage boost propels the player character to an otherwise unreachable distance or allows it to skip an otherwise mandatory checkpoint (example: Castlevania: Symphony of the Night). Some games also have a dedicated dodging move that can be abused this way (example: Super Metroid).
 
Taking damage from an enemy is often faster than dodging it. In certain cases, most notably platform games, it allows major sequence breaking as a successful damage boost propels the player character to an otherwise unreachable distance or allows it to skip an otherwise mandatory checkpoint (example: Castlevania: Symphony of the Night). Some games also have a dedicated dodging move that can be abused this way (example: Super Metroid).
 +
 +
===Invincibility period abuse===
 +
Abusing invincibility period resulting from a hit or a death often allow the player character to bypass instant-kill obstacles such as spikes. In some games it also allows using enemies as platforms (see also: damage boosting).
 +
 +
Example: Mega Man series.
  
 
===Respawn abuse===
 
===Respawn abuse===
If dying in a game allows you to respawn in the same stage without resetting it (or reverting to a checkpoint), it can be taken advantage of in several ways: abusing invincibility period to bypass instant-kill obstacles, climbing heights faster, crossing pits, etc..
+
If dying in a game allows you to respawn in the same stage without resetting it (or reverting to a checkpoint), it can be taken advantage of in several ways, like climbing heights faster, crossing pits, etc..
  
 
===Checkpoint abuse===
 
===Checkpoint abuse===
 
In games that use several checkpoints per stage, dying just as you reach one of them can benefit you by skipping a mandatory cutscene or refilling your HP/ammo reserves.
 
In games that use several checkpoints per stage, dying just as you reach one of them can benefit you by skipping a mandatory cutscene or refilling your HP/ammo reserves.
 +
  
 
==Bypassing unwanted triggers==
 
==Bypassing unwanted triggers==
Line 64: Line 81:
  
 
Example: Half-Life series.
 
Example: Half-Life series.
 +
  
 
==Clipping through objects==
 
==Clipping through objects==
As elaborated on [[Bughunting]], collision detection in games isn't always perfect. In certain cases it means there are ways to clip inside/through an object or terrain element by pressing into it with a certain force or under a certain angle, while under a certain movement- or collision-altering effect (such as invincibility period), by using another object, or a transportation device (often as simple as a ladder, like in NES Donkey Kong).
+
As elaborated on [[Bughunting]], collision detection in games isn't always perfect. In certain cases it means there are ways to clip inside/through an object or terrain element by pressing into it with a certain force or under a certain angle, while under a certain movement- or collision-altering effect (such as invincibility period), by 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 already 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 on similar engines.
 +
 
 +
==Luck manipulation==
 +
If a game has random events, it should be possible to retry a segment (or a full run if its length allows) until the odds are strictly favorable throughout. This can lead to a lot of time saved in games which rely on critical hits or instant-kill attacks, like RPGs.
 +
 
 +
It should also be noted that in pretty much all cases, all random events in a videogame aren't really random: they depend solely on player's input. In most cases it means there might be a pattern of input that produces the same or similar results if repeated more-or-less precisely. This is very important for boss fights, where you want the boss to behave as you want it to.

Revision as of 08:08, 28 August 2009

Although there is a multitude of different games in different genres, there are also a lot of optimization and planning techniques applicable to many of them.


Basic 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 incurs a penalty on horizontal speed. In this case minimize the amount of your jumps and, if game allows that, their height as well.

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

Damage knockback

If a player character can take damage in a game, it usually means it will knock it back, in some cases also paralyzing it for a short period of time. If avoiding damage doesn't seem to be feasible, you can try minimizing the negative effect by taking damage in different conditions: while airborne, while turned around, and so on.

Lag reduction

Computation-demanding 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 time isn't measured using in-game timer, this 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 which in-game actions produce it and minimizing their amount. Testing on an emulator with lag counter may help a lot.

Common factors that create or increase lag are: large amounts of objects (polygons for 3D games) on screen, explosions. 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.


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). 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 in a way whose speed exceeds that of normal running, even if it means moving in a non-straight line. Carefully examine all ways of movement (especially jumps and other aerial attacks, since they are less prone to friction) before deciding on an optimal way of movement.

Examples: Ocarina of Time, Metroid Prime.

Bunny hopping

Bunny hopping is a generic technique that consists of repeated jumping in order to preserve horizontal momentum. This is commonly 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 it also means that the game allows jumping without horizontal speed penalty.


Building up momentum

In nearly all platformers or platform-based games that employ 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.

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).

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

Abusing hitpoint/life reserves

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

Damage boosting

Taking damage from an enemy is often faster than dodging it. In certain cases, most notably platform games, it allows major sequence breaking as a successful damage boost propels the player character to an otherwise unreachable distance or allows it to skip an otherwise mandatory checkpoint (example: Castlevania: Symphony of the Night). Some games also have a dedicated dodging move that can be abused this way (example: Super Metroid).

Invincibility period abuse

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

Example: Mega Man series.

Respawn abuse

If dying in a game allows you to respawn in the same stage without resetting it (or reverting to a checkpoint), it can be taken advantage of in several ways, like climbing heights faster, crossing pits, etc..

Checkpoint abuse

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


Bypassing unwanted triggers

Many games have cutscenes or in-game events that can lead to an unwanted slowdown. In some cases there are ways to bypass them.

Moving too fast

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

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

Moving around the trigger

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

Example: Half-Life series.


Clipping through objects

As elaborated on Bughunting, collision detection in games isn't always perfect. In certain cases it means there are ways to clip inside/through an object or terrain element by pressing into it with a certain force or under a certain angle, while under a certain movement- or collision-altering effect (such as invincibility period), by 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 already 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 on similar engines.

Luck manipulation

If a game has random events, it should be possible to retry a segment (or a full run if its length allows) until the odds are strictly favorable throughout. This can lead to a lot of time saved in games which rely on critical hits or instant-kill attacks, like RPGs.

It should also be noted that in pretty much all cases, all random events in a videogame aren't really random: they depend solely on player's input. In most cases it means there might be a pattern of input that produces the same or similar results if repeated more-or-less precisely. This is very important for boss fights, where you want the boss to behave as you want it to.

Personal tools