Latest Posts

Topic: Blueprint: "Ware profile" feature for warehouses

simplypeachy

Topic Opener
Joined: 2009-04-23, 12:42
Posts: 153
Ranking
At home in WL-forums
Location: Hampshire, UK
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 face-smile.png 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

WARNING: New-style view packet not found. There may be strange effects regarding unseen areas.
_aD on IRC

Top Quote
simplypeachy

Topic Opener
Joined: 2009-04-23, 12:42
Posts: 153
Ranking
At home in WL-forums
Location: Hampshire, UK
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:

  • The game can request/eject soldiers that have certain training levels. This works for training sites so I assume it can be applied to warehouses.

Some of the suggestions may require new features:

  • The ability to prefer wares and workers up to a certain quantity. A mining profile could store some trunks and wood to quickly build mines. It doesn't need to store more than enough to build one mine, and if there are many trunks passing by it could be detrimental if the warehouse stores all of them. Preferring one of each miner and a geologist would be beneficial, but it does not need to store many of them.
  • The ability to ask for soldiers with preference to trained soldiers

Other questions:

  • Most of the scenarios where a profile is needed will have particular workers. If a mine profile stores some picks it can create miners, which could otherwise take a long time to walk to the site if they came from the HQ. But if the HQ already has five miners, do we really want to consume wares to produce picks instead of moving these excess miners? Maybe we should request excess miners, then if our requirement of x number of miners is not met, request picks. This way the warehouse will not produce miners when they're already excess in the economy, but would move them to the warehouse so that new/upgraded mines can be manned quickly.

Food economy:

Ingredients and food wares

  • Empire:

    • Prefer: Water, wheat, flour, fish, meat, pitta, ration, meal, grape, wine, beer, fishing rod, hunting spear, scythe, bread paddle, basket, kitchen tools
  • Barbarian:

    • Prefer: Water, wheat, fish, meat, pitta, ration, snack, meal, beer, strong beer, fishing rod, hunting spear, scythe, bread paddle, kitchen tools
  • Atlantean:

    • Prefer: Water, corn, fish, meat, trunks, smoked meat, smoked fish, cornflour, blackroot flour, bread, fishing net, buckets, hunting bow, hook pole, scythe, bread paddle

Food production only:

Ingredients but not food wares. This is useful if the mines are far away and/or have their own food warehouses.

  • Empire:

    • Prefer: Water, wheat, flour, pitta, meat, fish, grape, fishing rod, hunting spear, scythe, bread paddle, basket, kitchen tools
    • Do not store: Ration, meal, wine, beer
  • Barbarian:

    • Prefer: Water, wheat, pitta, meat, fish, beer, strong beer, fishing rod, hunting spear, scythe, bread paddle, kitchen tools
    • Do not store: Ration, snack, meal

    • Prefer: Water, corn, fish, meat, trunks, cornflour, blackroot flour, fishing net, buckets, hunting bow, hook pole, scythe, bread paddle

    • Do not store: Smoked meat, smoked fish, bread

Mining production-only economy:

Food for mining but do not store any mined wares as these are stored/consumed elsewhere.

  • Empire:

    • Prefer: Ration, meal, wine, beer, pick
    • Do not store: Stone, marble, coal, iron ore, gold ore, geologist
  • Barbarian:

    • Prefer: Ration, snack, meal, beer, strong beer, pick
    • Do not store: Stone, coal, iron ore, gold ore, geologist
  • Atlantean:

    • Prefer: Bread, smoked meat, smoked fish, pick
    • Do not store: Stone, quartz, diamond, coal, iron ore, gold ore, geologist

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.

  • Empire:

    • Prefer: Ration, meal, wine, beer, coal, iron ore, gold ore, pick, fire tongs
    • Do not store: Stone, marble, iron, gold, geologist
  • Barbarian:

    • Prefer: Ration, snack, meal, beer, strong beer, iron ore, gold ore, pick, fire tongs
    • Do not store: Stone, iron, gold, geologist
  • Atlantean:

    • Prefer: Bread, smoked meat, smoked fish, coal, iron ore, gold ore, pick, fire tongs
    • Do not store: Stone, quartz, diamond, iron, gold, geologist

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.

  • Empire:

    • Prefer: Ration, meal, wine, beer, coal, iron ore, gold ore, wool, cloth, wood, iron, gold, pick, fire tongs, hammer.
    • Do not store: Wood lance, lance, advanced lance, heavy lance, war-lance, helmet, armour, chainmail armour, plate armour, geologist
  • Barbarian:

    • Prefer: Ration, snack, meal, beer, strong beer, coal, iron ore, gold ore, iron, gold, pick, fire tongs, hammer.
    • Do not store: Axe, sharp axe, broad axe, bronze axe, battle axe, warriors axe, helmet, mask, war helmet, geologist
  • Atlantean: See note.

Military training:

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.

  • Empire:

    • Prefer: Pitta, fish, meat, lance, advanced lance, heavy lance, war-lance, helmet, armour, chainmail armour, plate armour, soldiers which are not at highest training level
    • Do not store: Soldiers which are at the highest training level
  • Barbarian:

    • Prefer: Pitta, fish, meat, strong beer, sharp axe, broad axe, bronze axe, battle axe, warriors axe, helmet, mask, war helmet, soldiers which are not at highest training level
    • Do not store: Soldiers which are at the highest training level
  • Atlantean:

    • Prefer: Bread, smoked meat, smoked fish, long trident, steel trident, double trident, heavy double trident, steel shield, advanced shield, golden tabard, soldiers which are not at highest training level
    • Do not store: Soldiers which are at the highest training level

Military expansion:

Used to store construction materials for rapid military expansion and the highest-trained soldiers for populating military sites.

  • Empire:

    • Prefer: Stone, trunk, marble, wood, marble column, highest-trained soldiers
  • Barbarian:

    • Prefer: Stone, trunk, blackwood, grout, highest-trained soldiers
  • Atlantean:

    • Prefer: Stone, trunk, spidercloth, plank, quartz, diamond, highest-trained soldiers

Exploration:

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.

Questions:

  • Should we assume that this exploration will mean we find mountains and store miner food/workers/tools?
  • How much of the spidercloth economy do Atlanteans prefer to use when exploring far away?

  • Empire:

    • Prefer: Stone, trunk, marble, wood, marble column, felling axe, hammer, saw, lowest-trained soldiers
    • Do not store: Highest-trained soldiers
  • Barbarian:

    • Prefer: Stone, trunk, water, thatch reed, blackwood, coal, grout, felling axe, hammer, shovel, lowest-trained soldiers
    • Do not store: Highest-trained soldiers
  • Atlantean:

    • Prefer: Stone, trunk, spidercloth, plank, quartz, diamond, hammer, saw, lowest-trained soldiers
    • Do not store: Highest-trained soldiers
Edited: 2012-03-26, 01:01

WARNING: New-style view packet not found. There may be strange effects regarding unseen areas.
_aD on IRC

Top Quote
DaggeTeo

Joined: 2011-06-29, 16:09
Posts: 61
Ranking
Likes to be here
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:

  1. As I am expanding and taking over territory I sometimes need to build barriers etc to grab land. Transporting all that wood for each building all the way to the frontline is timestaking. However if I built a warehouse somewhere along the middle where I held my safety storage of building goods I would not then require to wait as long.

  2. An even better example of how I would use this is the soldiers. I want to keep the majority of soldiers close to the training facility but I also want some at the front to be ready to reinforce my forticications.

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.

Problem:

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.


Top Quote
simplypeachy

Topic Opener
Joined: 2009-04-23, 12:42
Posts: 153
Ranking
At home in WL-forums
Location: Hampshire, UK
Posted at: 2012-03-29, 14:06

DaggeTeo wrote: 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.

The idea came from something related anyway - being able to empty a warehouse with a single click - so similar ideas are welcome!

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.

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.

An even better example of how I would use this is the soldiers. I want to keep the majority of soldiers close to the training facility but I also want some at the front to be ready to reinforce my forticications.

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.

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.

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.

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

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?

Addition, I like the idea that you should be able to push the most highly trained soldiers to the frontline.

Indeed - there is a lot of juggling required to get the best soldiers out, and the weakest back into the training sites.


WARNING: New-style view packet not found. There may be strange effects regarding unseen areas.
_aD on IRC

Top Quote
neon

Joined: 2012-05-27, 18:23
Posts: 5
Ranking
Just found this site
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 face-wink.png


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
SirVer

Joined: 2009-02-19, 15:18
Posts: 1445
Ranking
One Elder of Players
Location: Germany - Munich
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.


Top Quote
DaggeTeo

Joined: 2011-06-29, 16:09
Posts: 61
Ranking
Likes to be here
Posted at: 2012-05-29, 17:21

SirVer wrote: 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.

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? face-smile.png


Top Quote
SirVer

Joined: 2009-02-19, 15:18
Posts: 1445
Ranking
One Elder of Players
Location: Germany - Munich
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?


Top Quote
DaggeTeo

Joined: 2011-06-29, 16:09
Posts: 61
Ranking
Likes to be here
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 face-smile.png


Top Quote
SirVer

Joined: 2009-02-19, 15:18
Posts: 1445
Ranking
One Elder of Players
Location: Germany - Munich
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.


Top Quote