Ion Storm Physics


[Fancy image of a Lady Royale inside a storm]
"I'm asking myself whether it was a good idea to show our tourists a storm from the inside?"

Ion storm formulas are probably among the least known in the Planets community. So, like others sat down to reveal the exact population growth rules, I did my best to find out the Storm formulas for Tim's host. And because many people until now requested them, I decided to write them down here. Enjoy!

This article was first published in October 2000, and updated a few times inbetween.

General

Ion storms are circular subspace disturbances that move rather randomly through the Cluster and affect ships. They are characterized by a position, heading (specified in degrees, like ship headings), voltage (strength of the storm, measured in MeV), and a radius (size of the disturbance in light years); and a storm can be either growing or weakening.

Growing storms always have odd voltages, weakening ones have even voltages. This means that adding one to the voltage changes the storm's status.

Ion storms are grouped in classes, depending on their strength (voltage):

VoltageClassDe-cloak?Damage
0 .. 49 MeVClass 1 (harmless)YesNo
50 .. 99 MeVClass 2 (moderate)
100 .. 149 MeVClass 3 (strong)
150 .. 199 MeVClass 4 (dangerous)YesYes
more than 200 MeVClass 5 (very dangerous)

Movement of Ion Storms

The speed of the storm is determined using the first matching rule of the following:

  • In Host 3.22.003 and later, storms with more than 250 MeV always move at Warp 8.
  • Storms smaller than 200 ly move at Warp 6.
  • For other storms, a dice is rolled. The storm moves at Warp 2 with a 20% chance, Warp 3 with 48%, and Warp 4 32% of all times.

The storm now moves, using the heading reported in the Ion Advisory messages, and the usual movement rules (travelled way = square of Warp).

The heading for the storm to take next turn is random, between +10 and -10 degrees from the current heading. The new heading is reported to players. The reported Warp speed is worthless, at least for the third category above: it will change until the storm moves next time.

Growing Storms

All storms start as growing storms, with an odd voltage. Each turn, the voltage increases by a random amount between 0 and 10 MeV (in steps of 2). The radius decreases by 0..3 ly. If a storm's radius gets negative, the storm gets weakening by receiving one extra MeV; the new radius is then 1 - Radius.

Growing storms may turn in to weakening ones. This is done by increasing their voltage by one. The chances for doing so are, in each turn

  • 1% (for all storms)
  • 2.5% if the voltage is more than 320 MeV
  • 10% if the voltage is more than 500 MeV

Note that each storm gets all applying chances in series, so it can happen that a 400 MeV storm increases by 2 MeV because it ``won'' both the 1% and the 2.5% chance.

Weakening Storms

Each turn, the voltage is reduced by 4 to 14 MeV, in steps of 2. Should the voltage drop to zero or less, the storm disappears.

The documentation describes the pancaking effect. This happens at a chance of 3.33% per turn: pancaking storms have their radius doubled, and their new voltage is the square root of the original voltage.

The storm size increases by a random amount between 0 and 10 ly each turn, after the above effects happened.

Ion Storms Merging

If two storms come close enough, they merge into one. If two storms are close enough for this is determined by the following formula:
  (x1 - x2)2 + (y1 - y2)2 < (radius1)2 + (radius2)2
Note that there is no real geometric interpretation for this formula. While the left side is the squared distance of the ion storm centers, the right side doesn't make sense. If we'd like to express that the storms just touch (like enemy minefields which can touch, but not overlap), the right side had to read (radius1 + radius2)2; if we'd want to express that one center were inside the other storm, we'd compare to (radius1)2 and (radius2)2 in two equations. To cut a long story short, storms have to overlap somewhat to merge, but they need not cover each other completely.

In addition, one of the storms must be stronger than the other (greater voltage); two storms of equal power do not merge.

Once we know that two storms merge, we have to compute the new position and size of the storm. It will keep the same Id number, warp factor and heading like the stronger of the two storms. The new center lies on the line between the two original centers, where
  (new x) = x1 + (x2 - x1) * (voltage1) / (voltage1 + voltage2)
or, simplified,
  (new x) = ((x1*voltage2) + (x2*voltage1)) / (voltage1 + voltage2)
The formula for the Y coordinates is the same with Y instead of X. You may have noticed that this pulls the new center towards the weaker(!) storm, not towards the stronger one like one could guess.

The new voltage of the storm is (voltage of stronger storm) + sqrt(voltage of weaker storm) (with sqrt = square root), likewise for the new radius (radius of stronger storm) + sqrt(voltage of weaker storm). From these equations, it follows implicitly whether the new storm grows or weakens.

Merging of storms happens after movement, but before the ship effects and before generation of new storms.

Ship Effects

Ion storms affect ships. All ion storms, no matter how weak, de-cloak ships. Only the advanced cloakers are safe from this.

Storms with 150 MeV or more affect uncloaked ships. That is, only advanced cloakers can safely travel through such an ion storm -- cloaked.

Ships are affected if they're inside the storm after the storm moved, but before they moved themselves (all Ion storm related things are quite early in the host order).

  • Ships are pulled 75% if the way the storm travels. That is, a Warp 4 storm pulls ships 12 ly (=75% of 16 ly). This can be used for ion storm surfing: if your ship is heavy and/or experienced, or the storm is weak enough (but has at least 150 MeV!), you can move into the storm and have your ship pushed by it. This way, you can manage to travel more than 81 ly a turn. Ships move their 75% even when they're outside the storm afterwards.
    Because ships are affected after storm movement, ships are pulled along the new heading, although the storm may have moved into a different direction.
  • Ships are damaged: The damage taken is Storm_Voltage - Ship_Mass - Ship_Experience + 20*(10-Ship_Engine) (in damage points, i.e., percent). This value increases by 50 if the ship doesn't have fuel.
  • If the above causes the ship to take damage, it also loses crew: Storm_Voltage - Ship_Mass - 2*Ship_Experience + 0.3*Ship_Crew
  • In very dangerous storms (voltage > 410 MeV), ships will be hit by an energy vortex. This throws them to a random place in the universe, but the energy flux will also cause the fuel tanks to become full.

Note that the Ship_Mass seems to be the mass of the ship at the beginning of the turn, that is, the same as it was in your last RST. So load your ships with cargo early, not in the same turn you enter the storm.

Ships in an ion storm get experience. Roughly, you get one experience point for every 20 MeV the storm has more than 140 MeV.

VoltageExperience
up to 1600
161 to 1791
180 to 2002
201 to 2193
220 to 2404
241 to 2595
260 to 2806
VoltageExperience
281 to 2997
300 to 3208
321 to 3399
340 to 36010
361 to 37911
380 to 40012
...and so on

The actual formula is
  Experience_Gained = ERnd((Storm_Voltage - 150) / 20)
where ERnd rounds arithmetically, except that numbers ending in .5 exactly are rounded towards the nearest even integer, yielding uneven interval sizes in the above table.

Experience?

Ship experience is mentioned in the original documentation, but due to the fact that it's normally kept secret, the experience rules are close to unknown.

  • A ship gets one point for each turn it moves more than 25 light years.
  • A ship gets 20 experience points for surviving a battle.
  • A Merlin Class Alchemy Ship gets one point for every 100 kt supplies converted (amounts smaller than 100 kt are not counted).
  • A Neutronic Refinery Ship gets one point for every 100 kt fuel in its tank after alchemy (it's just the fact of having fuel that counts, not the amount converted).
  • Experience will not grow over 25000 points. Actually, experience from movement and ion storms has no such limit, but you'll rarely move 25000 turns without being encountered in combat :-)

Other Effects

Storms outside the range (0,0)-(4000,4000) disappear the turn after they moved there. It is possible (though not very likely) to have storms at coordinates usually considered invalid: I already had a storm with a negative X.

If there are more storms than the Host Configuration allows, the weakest ones disappear.

Newly generated storms may have different warp factors reported (Warp 5 and Warp 7 are not possible according to the above rules). However, reported warp factors are worthless anyway as Host re-computes them before actual storm movement. Up to three new storms can be born per turn.

When I say random value between A and B, the border cases are less likely than the others due to rounding effects.

New Ion Storms

New ion storms do not appear completely random, but they follow certain rules.

  • There can be up to three new storms per turn. The HConfig-set maximum may be exceeded by one or two, this will cause the weakest storms to disappear next turn.
    09%
    141%
    241%
    39%
  • Storms start at a distance of 500 to 1200 ly from the center. No storm will be born farther outside or nearer inside.
  • Storms have a starting radius of 0 to 200 ly.
  • Storms always move inwards. The starting direction is towards the center (2000, 2000), plus/minus up to 40 degrees. Storms never start moving outwards.
  • The starting voltage is random, between 0 and Number_of_ships / 5 MeV. Therefore, you only get rather weak storms in the beginning of the game; stronger storms (if you want to call 100 MeV "strong") don't appear until the end of the game. The initial voltage implicitly determines whether the storm is growing or weakening. HOST also sometimes generates zero-volt storms, which immediately disappear again.
  • The initial speed reported in the Ion Advisory message is random between 3 and 8. This speed is completely irrelevant, because, as we have seen, it is computed anew before the storm moves for the first time.

Other Resources

Manuel Fernandes Alonso has a Spanish translation of this page in the Spanish VGA Planets FAQ.

Donovan's help pages contain a section on ion storms.

PHost 4 contains Ion Storms modelled after this analysis.

Disclaimer & Credits

This information is by no means official. It is believed to be mostly correct, but may still contain off-by-one errors or worse. I have not run extensive test games to verify it.

PCC implements an Ion Storm Forecast showing basic usage of this information. Recent EchoView versions also include ion storm forecast in the turn prediction.


Thanks to Akseli Mäki and Stefan Glasauer for pushing me further again and again in this analysis.

Go to
[ My VGA Planets Page | My player utilities | My Home Page ]

Stefan Reuther
If you wish to redistribute stuff from these pages, please play by the rules: Copyright information.