Comments (11)
There was some successful SiegeAI attempt finally. Therefore I suppose problem is with MigratingAI, while SiegeAI has been not lucky enough with nesting chunk&position selected :-).
Update: yes, confirmed - SiegeAI works fine (with little success chance as usual).
Problem is purely MigratingAI related - can it be that it requires "points" [and "unit points"] critical minimum? I have clans with huge amounts of unit points accumulated (several thousand), but never see common "points" amount exceed 1k for any baseAI for any considerable time period.
from rampant.
Got 2 occurrences when biters settled 3 chunks away from my defenses. I believe it's SiegeAI in some lazy case, because there are still a lot of places further from my base where biters could expand.
Can it be some new logics implemented to limit endless expansions introduced in Rampant2.0?
from rampant.
After some hours I see one migration expansion note far away from base, so I stop monitoring building command prints.
Probably there is some serious rebalance here, and according to changelog there was something about pheromones and other things. Behavior really changed a lot - biters do raid a lot now, like in good old times, and do it with several squads in a region like it was in Rampant 0.18. Nice! And that's all is happening with Peaceful phase checked Off. I haven't tested Dagothur changes to that option so far.
from rampant.
Tried a new game with Rampant3.2 (sandbox mode, reduced option value of "biters detect player's presence" to 3 minutes) for 75 minutes play:
3 migration expansions and 2 revenge expansions (I destroyed a nearby nests cluster to avoid pollution triggered activities).
Migration expansions occurred in first 20 minutes. Later I see no expansions, only raiding squads appear.
Map settings for biters expansion are "every 4..35 minutes".
MigratingAI phases do occur, but no squads are generated during those phases.
from rampant.
yep, confirmed.
Made one more new game, changed enemy expansion settings to values of 5/20 minutes (min/max).
And looked through changes in FACTO-215...
universe.settlerCooldown = randomTickDuration(universe.random,
universe.expansionMinTime,
mFloor(linearInterpolation(evolutionLevel ^ 1.66667,
universe.expansionMaxTime,
universe.expansionMinTime)))
so now Rampant expands like vanilla - only once a in a while (once in a period of 5..60 minutes depending on map settings).
Therefore to make Rampant wild again I need to reduce those map settings to values 3 and 10 minutes for min and max accordingly.
That's great. People whined a lot about Rampant settling too much. So now everyone can set the game he/she wants to get more or less pain. :-)
from rampant.
The only problem is that unlike Vanilla Rampant has AI phases, points and other random factors applied, making expansion chance much lower than Vanilla has with the same map enemy expansion values, because not only settlerCoolDown should pass, but also MigratingAI phase be active in the same period and enough activity points available.
Except maybe SiegeAI (if it does not obey the same rule of course - didn't check it).
from rampant.
only 3 settler groups were formed and sent by MigratingAI during 140 minutes for evolution 35%. SiegeAI phase happened only twice and probably only once an initially settler squad was sent which transformed into attackers because of too close nesting position selected.
For vanilla with the same settings 140 minutes it would be at least 7 settler squads (and all of them would be successful, because chunks near player are not selected), while 27 settler squads in most "lucky" random outcome. Middle would be about 16 new nests clusters built versus only 3 clusters made by Rampant -> 5 times less productive for the same game settings.
So here is the problem.
from rampant.
From my point of view a quick solution without mathematics can be empirical: to divide settlerCoolDown by a number of possible AIstates (e.g. divide by 6 if all states are enabled) and to exclude SiegeAI from this cool down logics, because it has its own only 15% success chance anyway (but sometimes when it is lucky it brings so much pain to unprepared player... - that's a different story).
Sophisticated approach could be to use separate settlerCoolDown for each biters clan ("BaseAI") and maybe some other changes to avoid full replication of vanilla logics.
from rampant.
hm, sentExpansionGroups ... that's quite complex logics. Many squads can settle a lot during one migration wave, dramatically changing map if player is lucky enough. Looks like player's behavior (if he is sitting at base centre, building factory, or driving around and purging nests or provoking them with pollution) has a critical importance as before (Rampant mod is sleeping if player has killed everything in 4-5 chunks from his base and not provoking).
I tested dividing settlerCooldown by 6 and it gave some fruits for the same game (change was applied after 40 minutes from start):
from rampant.
In general dividing by 6 didn't help much.
I added printing out for universe.expansionMinTime and universe.expansionMaxTime.
It printed:
64800000 for expansionMinTime
and
259200000 for expansionMaxTime
Even if it is ticks, not minutes, then it will be 18000 minutes for expansionMinTime and 72k minutes for MaxTime.
Something is wrong here if I understood it correctly.
I was unable to find where these values are defined, except when game is upgraded from older Rampant version, where they are multiplied by ticks-per-minute. But they are already measured in ticks
https://lua-api.factorio.com/latest/Concepts.html#EnemyExpansionMapSettings
Another observation:
Looks like this tick count control and sentExpansionGroups reset happens only during MigratingAI and SiegeAI. Therefore if none of these stages starts for a long time, then game map settings values are increased even more (time consumed by other AI states after settlerCooldown timeout occurred is added to the value).
from rampant.
I was completely wrong about settlerCoolDown needed to be divided. Despite the fact the time out is reset only for MigratingAI and SiegeAI, each clan (baseAI) has a separate count and Rampant is still much-much more active and aggressive than Vanilla when there are many nests and many clans (big map explored).
Found a place causing this issue, making a PR...
from rampant.
Related Issues (20)
- Reduce max units around spawner with increase spawner rate
- Rampant3.2.0 Attempt to index value Chunk when it is an integer HOT 1
- new, more advanced factions appearance after Rampant3.2 upgrade HOT 4
- Overlapping enemy structures HOT 1
- Settler squad formed at gather point and don't do anything HOT 13
- After updating from 3.1.2 to 3.2.0 (or higher) biters drop landfill on death when they are killed close to the water HOT 2
- After decompressing and hesitating to attack an entire group of biters sometimes disappear from the game HOT 5
- Groups of biters appearing in the middle of water / not doing anything (just compressing and decompressing) / running back HOT 1
- No structures spawned by hive HOT 2
- Some hives produce units +3 tiers to actual evolution factor HOT 1
- Issue When installed with Plantable & Printable Trees(1.2.0) HOT 1
- Server Crash when deleting Space Exploration world shortly after generating it HOT 1
- replicatable crash using poison capsule on some nests HOT 1
- Bob's Disabled Alien Artifacts crash Rampant
- Putting IR3's Big Wooden Pole on the safe list HOT 1
- Mod compatibility crash - Fire Place HOT 1
- does not check perimeter of base / outpost, dissalowing building inside
- [compatibility/request] Rampant + Ore Drops HOT 1
- Mod Compatibility: Advanced Electric
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rampant.