Weltengenerator
Der Weltengenerator ist eine Anzahl von Einstellungen die definieren wie die Spielwelt von Factorio aussehen wird wenn sie generiert wird. Diese Einstellngen können die Spielmechanik drastisch verändern. Neue Spieler wird empfohlen mit den Standardeinstellungen zu spielen bevor sie Anpassungen vornehmen.
Funktion
Eine technische Erklärung wie der Weltengenerator die Spielwelt generiert, ist ein Algorithmus der auf dem "Perlin Noise" basiert. Kurz Zusammengefasst kann man sich das Ergebnis dieses Algorithmus wie Wellen auf der offenen See vorstellen.
Alles über einem gewissen Level definiert die Existenz (oder Nichtexistenz) einer Eigenschaft eines Terrains. Der Spieler sollte auch wissen, dass nicht die gesamte Karte beim Spielstart generiert wird. Es werden nur die sichtbaren Bereiche generiert, alles andere wird erst generiert wenn der Spieler die Welt erkundet. Siehe weiter unten für die technischen Details
Das folgende Bild zeigt ein Beispiel wie der Weltengenerator eine neue Karte generiert.
Konfiguration
Nachfolgend sind die möglichen Konfigurationseinstellungen aufgelistet und erklärt.
Grundeinstellungen
Voreinstellungen
Für Voreinstellungen siehe Voreinstellungen
Friedvoll-Modus
The Enemies don't begin fights, only responding if the player hits them. This can be also switched on during the game- look into Console commands.
Wiederholung aktivieren
Kartenbreite und -höhe
If the player limits the width and/or height they may generate maps with finite resources and area. This is recommended for multiplayer servers running on weaker machines or players seeking extra challenge. Another option is to make the world infinite in only one axis, this is commonly referred to as a ribbon world.
Karten-Generierungsseed
This is the starting value for the random number generator that Factorio uses for generating the world. Know that 'random number' is really a misnomer in Factorio and on computers in general, as they aren't really random, instead being calculated with complicated algorithms that require a seed as starting value (For more detail, see http://en.wikipedia.org/wiki/Random_seed).
So even with the same map-exchange string but a different seed maps can change dramatically, or appear very similar. It's up to chance. In order to get a true copy of a world, giving the map-exchange string and allowing the string to fill out the seed is important.
Zeichenkette zum Kartenaustausch
A string generally looks like so:
>>>AAALABAABgADAwYAAAAEAAAAY29hbAMDAgoAAABjb3BwZXItb3Jl AwMCCQAAAGNydWRlLW9pbAMDAgoAAABlbmVteS1iYXNlAwMCCAAAAGl yb24tb3JlAwMCBQAAAHN0b25lAwMCORcrDUQ7AACMCwAAAAAAAAAAAA ADAFR8w0Q=<<<
It is a string of good length that begins with >>> and ends with <<<. Many facilities exist within the community for sharing exchange strings. The map exchange string can be used in the map-generator: there is an extra field where the player can paste this string into. On windows computers, this may be done by selecting a string, right-clicking or pressing Control + C, then put it into the string field for the world generator with Control + V.
If you wish to retrieve the map-exchange string from your world:
In the Load Game dialog select the game whose string you want, then click the Map Exchange String button in the lower left corner. When the string pops up, highlight it with your mouse and press Control-C to copy it. (Command-C on Mac.) You can now paste it in the map generator to create a copy of that world, or send it to a friend.
For a technical description of the map exchange string, see Map Exchange String Format.
Ressourceneinstellungen
Häufigkeit
This is not, how frequent ore, coal, oil etc. is, instead determining the number of individual deposits the player will encounter.
This defines the wavelength of the wave-generators used by the Perlin Noise algorithm above, but not the total size of all the waves. This means that frequency doesn't modify the amount of resources on a tile, instead modifying the area of each deposit and the number of deposits. Additionally, changing frequency doesn't affect the average amount of resources in a limited map, only their distribution.
If resource frequency is increased, each of the deposits is smaller and has less resources in total (because it covers less area) and deposits are very common. If resource frequency is decreased, the deposits are larger but more rare. This also causes enemy bases to appear more often using the same distribution rules as ores - however, this can lead to rapid enemy expansion due to the much higher number of nest clusters.
Gröβe
This defines the size of generated ore patches and water through defining "levels." It increases the average diameter of ore patches and lakes, allowing one to adjust the size of both of these.
It's as simple as it seems- Small size would mean small ore patches and water masses, large means large ore patches and water masses. Note that this is effected by frequency, though it is presumably able to increase the total ore and water of the world where frequency simply re-balances it.
Finally, this causes enemy bases to spawn larger, though bases created through the "natural process" of expansion are going to adhere to different rules.
The following table shows how the frequency and size settings affects the generation of ore patches. For more detail, open the images in a new tab.
Frequency \ Size | Very small | Small | Medium | Big | Very big |
---|---|---|---|---|---|
Very low | |||||
Low | |||||
Normal | |||||
High | |||||
Very high |
Menge
This defines the actual content of every ore patch and oil field. Resource field richness increases by distance.
Very poor | Poor | Regular | Rich | Very rich |
---|---|---|---|---|
Linke Spalte
- Water: How water is generated on each map.
- Copper, Stone, Coal, Crude oil: Resources required to progress in the game. See above for more detailed explanations about each of these changes.
- Enemy bases: How many and how large starting bases are. Note that new bases are created over time, making low enemy base counts somewhat less significant.
- Starting Area: This is a value defining a special area around the central coordinates of the map which will have different ore frequency, etc, from the rest of the map. Generally, this results in at least one confirmed ore source, always results in a water source, and always removes biter nests from spawning for an area around spawn. The settings of this area usually guarantee better starting conditions, although the player may choose to make this area small to increase the challenge of the game. It is generally a good idea for the player to explore a bit outside this area before they begin to build. While this area will almost always appear very fertile, it's possible that map generation will have made a situation where it is impossible to beat the game, such as missing oil, too many biters to defend, etc.
Very small | Small | Medium | Big | Very big |
---|---|---|---|---|
Erweiterte Konfiguration
Umweltverschmutzung
Evolution
Feindliche Ausbreitung
Rezepte/Technologien
Voreinstellungen
Mit der Version 0.15 können neu Voreinstellungen für den Weltengenerator gewählt werden. Diese sind alle unterschiedelich, und verändern die Einstellungen welche sich unter den Reitern Ressourceneinstellungen und Erweiterte Konfiguration befinden. Nachfolgend eine Liste mit allen Voreinstellungen, die Differenzen zur Standardeinstellung sind hervorgehoben.
Grundeinstellungen
Durch das Auswählen von Voreinstellungen werden in den Grundeinstellungen keine Änderungen vorgenommen.
Ressourceneinstellungen
Resource | Default | Rich Resources | Marathon | Dangerous | Death World | Rail World |
---|---|---|---|---|---|---|
Coal Frequency | Normal | Normal | Normal | Normal | Normal | Very Low |
Coal Richness | Regular | Very Good(Regular) | Regular | Regular | Regular | Regular |
Coal Size | Medium | Medium | Medium | Medium | Medium | Big(Medium) |
Copper Frequency | Normal | Normal | Normal | Normal | Normal | Very Low(Normal) |
Copper Richness | Regular | Very Good(Regular) | Regular | Regular | Regular | Regular |
Copper Size | Medium | Medium | Medium | Medium | Medium | Big(Medium) |
Crude Frequency | Normal | Normal | Normal | Normal | Normal | Very Low(Normal) |
Crude Richness | Regular | Very Good(Regular) | Regular | Regular | Regular | Regular |
Crude Size | Medium | Medium | Medium | Medium | Medium | Big(Medium) |
Enemy Bases Frequency | Normal | Normal | Normal | Very High(Normal) | Very High(Normal) | Very Low(Normal) |
Enemy Bases Richness | Regular | Regular | Regular | Regular | Regular | Regular |
Enemy Bases Size | Medium | Medium | Medium | Medium | Medium | Small(Medium) |
Iron Frequency | Normal | Normal | Normal | Normal | Normal | Very Low(Normal) |
Iron Richness | Regular | Very Good(Regular) | Regular | Regular | Regular | Regular |
Iron Size | Medium | Medium | Medium | Medium | Medium | Big(Medium) |
Starting Area | Medium | Medium | Medium | Medium | Medium | Medium |
Stone Frequency | Normal | Normal | Normal | Normal | Normal | Very Low(Normal) |
Stone Richness | Regular | Very Good(Regular) | Regular | Regular | Regular | Regular |
Stone Size | Medium | Medium | Medium | Medium | Medium | Big(Medium) |
Uranium Frequency | Normal | Normal | Normal | Normal | Normal | Very Low(Normal) |
Uranium Richness | Regular | Very Good(Regular) | Regular | Regular | Regular | Regular |
Uranium Size | Medium | Medium | Medium | Medium | Medium | Medium |
Water Frequency | Normal | Normal | Normal | Normal | Normal | Very Low(Normal) |
Water Size | Medium | Medium | Medium | Medium | Medium | Big(Medium) |
Erweiterte Konfiguration
Pollution | Default | Rich Resources | Marathon | Dangerous | Death World | Rail World |
---|---|---|---|---|---|---|
Absorbed per damaged tree | 500 | 500 | 500 | 500 | 500 | 500 |
Diffusion Ratio | 2% | 2% | 2% | 2% | 2% | 2% |
Dissipation Rate | 1 | 1 | 1 | 1 | 1 | 1 |
Enabled | Yes | Yes | Yes | Yes | Yes | Yes |
Minimum Damage to trees | 3500 | 3500 | 3500 | 3500 | 3500 | 3500 |
Enemy Evolution | Default | Rich Resources | Marathon | Dangerous | Death World | Rail World |
---|---|---|---|---|---|---|
Destroy Factor | 0.00200000 | 0.00200000 | 0.00200000 | 0.00200000 | 0.00200000 | 0.00200000 |
Enabled | Yes | Yes | Yes | Yes | Yes | Yes |
Pollution Factor | 0.00001500 | 0.00001500 | 0.00001500 | 0.00002000(+0.000005) | 0.00002000(+0.000005) | 0.00001500 |
Time Factor | 0.00000400 | 0.00000400 | 0.00000400 | 0.00002000(+0.000016) | 0.00002000(+0.000016) | 0.00000200(-0.000002) |
Enemy Expansion | Default | Rich Resources | Marathon | Dangerous | Death World | Rail World |
---|---|---|---|---|---|---|
Enabled | Yes | Yes | Yes | Yes | Yes | No(Yes) |
Minimum chunks between new bases | 3 | 3 | 3 | 3 | 3 | 3 |
Maximum expansion distance | 7 | 7 | 7 | 7 | 7 | 7 |
Minimum group size | 5 | 5 | 5 | 5 | 5 | 5 |
Maximum group size | 20 | 20 | 20 | 20 | 20 | 20 |
Minimum cooldown (Minutes) | 4 | 4 | 4 | 4 | 4 | 4 |
Maximum cooldown (Minutes) | 60 | 60 | 60 | 60 | 60 | 60 |
Recipes/Tech | Default | Rich Resources | Marathon | Dangerous | Death World | Rail World |
---|---|---|---|---|---|---|
Recipe difficulty | Normal | Normal | Expensive | Normal | Expensive | Normal |
Technology difficulty | Normal | Normal | Expensive | Normal | Expensive | Normal |
Technology price multiplier | 1 | 1 | 4(+3) | 1 | 4(+3) | 1 |
Generierung
The map generator (world generator) is based on a modified Perlin noise algorithm. A more detailed description is in the API documentation.
From the article which describes the generation:
Top: Normal settings, Middle: The same, but with higher frequency (note the same curve, but more condensed shape), Down: Same as top, but higher level = increased size.
The blue wavy line is an internal noise function, black line is a "level" that is used to determine resource placement, red lines are actual placed resources. The high frequency refers mainly to the noise function. Increasing the frequency increases count of resource fields and decreases their size and distance between them. This mechanism is used all through the map generation in factorio, with some adjustments. The map generator works tile by tile, so the resources are placed on a tile x if f(x) > 0. The amount of resources on the tile is given by f(x) * richness.
Generierung neuer Chunks
A map is endless by default, though its size can be limited by height and width - see above. Because it is technically endless, the whole map isn't generated from the start. A new Chunk of map is generated only when needed, similar to other procedurally generated world games.
Generierung unsichtbarer Chunks
(Nebel des Krieges) Outside of the visible chunk area, an invisible area of about 3 chunks wide is generated, as a preloading mechanism, and for biters to be able to see the player. Invisible chunks are also generated if pollution is generated heavily; the game generates (invisible) chunks as it needs to spread the pollution into the area.
Kartographieren
(Make Invisible Chunks Visible on Map) As long as a chunk is invisible, the part of the players map stays black. This changes when a chunk is charted, which means when it is "touched" by radar. Either the players internal radar, which is always available and continually charts chunks around the player, or the Radar entity. When a visible chunk is generated there might be other chunks also invisibly generated.
An invisible chunk is eventually not made visible, even if you are so close, that you are able to see it in the character view (a black fog of war). This is, because of the above rule: a chunk is made visible, if it is touched by radar. Not character visibility. The players radar (or any radar) needs to be in range of that chunk to make it visible.
Erkunden
If the player arrives at the current visible borders the needed chunks are generated. As the player explores, a radius of about 3 chunks are continually loaded around them. As this can take a while on lower end machines, it is possible to outrun the world generator and end up in 'limbo' with no entities around the player. Staying still for a while will allow the generator to catch up.
Maximale Kartengröβe und Speicherbedarf
The map size is limited to 2000 x 2000 kilometers (a quadrant with 2,000,000 tiles side-length, an area of 4,000,000,000,000 quadrant-tiles). This is between the size of India and Australia. It would take around 240 game-minutes (=4 hours) by train to reach that border from the center. This means that the world is essentially endless.
Because only chunks are generated around the area that is revealed by radar, it is with current computers possible to reach that border. This is, because the needed memory size of the map is limited only by the generated number of chunks in the game. Which is not so much if you allocate just a small stripe of land.
The generated chunks are mapped and stored in the player's RAM, which is the limiting factor.
Geschichte
- 0.15.0:
- The world generator now has select-able presets.
- 0.13.0:
- Map generator algorithm changed, further resource field now have greater richness.