• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

BitOBear

Recruit
14 Badges
Jun 1, 2019
9
0
  • Majesty 2
  • Cities: Skylines
  • Cities: Skylines - After Dark
  • Cities: Skylines - Snowfall
  • Cities: Skylines - Natural Disasters
  • Cities: Skylines - Mass Transit
  • Surviving Mars
  • Cities: Skylines - Green Cities
  • Surviving Mars: Digital Deluxe Edition
  • Cities: Skylines - Parklife
  • Surviving Mars: First Colony Edition
  • Cities: Skylines Industries
  • Surviving Mars: First Colony Edition
  • Cities: Skylines - Campus
So I play Surviving Mars and Cities:Skylines and I just bought Surviving the Aftermath.

One thing that I noticed is that the logistics (supply movement) logic is a little shallow in Mars.

Looking at the LUA it seems you have demand_request and supply_request and both are kind of "flat". This has lead to a number of supply movement stalls. Things like having a near empty mechanized concrete depot in one drone hub area and stalled concrete production in another drone hub area due to full concrete depots and extractors. All while my shuttles are basically sitting idle.

Similarly I've had buildings go inop for want of material that is chilling out far, far away. Deadlocked by the existing demand during times of short supply.

Basically the system lacks "logistical pressure".

Things that lack "demand" should flow towards bulk storage, and demand should draw scarce resources to the depots that will service the next most likely emergent situation. f(urgency)=1/ln(1+urgency) provides about the right curve to know whether that one last unit of electronics should be on the move, as it were.

Orthognal to the stalls, if you turn up the demand of something like a mechanized depot the drones and shuttles can become obsessed, starving other tasks of necessary attention.

And Cargo Rockets can get jammed up if you order seeds but don't have a seed depot. (I was being efficent with trips but hadn't yet built a specific depot. I thought the drones would do what a transport does when it runs out of space, but nope, the thing just sat there deadlocked, holding 5 seeds until I build the depot.

Every storage location should be, for any commodity, in one of the following states:
"need", "want", "acceptable", "dont-want-but-I'll-pass-it-on", "no room", "unacceptable".

It's unacceptable to deliver metal to a seed depot.

It's don't-want if metal arrives (would arrive) at a depot that has metal disabled, or when there's metal there when you uncheck the metal commoditiy type. Basically that results in an urgent call for a shuttle. :cool:

I think a couple additions might be cool (and similar logic to what I will outline might apply directly to Aftermath).

1. The slider for depots should be renamed something like "desired surplus"

2. Every building that will need maintenance supplies (and/or maybe consumables) should have a reference to the "nearest" (pathfinding logic here?) appropriate depot (or the depot might want to have the lists).

3. The depot's "demand quantity" is the sum of all the foreseeable item product needs

4. The depot's "demand urgency" in psudocode is sum(foreach building in list["machine parts"] 1/ln(1+seconds_till_critical) * building_priority)

5. The real desired amount at the depot should be the surplus + (demand_quantity * demand urgency)

In the other direction producers should always disgorge (via drone) to the nearest compatible that _could_ accept the product, and failing any that any universal depot that has an available slot that is "turned off" for that type. Overstocked depots should summon shuttles or drones to move items towards demands or else the "most empty" large-scale (e.g. mechanized) depot.


Yeah, "proper logistics" isn't simple, but it's completely acheivable.

I started looking at writing a mod, but since I do C++ and have no LUA experience it's not something I see happening soon. ha ha ha.
 
Upvote 0
Example scenarios: (things that should "just work")

- Any universal depot should naturally "want" enough material to be ready for one maintenance cycle for all the buildings matched to it.
-- example it services 5 buildings with 1-polymer and one with 3-polymers in their maintenance future. It will lightly want 8-polymers. As any set of buildings nears maintenance time that want would rise towards 8, but would only really hit eight if all six buildings are open for maintenance and about to fail.
-- restocking stores (grocers, shops, malls, diners, etc) counts as "maintenance" where the demand is (empty-slots-on-pallet*(priority/max_priority))

- Go to a random spot, drop a universal depot and uncheck all the commodity types;
-- Plonk a sensor tower next to it and shuttles should deliver the two necessary parts (if shuttles exist), but nothing else.
-- An RC Transport (on automatic) should drop off collected items there if shuttles exist and it's the closest depot that has capacity, to relay the material into the logistics system.

- If the map has non-full mechanized depots for all materials and all the depots have desired surplus set to zero then almost all the materials would tend to be in the mechanized depots but the other depots would tend to have just enough of whatever-and-wherever to represent ongoing maintenance.

Basically if you turn the desired amount down to zero the entire distribution should model "minimal Just-In-Time" levels.