Code Monkey home page Code Monkey logo

dsp-prod-ratios's People

Contributors

dependabot[bot] avatar martin-pitt avatar mikelittman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

mikelittman

dsp-prod-ratios's Issues

Permalinks / Share

Should be possible to create a permalink / social share for the calculator, as well as other pages.

I could probably dump the entire state into the permalink for the easiest implementation.

However, there are some concerns, accessing a permalink must not mess up the users' saved preferences and tech progress in the app.

Perhaps opening a permalink would be stored temporarily into sessionStorage instead, and should be mentioned somewhere in a banner as using someone else's settings?

Deuterium Fractionation — unclear maths

I'm not sure what to do with the fractionation.

What are the exact or estimate throughputs per minute here? Doesn't it depend on not just belts but also use of proliferators, pilers and how well the loop is setup?

Probably ought to remove the ratio as it is unclear and not helpful.

Research — Navigation with scrolling, panning, zooming?

Let me know if you would like to use native scrolling on the Research tree, or if you would want to be able to zoom and/or drag the window around, like you are moving on google maps or like in the game (the game has very awkward zooming imho though).

I think it's fine on mobile for now, but I can see wanting to pinch zoom out to see more all at once and making the dragging more smoothly along the diagonal, since native mobile scrolling tends to prefer locking you in one axis.

On windows it's probably awkward if you aren't familiar with horizontal scrolling, like using the middle mouse click scroll widget.

Quick Reference Sheets

I have been wanting to add quick reference sheets to the app.

By quick reference sheets, I mean like the ones created by Reddit user u/oldshavingfoam:

The benefit is that with the app I can generate all of these from game data that the calculator uses.

I can also experiment with designs and interactions.

For an interaction example: If you selected an item recipe and being able to see other recipes that depend on the item that is produced. This can be often very useful, as often during gameplay you may have an over supply of products and would like see what can be made with it.

I need to have sections on:

  • Assembler
  • Smelter
  • Chemical Plant
  • Oil Refinery
  • Miniature Particle Collider
  • Matrix Lab

Ideas:

  • More readable, compact and/or dense visual design options
  • Be able to render out an image-based version or save to print with print stylesheet
  • Click on an recipe row to dive into where it is used, within inputs and outputs idea inspired from Reddit user /u/Codnono
  • Might be good to have a pleasant background visual

Additionally, I would like to experiment with many other types of reference sheets.

  • Like a tech progress sheet by science matrixes:
  • List of all raw resources/materials that can be mined/gathered
    • Which can be used to figure out what the lowest point of the supply chain is.
  • Proliferator bonuses
    • Cheat sheet of bonuses, basically what's on DSP Wiki
    • Additional context might be handy as not obvious, e.g. how much power that juiced antimatter would produce on an artificial star and the rate of consumption would be great things to know
  • Certain item properties
    • Maybe all fuel types accepted by a thermal gen?
    • List of electricity production buildings in order?
  • Vein Utilisation? Logistics Carrier Engine? Simple bullet points of key points and a graph visual would do. See Dyson Sphere Program Helper for maths.
  • What other things did you need to know, compare or figure out while you were playing DSP? Each reference sheet is goal oriented, you needed to know something specifically at that point. DSP Ratios is meant to be a productivity tool for you. I don't want to set out to make things easy or take the fun away, but give you the tools and information to go to greater lengths.

Reddit user /u/clayafterdark made a bunch of neat diagrams which could be worth adding:

Allow multiple recipes to be selected

Having the ability to select multiple products would be very useful. For example, selecting blue, red, and yellow matrix cubes, and then it would show the combined steps

Expand / Collapse All

Need to add a toggle for expanding/collapsing the view. What would be a good UI implementation for this? Perhaps a +/- on top left of the table. A expand/collapse icon from The Noun Project seems would be a good base.

FactorioLab Compat

Would be neat to have some compatibility to FactorioLab. One of the things I could do is allow users to export the selection on the Research page from the tech IDs into the FL strings, so that they can be imported into the 'All technologies researched' setting.
Second might be being able to open FactorioLab with the currently selected recipe calculation? This should be theoretically possible by generating the share URL with the parameters. Bonus points if I can fully recreate it with the proliferator mix too.

  • Export current Research page into comma-separated list of technology ID strings in FactorioLab format
  • Ability to open up the same calculation in FactorioLab via the URL permalinks

Proliferator Mixes

It turns out proliferator mixes may be a lot more complex.

That I can't apply proliferator presets per recipe necessarily — some setups may actually have solutions for different setups for the recipe's chain.

So, bruteforcing for the entire recipe chain basically.

Additionally I would like to generate proliferator mixes by code, this is so that new recipes can be handled automatically and also because most mixes aren't complete, particularly they do not cover buildings at all.

There are also additional mixes I would like to create, particularly:

  • Optimise Facilities
    • Effectively optimise the total amount of assemblers, smelters, etc.
  • Optimise Facilties + Sorters
    • We can make an assumption that each item and result would require one sorter each to add to the total buildings count. A few recipes are actually affected by this.
  • Optimise Facility Footprint
    • We can assume that some facilities occupy a certain footprint, minimally at least the size of the building itself on the grid. Some proliferator mixes may be more optimally leaning towards smaller smelters compared to the large assemblers

Resource Totals

Would be nice to have a Totals count at the bottom of the calculator that collects and totals the throughputs of all similar materials.

For example, the Logistics Vessel is a moderately complex item to make. It requires Iron Ore for seven different sub-components for a total of 22.5 Iron Ore per second (this is with the settings I currently have, in this instance.)

I'd like a readout at the bottom that would say in my case:

Iron Ore: 22.5/s
Copper Ore: 6.25/s
Crude Oil: 3.75/s
...
...
Iron Ingot: 17.5/s
Copper Ingot: 6.25/s
...
...
Titanium Alloy: 2.5/s
...

All that really needs to happen is add and total the Throughput column that's already there into the bottom. Hell, just a button that would copy the readout to the clipboard would do me wonders and wouldn't mess with the ui too much. This would help a lot!

[BUG] Inconsistent fonts

When a recipe has an ingredient whose number of required buildings has a repeating number, the font for the decimal is different. An example is EM-rail ejectors set to make 10 per min with MK II assemblers

image

Mod Support

This is part of one of the end goals of this calculator, with a fully data driven backend, it should be theoretically possible to support mods that affect those core game data structures.

I'm not sure how this should work and what mod support people want to see.

I think one that stood out to me perhaps would be https://github.com/Awbugl/ProjectGenesis

Different calculator output views — List, graph, tree, …?

It is worth trying out different ways of rendering the calculator output.

Factoriolab for example has List, Flow and Data views. The Flow is neat but well, an unreadable mess to be honest, might be worth implementing anyway and trying out different options, such as a more regular structured grid, tree, row or columnar flow layouts. Would be neat to try a Sankey Flow diagram.

DSP Ratios has something like a List view currently, although it doesn't feature the dotted lines. I did experiment with it early on, but might be worth bringing back as an alternative.

Work:

  • Implement new architecture to separate out calculation phases out
    • SolverTree — Initial phase, create a tree graph of recipe with full possible production chain from unlocked recipes
    • RecipeTree — Filtered down SolverTree which picks from user preferred alternative recipes
    • CalcTree — Final step to create a usable tree graph for rendering visually. This phase calculates throughput w/ proliferation
  • Views — How to render the calculator, a simple compact segmented control to select the view
  • Density — How dense the UI should be, dense/compact/cosy. Like dark mode, instead of tweaking numbers, take into account the desired user experience. Give each view a different way of handling this.
  • Implement rendering views

Inspirations:

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.