The OODA Loop
|The OODA Loop|
|Utilize Probe Speed to outmaneuver enemies in battle|
Summary[edit | edit source]
This project is unlocked by buying Combat and having lost >10M probes in combat. .
"OODA" is a reference to the military strategy of Observe, Orient, Decide, and Act.
Survival Chance[edit | edit source]
Due to the way the combat code interacts with the OODA Loop, having a sufficiently high speed stat can guarantee a probe's survival, even when vastly outnumbered. (Why this happens will be explored in the next section)
Given a ratio of hostile and friendly probes interacting in a single cell, the formula for the required speed is
4.375 * (hostile / friendly) - 2.5.
Given a speed factor, any friendly probe is guaranteed survival until they are outnumbered more than
(speed + 2.5) / 4.375 to 1.
Mechanics[edit | edit source]
DoCombat function on line 462 of
Whenever probes "fight" (i.e. at least one friendly and one hostile probe occupy the same pixel), each probe rolls dice, and if the value is higher than a certain threshold they are killed. Drifters and friendly probes each have different formulas for their dice rolls: (
numFriendly are the number of drifter and friendly probes that are present in the pixel)
- The fomula for friendly probes is
Math.random() * drifterCombat * (numDrifters/numFriendly) * 0.5
- The fomula for hostile probes is
(Math.random() * probeCombat * 0.15 + probeCombat * .1) * (numLeftTeam / numRightTeam) * 0.5
Notice that the OODA Loop doesn't effect either of these factors, rather it becomes a flat bonus on the death threshold, adding
probeSpeed * 0.2 to the base value of
0.5. That means that as long as the dice roll is less than or equal to
0.5 + probeSpeed * 0.2, the probe will survive.
The first step is to calculate the formula for the absolute maximum possible dice roll. Since
drifterCombat is simply a constant set to
1.75, we can combine it with the
0.5 and get
0.875, and since
Math.random() is never greater than
1.0, replacing that with
1.0 will get the maximum possible dice roll for a given drifter:friendly ratio. Doing this, the maximum dice roll comes out to
0.875 * (numDrifters/numFriendly).
Bringing this all together, as long as
0.875 * (numDrifters/numFriendly) is less than or equal to
0.5 + probeSpeed * 0.2, it is impossible for the friendly probe to die. Rearranging this equation results in the formulas shown above.