Page 1 of 1

Select stuff - see inputs/outputs (granular production reports)

Posted: Fri Jan 18, 2019 5:26 am
by Johntron
It would be nice to see the inputs and outputs for a set of equipment – something like the production overview, but on a more granular level. Imagine being able to view the consumption of all ingredients for an assembling machine producing science pack 2 – including inputs/outputs of intermediate machines.

Select this:
Screen Shot 2019-01-17 at 9.16.17 PM.png
Screen Shot 2019-01-17 at 9.16.17 PM.png (204.47 KiB) Viewed 2229 times

Get something like this (but even more useful):
Screen Shot 2019-01-17 at 9.15.07 PM.png
Screen Shot 2019-01-17 at 9.15.07 PM.png (181.57 KiB) Viewed 2229 times

Benefits:
  • Less time spent doing boring stuff: searching for bottlenecks on complicated production lines, forecasting changes to production lines, etc.
  • More time doing fun stuff: change stuff (e.g. belt layout) and see how it affects output at all stages of production
Really, total inputs/outputs for the things you selected is only helpful for very simple production lines. When you start producing things with 2+ levels of intermediate inputs/outputs, it's difficult to see where bottlenecks occur. This is similar to Max Rate Calculator (awesome work Jeff!), but this mod doesn't give you information about intermediate steps in a production line.

For instance, if you're producing Science Pack 2, and the assembly machine building the inserters runs out of iron plate, it takes a while to sort though things to find the problem (stoppage). Similarly, if you forget to add enough inserters between the Copper Cable and Electronic Circuit, you'll still get Science Packs, just at a much slower rate (bottleneck).

While there are fancy visualizations that might work really well for something like this (alluvial diagrams maybe), a tweak to Max Rate Calculator might add a lot of utility: letting the player select/deselect machines from a list of those they selected. Imagine getting a list of all the assembly machines from a Science Pack 2 production line, and being able to select individual machines. Doing so would update the production report UI with inputs/output for the production line serving as input to that machine.

Here's some prior art:

Re: Granular production reports

Posted: Fri Jan 18, 2019 10:41 am
by RubeGoldbug
Hey that could be a very good feature! We could have a very precise idea of what's going on in detail without doing the maths every time.

Re: Granular production reports

Posted: Fri Jan 18, 2019 1:15 pm
by WIZ4
+1
I want it for a long time

Re: Granular production reports

Posted: Fri Jan 18, 2019 10:38 pm
by weaknespase
Looking nice, but seems to be a performance nightmare, just imagine, how much of sampling data game has to keep in case of a somewhat large factory. Megabases would be slowed down to a crawl, again :)

For trying out different setups without hassle of factory-building i usually use the Factory Floor scenario.

https://mods.factorio.com/mod/factory-floor

Re: Granular production reports

Posted: Sat Jan 19, 2019 4:03 am
by Johntron
weaknespase wrote:
Fri Jan 18, 2019 10:38 pm
Looking nice, but seems to be a performance nightmare, just imagine, how much of sampling data game has to keep in case of a somewhat large factory. Megabases would be slowed down to a crawl, again :)
This suggestion might be a performance problem, or it might not. When I build software, I generally start with what's valuable to implement, and later explore performance as part of the larger technical analysis.

Since you brought it up though, Factorio already has a production report for the entire factory (press P). Ignoring megabases for a second, if global production reports are possible, it should also be possible to get this same information for a subset of the factory in a performant way (though it might require a lot of engineering). This would still be useful for a lot of gameplay – we don't all spend 100% of our time in megabases.

In the case where megabases cause significant performance degradation due to this feature, some simple heuristic could be checked to avoid degrading gameplay due to production calculations. For example, if the base contains more than 500 entities, disable this feature.

Re: Select stuff - see inputs/outputs (granular production reports)

Posted: Sat Jan 19, 2019 5:07 am
by Johntron
I thought through the user experience, discovered Max Rate Calculator, and updated the post with more info. I also posted in the Max Rate Calculator thread – maybe that mod could provide the additional functionality I described above.

Re: Select stuff - see inputs/outputs (granular production reports)

Posted: Sat Jan 19, 2019 1:35 pm
by weaknespase
Well, we can have a lot of optimizations here and there, but from my viewpoint it's a waste of resources. 6-7 ring buffers, moving values every tick for every machine while current system can shutdown entire blocks of machines wasting only a few cycles checking wake up conditions per entire group. If it weren't critical no one would implement such system at all, it's not what you do while you have a ton unrealized features.

Otherwise that graph will show only current rate for current selection and won't work like the production statistics screen works.

Max Rate Calculator references EfficienSee mod which computes machine utilization by sampling machines. Of course it's lua, but still, sampling a lot of machines frequently makes the feature unusable on large bases, as author states. Even if native performance would be 20-40 times better that still would be noticeable hit. Disabling this feature on large bases seems counter-productive, because it would be most useful in this case specifically.

And not every player requires such feature - for example, i don't miss it at all, i don't care how much product is made on some part of my factory, all i care about is total throughput only, which perfectly covered by total production stats screen.