Giter Site home page Giter Site logo

Comments (11)

garrotte13 avatar garrotte13 commented on August 25, 2024

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.

garrotte13 avatar garrotte13 commented on August 25, 2024

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.

garrotte13 avatar garrotte13 commented on August 25, 2024

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.

garrotte13 avatar garrotte13 commented on August 25, 2024

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.

garrotte13 avatar garrotte13 commented on August 25, 2024

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.

garrotte13 avatar garrotte13 commented on August 25, 2024

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.

garrotte13 avatar garrotte13 commented on August 25, 2024

And here is the proof:
image

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.

Map settings are:
image

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.

garrotte13 avatar garrotte13 commented on August 25, 2024

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.

garrotte13 avatar garrotte13 commented on August 25, 2024

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):
image

from rampant.

garrotte13 avatar garrotte13 commented on August 25, 2024

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.

garrotte13 avatar garrotte13 commented on August 25, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.