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.
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.
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.
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