Topic: Blueprint: "Ware profile" feature for warehouses
Posted at: 2012-03-25, 17:54
Blueprint for this suggestion: https://blueprints.launchpad.net/widelands/+spec/warehouse-profile
Related bug: "Hard to empty warehouse" https://bugs.launchpad.net/widelands/+bug/722087
I suggest that warehouses need a new feature for "profiles" implemented as a tab on the warehouse window. Players sometimes use warehouses for specific tasks, rather than storing all wares. In the profiles tab there would be buttons which toggle between the standard ware storage states (none, prefer, do not store, remove) for a pre-set category of wares.
Relating to bug 722087 the profiles feature could be used to select all wares to easily change the state of all wares if the player wanted to fill or empty the warehouse
The tab could have a "Single profile only" button to make it easily select a single profile and "Do not store" wares for all other profiles. This would mean that if the player wished only food items to be stored they could click "Single profile only" button, click "Food" profile icon and all wares that are not in "Food" would automatically be set to "Do not store".
Example usage scenarios:
Scenario 1: A warehouse is no longer wanted but has lots of wares in it.
I do not think this is a scenario that happens very often but the number of mouse clicks needed means it is very time consuming and frustrating.
Current state: The player must click every single ware icon and then click "Do not store". Player's mouse is now worn out from all the clicking Anyone who has done this often enough knows that it is easy to miss icons or accidentally toggle another icon, which compounds the frustration.
With profiles feature: Player clicks on profiles tab and clicks "All wares" profile icon. Player clicks "remove" button and all wares are removed without being able to accidentally forget to select a ware or spend an hour clicking the mouse.
Scenario 2: The player builds a warehouse far away from their HQ and wants to store construction wares but nothing else.
This helps them to build far-away sites more quickly. Setting the warehouse with the current behaviour doesn't require a lot of mouse clicks but I think that players use warehouses for specific tasks often enough to make it worth considering.
Current state: The (empire) player has to click on trunks, wood, stones, marble and marble columns and click "prefer". In some cases the player may wish to prevent any other wares being stored which means many more mouse clicks are needed.
With profiles feature: Player clicks on profiles tab and clicks "Single profile only" then the "Construction" profile icon. Player clicks "prefer". This would set trunks, wood, stone, marble+columns wares to prefer and all other items as "Do not store". Player would not be able to accidentally forget to select a ware and would save time with fewer mouse clicks.
Scenario 3: The player has many mines which are far away from their food and weapon economies.
The mines need to be supplied with food but the player doesn't want any of the mined wares to be kept in the warehouse as they should be sent to the HQ. The player does not mind if other wares are stored here.
Current state: The player builds a warehouse and selects ration, meal, beer, wine and clicks "Prefer". The player has to then de-select these four wares then click stone, marble, goldstone, iron ore and coal and click "Do not store".
With profiles feature: The player clicks on profiles tab, clicks "Mining food" profile and clicks "Prefer". Player clicks on "Mined wares" profile and clicks "Do not store". The warehouse will now prefer all miner food but will send the mined wares back towards HQ where they are used/stored near the weapon economy.
Scenario 4: The player wishes to supply a mining and weapon economy more efficiently.
They have mines, smelters and weapon/armour smiths close together. The player's training sites and their main area of expansion are further away so they do not want the weapons stored here. There is no need for the mined marble or stone to be kept here as there is little construction.
Current state: Player clicks ration, meal, beer, wine, coal, goldstone, gold, iron ore, iron, cloth and wood icons and clicks "Prefer". Player clicks all of these icons again then clicks marble, stone, all weapon and armor icons and clicks "Do not store". It would be easy for the player to forget they don't need marble and stone and end up having these construction materials stored in the wrong place.
With feature: Player clicks profiles tab and clicks "Single profile only" and "Mine and weapon economy" profile icon and clicks "Prefer". All required wares are set to preferred and those which are not to be stored are "Do not store".
In addition to the profiles mentioned there could also be "Military expansion" which would have the "Construction" wares as well as being the preferred store for soldiers, preferring highly-trained soldiers. "Military training" would prefer weapons and foods for training soldiers, prohibit soldiers with maximum stats and prefer all other soldiers. This way all fully-trained soldiers would be sent to the next-preferred warehouse (the HQ, or a "military" warehouse where they are most needed) and those which need training would be stored here so they can quickly get to the training sites. "Mining foods" would prefer rations, meals, wine and beer but prohibit coal, iron/gold ore, stones and marble to ensure that the mined wares are sent to be stored or used where they prefer.
Edited: 2012-03-25, 18:10
I need less fish :-(
Posted at: 2012-03-25, 23:02
Profile list - in progress. I'm inexperienced with the Atlanteans so would appreciate input on these.
Production sites should prefer the tools that their workers require to make new and upgraded buildings start working more quickly. They do not need to prefer the workers themselves: to supply new buildings they have the tool and will supply a worker immediately; for upgraded buildings the ejected worker will already prefer the warehouse as it is the closest warehouse.
For mining-related warehouses, arguably we should do-not-store geologists. For most mountain areas the player will map the mountain once and will not want geologists again. The geologists can then be sent back to the HQ which will may be closer to other mountain areas. The "expansion" profile could prefer geologists.
As more than one profile can be applied, a "Prefer" requirement would always over-rule a "Do not store".
There are a few assumptions that I've made here:
Some of the suggestions may require new features:
Ingredients and food wares
Food production only:
Ingredients but not food wares. This is useful if the mines are far away and/or have their own food warehouses.
Mining production-only economy:
Food for mining but do not store any mined wares as these are stored/consumed elsewhere.
Mining and smelting economy:
Food for mining, mined wares but not processed metal. The ores will be processed on-site but consumed elsewhere. I am not experienced with Atlantean but assume that gold will be weaved nearer the weaving mill.
Mining, smelting and weapon economy:
Food for mining, wares for smelting and creating weapons and armour. Assume that training sites are off-site. I think the Atlantean weapon production economy requires too many buildings for it to be feasible to run the economy near a set of mines. Please correct me if I am wrong.
In addition to wares to train soldiers, we also want to prefer soldiers that are not at the highest training level. Soldiers which have the highest training level will not be stored.
Used to store construction materials for rapid military expansion and the highest-trained soldiers for populating military sites.
Used for non-military expansion. Wares for construction will be stored and assume we'll be felling trees, mining stone and sending geologists to discover mountain resources. We prefer to have a sawmill/hardener/grout mixer/weaver on-site, rather than spam wares back and forth to the nearest production sites. Exploration typically produces a lot of trunks, stone and marble (for Empire). We want to store some of these, for construction, but don't need to keep 300 trunks! As this is non-military we prefer not to consume our trained soldiers.
Edited: 2012-03-26, 01:01
I need less fish :-(
Posted at: 2012-03-29, 09:11
This entry was intended to be a new topic for suggestion but seeing as we share similar ideas I thought I'd post it here instead. I like the idea of profiling wares because like you mentioned it can be a hassle clicking all of them. But what caught my attention was the similiarity of scenario 2 and my idea of safety storage.
I would like to see some kind of safety storage possibility to the warehouses. What I mean is an ability to set a minimum amount of wares to be stored in a specific warehouse. This would ensure that certain warehouses always holds certain kinds of wares provided there are enough to be stored.
The rationale for something like this is that it would ease up road congestion and reduce building time when your are expanding a further.
This is how I would use it:
Being as I am not familiar with the code nor am a good programmer I don't have any great ideas of how to implement such a function. The one way I think it could be done is by using the same logic the "preferably store selected wares here" so that any extra wares that otherwise would go to the closest/preferred warehouse instead goes to the one with the safety storage need. Another important thing to add is that if where is an abundance of a ware in a warehouse that is required in a newly built warehouse with a safety storage need it sends the required amount at once. like the coalburned getting 8 pieces of wood each time etc.
One potential logic problem is the how this mechanism would affect the total quantity options. What would happen if you have set the total economy for lets say 20 pieces of bread but at the same time you have set the required safety storage level at a total of 40 pieces at different locations. I guess one way to handle it is the integrate the two economy options in such a way that if the total safety storage level exceeds the total economylevel it would then be bumped up to that of the safety storage level.
Addition, I like the idea that you should be able to push the most highly trained soldiers to the frontline.
Posted at: 2012-03-29, 14:06
The idea came from something related anyway - being able to empty a warehouse with a single click - so similar ideas are welcome!
This does make sense. If a user was to build a "expansion profile" warehouse they would want it to have some wares delivered immediately. In fact the profiles feature would lose a lot of its intended function without your idea. It could act the same was as the ware targets that feature in construction/production sites, along with priority.
It would be great to allow soldiers to be controlled by the feature as well. There's a case for treating soldiers in the same way as wares - allocating priority of delivery and having a target stock level.
I think a lot of the underlying code is already in Widelands. It handles ware priority: if you set a Sawmill to high trunks priority it would receive them before a warehouse, with medium trunks priority, that has not met it's ware target. It handles ware targets so the ability to say "deliver 20 trunks" is already present. I think that it would be best if the warehouse could switch to high priority until it meets the ware target, then switch that ware to low priority.
It would be also useful for warehouses to allow any wares in excess of their target priority be pushed out to warehouses in need of them.
This is already handled with the prioritisation logic: if a bakery and warehouse have medium priority on bread they'd be delivered equally. Maybe the warehouse priority, however set, would always be lower than any other building?
Indeed - there is a lot of juggling required to get the best soldiers out, and the weakest back into the training sites.
I need less fish :-(
Posted at: 2012-05-27, 23:50
I like what I read!
Just one little thing if you click on whatever wares to set there priority and then wish to select other wares to set other priorities you don't have to unclick all of them... it's often faster to close the window and reopen it (so no wares are selected) and start again... but in your explanation it sounds even more dramatic
My fishb-reeder breeds fish and throws them in the ocean so my fisher has work. That's what I call creating jobs!!!Top Quote
Posted at: 2012-05-29, 16:50
I am very much against this. The following reasons: even if you want a fully customized warehouse where you need to change every single ware option we are talking a hundred clicks give or take a dozen. This takes me < 1 minute (I timed it). Hardly much time in widelands. What you propose however introduces a new abstract concept into the game which the player must grasp and it is just for convenience. -1 for implementing this. Keep it simple.
Posted at: 2012-05-29, 17:21
I fail to see the problem. The solution to reduce clicks is to have a default value... If you want to customize further, well then it's up to you how many clicks you want to click. And if you group the wares like peachy suggest it wouldnt be hundreds of clicks.
It is not an abstract concept, the usage of safety storage is a well used concept in the economy of manufacturing. It would make sense in an economy game such as this.
As far as it being convenient, yes. But also at the moment it is not possible to transport a set number of wares to a certain warehouse. It is truly a hassle on larger maps if you want to move building wares closer to the "front".
I truly believe this feature would enhance and improve the gameplay experience of widelands. I doubt that I will be able to change your mind but one can always try, right?
Posted at: 2012-05-31, 11:12
DaggeTeo, sure thing. I am very open for discussion - I am just an enemy of the feature creep which has destroyed so many pieces of software before. Therefore I am very conservative with new features.
That said, there is the "prefer storage here" option for wares in warehouses which will get you wares there in time. You have the responsibility to set the warehouse back to "default policy" however currently. You can also forbid delivering of wares into all warehouses except where you (currently) want them. Same effect, but more work, nor?
Posted at: 2012-05-31, 12:18
SirVer, that is understandable and I respect that!
With the prefer options one can move around wares like you say but it is truly a hassle when you wish to move building wares from one warehouse to another. How about a compromise? An ability to request a number of wares to a the selected warehouse? Say you select a ware/multiple wares and you click a button called "request ware", a window pops up and you decide how many wares you wish to request. Once done the economy tries to fulfill that request by transporting the req. wares from warehouses and/or by letting newly produced wares go straight from production to the selected warehouse.
This would be simpler than the safety storage idea but basically be able to function the same way. Also this would not overcomplicate things. Players not needing this can ignore it and the others, well they'd just be happy
Posted at: 2012-06-01, 13:44
I like that idea. Something similar was also requested for productionsites (for example producing X hammers NOW out of line) and this feature could be layouted symmetrically.