Keep in mind that this proposal is a complete system, so each item should not be considered individually without considering the whole (e.g. undoing a bad solution to a real problem and replacing it with a good solution is not the same as just removing the solution). Also, this implements a single basic idea that solves a large set of problems that either have no current solution or have a current inferior solution. With that in mind...
- Discussion: http://wl.widelands.org/forum/topic/384/
- Blueprint: https://blueprints.launchpad.net/widelands/+spec/stocklevels
The flavour of Widelands should be about guiding a semi-autonomous economy, not micromanaging.
When designing various aspects of Widelands, we often make choices about control vs. automation. On the one hand, the game would not be a game if everything was automated. On the other hand, micromanaging is not usually considered fun.
A helpful universal principle is that the player's decisions should generally have continuous consequences rather than immediate consequences. An example of a continuous consequence is that a particular warehouse should try to maintain a large stock of coal. An immediate consequence is that a bunch of coal should be moved to that stockroom. Controls with immediate consequences correspond to micromanaging. Controls with continuous consequences correspond to guiding.
Therefore, in order to support the overall flavour of a semi-autonomous economy, it is very important to focus on controls with continuous consequences.
Economic flow and military flow suffer from similar problems.
Currently there is an ad hoc mixture of solutions. If these problems can be solved in a simple universal manner, the game will be more appealing.
The feature to specify maximum capacity on military housing and training buildings fails to meet it's apparent goal.
The goal appears to be to meet the need for the players to express some degree of control of the flow of military units. Other than for that purpose, really there is no direct reason to set the max capacity of a building (you would nearly always prefer all buildings to be full, all other things being equal). The user really wants to say "send strong units to the front lines" or "I'd like to put more emphasis on training". These thoughts are quite badly translated into "I want to limit the capacity on this building".
This is an economic game, not a military game.
Therefore, the military aspect must be improved such that the user spends less time micromanaging the military. Ideally, military decisions should have an economic flavour, i.e. that the player is generally interested in controlling production, allocation, and conversion of resources. It would be badly flawed logic to suggest that we should avoid improving the military aspect of the game just because the emphasis is on economy.
There are several assorted features that control movement of wares and raw materials.
Many of these features are suboptimal and could be replaced with a more consistent global approach to solve the same problems. Any solution that promotes micromanaging should be rejected.
Other proposed solutions miss the big picture, and encourage micromanaging
- Solutions involving manually expelling units: These solutions fail to allow the player to control strategic flow of resources. The player must resort to micromanaging.
Proposed Solution: Desired stock levels
The basic idea is to solve all of the resource distribution problems by allowing the user to specify desired stock levels. This mechanism will also solve the problem of military training (i.e. that there is no decent mechanism for exchanging trained and untrained soldiers). These goals are to be met in a way that avoids micromanaging, and give the player control over something that is fun to control. Although I go into some detail here, the concept is quite simple when you take a moment to think about it.
The desired stock level is not a hard limit. Items can become overstocked or understocked. The desired stock level determines where resources flow (details below...).
Feature to be replaced:
- Remove the Capacity control on military buildings (redundant, since desired stock level solves the same problem in a better way).
Features to be added (globally implement the concept of desired stock levels)
Warehouses: each item has A/B display where A is actual stock and B is desired stock, and a pair of + - buttons to control desired stock level.
Military housing buildings (e.g. Fortress, Castle, Barracks, etc.) get a control for the desired occupancy (instead of Capacity).
Industrial buildings get a single pair of + - buttons, and visual indicator underneath each stock display representing desired stock level (default = max). The desired stock level is increased for all raw materials proportional to the manufacturing requirements.
In industrial buildings, overstocked items are available to be moved to where they are needed (note that this feature trumps the idea of manually expelling items, which is micromanaging).
To stop production in an industrial facility, the player sets the desired stock levels to zero. Production will continue anyway until the stock is used up or sent elsewhere. I do not have a strong opinion on whether the current button to stop production is needed. At first glance is appears to be redundant, but it might actually be handy. It should be independent of the stock level control. For example, if production is stopped and the stock level is not 0, the stock can be built up without actually doing the production. I can think of some situations where this would be desirable.
Precedence for wares and raw materials:
- Understocked industrial building (places production orders)
- Understocked warehouse (places production orders)
- Fully stocked warehouse
- Overstocked industrial building (but only if under maximum capacity).
- Overstocked warehouse
- Flag (items without current destination)
Note that a "fully stocked" (i.e. desired and actual stock levels are the same) industrial building does not send, and an industrial building at maximum capacity does not receive.
Whenever there is a difference in precedence of a good between any two buildings that can be resolved by a transfer, a transfer order is placed. Of course, a transfer from overstocked to fully stocked, or a transfer from fully stocked to understocked would not occur, since these cases would cause the same condition that they try to resolve (possibly resulting in a loop). When determining the relative importance of competing transfers, the transfer with the largest differences between desired stock and actual stock has precedence.
Precedence for military units:
- Understocked housing (e.g. barracks, castle, tower)
- Understocked training
- Fully stocked housing
- Fully stocked training
- Overstocked housing
- Overstocked training
- Warehouses (implicit desired stock level of 0, so always overstocked if occupied at all)
- Any training facility containing a fully trained unit
The following restrictions apply:
- Units move from training to housing only if the strongest unit is better that the weakest unit at the target facility (with respect to a skill available at the facility).
- A training facility will never accept and always expel a fully trained unit.
In military buildings, "overstocked" soldiers are available to move where they are needed (i.e. soldier most needing training moves to a training facility, and most well trained soldier moves to a housing facility).
Perhaps soldiers should not live in warehouses, and perhaps there should be a capacity limit on number of units at headquarters (i.e. headquarter = combined military housing and warehouse). Please note that this suggestion would be really lame in the current system because it would be incompatible with the system of manually adjusting max capacity. In this proposed system, the maximum capacity of buildings does not change.
Strategy Guide using proposed system
This is a description of how the player will use stock level controls to accomplish specific strategic goals without micromanaging:
Defend the front lines:
Maximize desired stock level on front line military buildings, and reduce other housing buildings and training buildings.
Keep units training until maxed out:
Set desired stock level at training facility to maximum.
Release units after incomplete training:
Set desired stock level at training facility to a lower value. When the training facility becomes overstocked, the best trained unit will leave (if there is somewhere to go).
Build up inventory in preparation for future use:
Increase desired stock level at a nearby warehouse.
Prefer some mines over others when food is scarce:
Reduce desired stock level at the less important mines; increase stock level at the more important mines.