Auto Mass Fab Feedback/Discussion

1

As per the most recent patch notes, there's now an Ecomanager-like automatic fabber management function built into FAF.

The production toggle in the UI no longer toggles on/off, it now toggles auto/off.

If my understanding is correct, the logic is as follows:

If your energy is below 90%, and the trend is down, it turns off a fabber.

If your energy is full, and you're overflowing at least 100 e, it turns on a fabber.

Jip wanted to see discussion on the forums, as opposed to Discord.

Personally, if someone can figure out how to make this elegant in the UI, I'd like a three-position toggle - Off/Auto/On, with the default behavior being Auto.

In my opinion, this is great for people who fight with the ACU, because it means you're more likely to have Overcharge available more of the time.

In the interests of not overflowing energy though, I'd prefer to see the threshold maybe off at 90% trending down, on at 98% trending up at all.

Discuss!

3

This is the main functionality behind the automation:

// number between 0 and 1, where 0 is no storage and 1 is full storage
local energyStoredRatio = self:GetEconomyStoredRatio('ENERGY')

// current energy income - energy expense
local energyTrend = 10 * self:GetEconomyTrend('ENERGY')

if energyStoredRatio < 0.9 then 

    // find a fabricator to disable

elseif energyStoredRatio >= 1.0 and energyTrend > 100 then 

    // find a fabricator to enable

end

It is made to be:

  • Simple. It should be intuitive to reason about the system.
  • Prefer full storage. It should not prevent you to use overcharge.
  • Efficient. It should have no impact on the simulation speed, at any point in time.

Because of that it is:

  • Unintelligent. It may make sub optimal choices at times.

And because it is new, it can be:

  • Frustrating. It may not do what you think it should be doing.

In general, if you want your fabricators enabled then you should have more power production 🙂 . Not micro-manage them.

Personally, if someone can figure out how to make this elegant in the UI, I'd like a three-position toggle - Off/Auto/On, with the default behavior being Auto.

I'm not a huge fan of giving people more control over the system - there's no real need for it either. If you want to prevent it from deactivating suddenly, have more storage. If you want to always have your fabs turned on, build more power (or less fabricators). You already have control over the system by adjusting how you approach the game.

I would be interested in the creation of an UI that can help you identify the number of excess power that your economy can take. Something that informs you how many fabricators are enabled at once. The tweaking of the parameters (when to enable / disable) are open for discussion too.

A work of art is never finished, merely abandoned

0

How often does this run to adjust fabber activation?

I'd like to see more intelligent behavior, but I have to respect the simple attribute, which prevents implementing more complex logic.

0

One fabricator is turned on or off each tick, if applicable.

A work of art is never finished, merely abandoned

0

There are 10 ticks in a second right?

0

Yes.

A work of art is never finished, merely abandoned

0

Yeah, I think I'm going to argue in favor of at least one slight change to the logic:

If power < 90% [and trend is +2000 or less], turn off a fabber
If power > 98% [and trend is 0 or higher], turn on a fabber

There should never be a situation where a player is overflowing power while having idle fabbers.

Trend threshold for turning off a fabber is open to debate. Perhaps compute it per tick as a fraction of total generation?

0

I can understand the change from 100% to 98%, but why do you want to change the trend vaiues?

0

Right now the trend must be +100 or better to turn a fabber on.

You can be sitting at full energy, steady +99, with a t2 fabber that will refuse to turn on, even though you're throwing energy away.

I really, really want to suggest more complex logic for getting a better, more useful result, but Jip is entirely correct in wanting to keep it simple.

As far as the trend for turning a fabber off, let's assume you just Overcharged something and you're down to 60% storage, but you're at +5000/second. Turning off fabbers makes no sense in that situation.

0

@skyhawk said in Tuning the new Auto-fabber behavior:

really want to suggest more complex logic for getting a better

We can always discuss it - I put it out there so people do not get their hopes up.

A work of art is never finished, merely abandoned

0

What about for the second condition (slightly more complex but not massively so):
elseif energyTrend >= 99 and (energyStoredRatio >= 0.99 or (energyStoredRatio >= 0.91 and energyTrend >= 2000)) then

i.e. by having it at 99 even if dealing with a T2 mass fab you should be getting a very tiny energy shortfall as it turns off and on (helping to highlight to the player there might be an issue with their power)
By having it kick in at 91% when you have significant net energy (that's more than a T3 fab) it means your power should recover quickly from an overcharge, while allowing significantly longer to turn on mass fabs to avoid significantly overflowing energy.

M27AI developer; Devlog and more general AI development guide:
https://forum.faforever.com/topic/2373/ai-development-guide-and-m27ai-v41-devlog

0

Fun fact: at the moment the system fails sometimes.

A work of art is never finished, merely abandoned

0

@jip we noticed already

1

Repost from elsewhere:
Seems nice for those few niche eco situations where you want to build fabricators.
However, it would be nice if there was a visual indication your fabricator was not producing. It currently does not even have the red dashed circle to indicate its off.

It would be nice to be able to turn this feature on/off depending on player preference.

0

I'm wondering if this is what has started causing a lot of lag in the games that i'm seeing. I know i have a low end machine 64Gb of some slow 3600Mhz memory and a low end 5950x with only 32 threads, but seriously, nothing should be making this machine lagg, but something has started stuff to lagg pretty bad.

Also not sure if there is much discussion about other places where game play is getting worse and worse. Meaning i had a GC standing in a place i forgot about on the map, and about 10 T3 fighting bots hit it and they were standing right next to it, well withing the GC's range, but the GC never fired once and lost it with it only firing well too late...

0

I'd need to see replays @ZooDoo4U .

A work of art is never finished, merely abandoned

0

@jip said in Tuning the new Auto-fabber behavior:

Fun fact: at the moment the system fails sometimes.

Then why is it still in?
I just had a game... had six T3 massfabs, all doing nothing at all while 265k energy stored and overflowing 10k per sec.

@jip said in Tuning the new Auto-fabber behavior:

I'd need to see replays @ZooDoo4U .

Well, the online replay vault doesn't work for me either anymore, nor my rating graph... but ok, the local vault gives replay ID too, so; #17032129

EDIT: fixed my replay and viewing of rating graph by FAF reinstall.

@zoodoo4u said in Tuning the new Auto-fabber behavior:

Also not sure if there is much discussion about other places where game play is getting worse and worse. Meaning i had a GC standing in a place i forgot about on the map, and about 10 T3 fighting bots hit it and they were standing right next to it, well withing the GC's range, but the GC never fired once and lost it with it only firing well too late...

I've seen the same a lot with sera T2 pd simply not firing on anything while there is a shitton of enemy stuff in range.

0

@jcvjcvjcvjcv said in Tuning the new Auto-fabber behavior:

Then why is it still in?

Fair question - usually we'd hotfix it as soon as we find out about it. This time however an engine patch quickly followed (live on FAF Develop), along with a few desync reports. And only then we found out that there was an issue.

The fix is available on FAF Develop - the system works fine there. We'll release it to the FAF gametype somewhere next week. You can select the game type upon launch:

7d693f5f-0170-4e84-9c1d-f9a3fbf0dc2c-image.png

A work of art is never finished, merely abandoned

0

Neat function. I hope it works well in the future. Two downsides I can think of are it can take a long time to turn off all your fabs if you have a lot of them (or turn them back on) and it probably wont prioritize fabs which have higher mass production to energy use costs (due to mass storage or pgen askacency)

0

Can mass fabs just be a global state thing that converts overflowed energy into mass? Each mass fab gives X "fab power" to convert a total of Y overflowed energy into Z mass. Then it is maximum simplicity both gameplay and sim wise.