Dana: crafting tree/graph explorer

by Credne

Dana provides ways to explore and display the recipe graph of Factorio (vanilla or modded). This mod is still in alpha stages: it is recommended to use it on a dedicated (sandbox) save, or at minimum to backup your save. While the mod should work in multiplayer, be careful about griefing (rendering huge graphs can freeze the game for several minutes).

5 months ago
0.18 - 1.1

g [Answered] Does it calculaute costs?

2 years ago

This can really help with balancing those big overhauls as well, if it can.

2 years ago
(updated 2 years ago)

TL;DR: No, it doesn't. And I don't think it's a reasonable thing to add as long as Dana has a single developer.

Computing production costs of a given chain is already a significant piece of work (a look at Helmod or Factory Planner codebases should give a good idea), especially with cycles (and big overhaul mods are usually full of those). But a collaboration with them might be possible to not reivent the wheel.

The other problem here is selecting the "given chain", which AFAIK no mod does automatically right now if there are multiple ways to produce an item (which happens often in big overhauls). Let's take Angel+Bob: what is the cost of an "iron plate" in natural resources ? Well it depends:

  • how you get the "iron ore" from the 6 natural ores (single sorting / mixed sorting / catalyst sorting: probably a dozen of options here).
  • how you convert the "iron ore" into "iron ingots" (I think that's 3 options).
  • how you cast the ingots (directly to plates, or multiple "ingots -> sheets -> plates" with coolant options).
  • productifity modules (which can turn negative loops of recipes into net producers).

In this situation:

  • I have no clue on what automatic algorithm I should use to isolate the most "relevant" subchains (even just defining "relevant" here is hard).
  • I have no clue on how to make a decent UI to manually select the chains, given that with combinatorial explosion there might be thousands of ways to get to a refined product.
  • I could decide to not "expand" any ingredient that have multiple recipes, but I don't think it would make the overall feature really useful (I think it's already possible to do that in Helmod anyway).

As I see it, this feature is technically hard to implement (it would require non-trivial results from operational research), and is way above 100+ man-hours of dev time. I already have 100+ man-hours of work ahead of me to get a robust crafting tree explorer, and I'm not sure I'll find enough time in the near future for that.

Still I don't mind discussing the concept (how do you see it work ?), because it's an interesting & useful idea.

New response