TASVideos

Tool-assisted game movies
When human skills are just not enough

Luck Manipulation

Luck manipulation is the act of controlling how the game determines "random" results through input. It has many names, including "luck abuse", "randomness abuse", or "RNG abuse".

We should emphasize that the computer, being a deterministic machine, has no concept of randomness. All it does is follow instructions. To simulate a stream of effectively random numbers, the computer uses a pseudo-random number generator (often called random number generator and known as a RNG or PRNG).

The pseudo-random number generator is just an algorithm that produces a sequence of numbers that is not easily predictable, for the purpose of the game. There are well-known algorithms for producing numbers such as:

Or the game may simply use an "entropy blob", a quantity which is affected by many sources (including possibly your input) and is essentially chaos.

These are just a few of the many possible ways the game can create pseudo-random streams of numbers. The game uses these RNG values to calculate random decisions, such as:

This is where luck-manipulation comes in. Luck manipulation is the act of controlling random decisions through input so that the results occur in your favor.

How often does the game cycle the RNG?

In order to be of any use, the game must cycle the RNG at least once when determining random events. However, there are differing approaches to when the game cycles the RNG.

What can I do about it?

Chances are, you can affect random decisions through input.

The GIF of Darkwing Duck on the right shows how delaying a frame each time causes a different drop.

Luck manipulation problems

Point of determination

Let's say you are TASing Pokemon and your Pokemon, normally slower, is holding Quick Claw, so it has a 1/4 chance of going first. You try to manipulate by delaying before selecting the attack. However, no matter how many frames you delay, your Pokemon will never go first. What went wrong?

It is very important to find out when the game has decided the random action. Otherwise, you might be wasting rerecords trying to manipulate something that has been determined not to work.

In the case above, Quick Claw activation was decided before the menu appeared for your current turn. Since Quick Claw was already determined not to work, your Pokemon will always go second.

If a scenario appears where you can't manipulate an action that should be able to be manipulated, try searching backward (in the movie) until you discover when inputs can change the result.

AI

In games where decision-making is involved, the game will often have a decision-making process for the computer players, colloquially called "AI". You are limited by what the AI can do.

Say the AI can make a good move, and you want it to make some other move. If making that good move is the only result of the AI's decision, there is nothing you can do about it. The only thing you can do is to try to arrange a scenario where the AI is not in a position to make that move or regard it as a good move.

This also applies to flawed AI decisions that regard bad moves (to human players) as good moves. The only factor is the AI's insistence on making that move.

Other issues

Especially in games where enemy behavior is to be manipulated, check to make sure that the circumstance allows manipulation.

  • Some enemies have set behaviors.
  • Some always use a particular attack under some circumstance. It could be when at low health, or depending on your position or status.

Remember that you can only bend a game as far as its game mechanics will allow. Some games use a damage mechanic, with some form of randomness. You can't do more damage than the maximum possible value calculated by the mechanic, even if randomness goes your way.

Rarity

While not technically a problem, rarity (usually on the order of 1/1000 or worse) of an event, or a sequence of events, can be perceived as one due to the non-occurrence of the event in any reasonable amount of time. There are ways to deal with it:

  • See below for tips on how to improve luck-manipulation. Specifically, subdividing a manipulation of a sequence of events into multiple manipulations may increase the probability of the whole sequence.
  • Understand how the formula works, then apply it for this event.
  • Use Lua or program a simulator to brute-force for this event.
  • Give up.

Tips for luck manipulation

Subdivision of a sequence of events

Suppose that you want to manipulate three events, each of which occur shortly after the other. Each event has 1/16 chance of occurring, so the total probability is (1/16)^3, or 1/4096, which isn't very high.

However, if it is possible to insert meaningful input (such as delays) between these events, then instead of one manipulation for three events, it becomes three manipulations, each for one event. This is much easier to manipulate because each event has probability 1/16.

It is much easier to manipulate many outcomes, if there is a high degree for which controllable input can manipulate these outcomes one block at a time. It is even easier to do if an entropy blob is involved. Unfortunately, this is not always possible, especially in the case where the RNG is rarely cycled.

RNG memory address, and monitoring

Wouldn't it help to know which actions cycle the RNG?

This is where monitoring the RNG in memory is useful. By observing when it changes and how, one can figure out if some action can be used to help manipulation.

For example, suppose the RNG in memory tends not to change, but changes whenever you shoot a particular weapon. Then you know that shooting this weapon is useful for luck manipulation. Furthermore, you witness some enemy behaviors changing the RNG as well. You know then that this behavior can be manipulated.

Even if the RNG always changes, sometimes some action causes it to change more than usual. This usually means that this action is useful for manipulation.

You need to find the RNG in memory first. See Memory Search for details. Then watch it in memory.

The RNG formula

In general, determining the algorithm of the RNG is not easy, and finding out how the game uses these random numbers is even more difficult. TODO

Examples

One of the prime examples of luck manipulation is the Dragon Warrior movie. The player abuses luck in his movie of this game in different ways.
  • All undesired enemy encounters are avoided by stopping his motion for a frame or two at various times along the player's path.
  • When encountering enemy, its HP is manipulated to be as low as possible.
  • Critical hits are gotten 100% of the time by scrolling through the battle menu and waiting to attack on a particular frame. A single frame of difference would not have resulted in a critical hit.
  • When using an enemy encounter to suicide, the enemy is manipulated to attack first.

More reading



Combined RSS Feed
LuckManipulation last edited by feos on 2013-07-28 17:53:22
Page info and history | Latest diff | List referrers | View Source