|
Hi Lobsterninja,
thanks for your detailed proposal
fist of all i want to differentiate between changes/fixing to the underlying system and how to control the economy:
The economy system:
I have worked mainly on this part yet. It's hard to change the control functions if the underlying system does not work completely and correct. There are some bugs which must be fixed. (One of these is not considering the output queue of a warehouse when assign a transfer to a request). The economy should avoid traffic jams which are not necessary. I think of separating the storage of wares from the request system of economy. This would avoid some problems, should give some speed improvements and allows different strategies for storage of wares.
The main problem with the economy I see:
-
the bugs/inefficiency
This must be fixed and I will work on it after build15
-
understanding what is going on
To do the fixes and advance the system it is necessary to observe the economy. I have worked on this but it is not good enough yet.
-
it's not possible to pull out wares (or workers) of a building
This is basically the fix to the worker and military problem. If this is implemented for example a master miner and a miner would change positions or a master miner would be "pulled out" of a normal mine if one is needed for an upgraded one. The same is true for the "military problem". A trainingsite could pull a weak soldier out of a military building and a military building would pull a trained soldier out of a trainingsite.
This will be done.
-
it's not possible to deactivate requests
It is possible to set a request idle. This function could be changed if it is no more used by warehouses. So an idle request could allow taking away ware. This depends on the above point.
-
There are some issues with transfers.
- There is no prioritisation of transfers
- I want to do more rerouting (and reuse) of wares. But that is a very complex thing.
Control the economy:
micro- vs. macromanaging
I think micromanagement should be possible in widelands but it must never be necessary. I consider even your stock levels as micromanaging.
general
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.
I think these will go away if the economy system is fixed (and advanced). That are workarounds for a incomplete economy/request... system.
Military
The feature to specify maximum capacity on military housing and training buildings is intended 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".
I'm not with you in this point. The capacity setting makes sense in my opinion. Your right if you have enough soldier to fully occupy all military buildings. But most of the time you will not have enough soldiers. Whether this should be done by the player or by an AI is a different thing.
Wareflow
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 different way to solve the same problems.
There are? I think not. At the moment the only thing to control wareflow is ripping up roads. Stopping productionsites goes a bit in the direction bud does not really work.
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 stop button controlling production (it will be redundant with these other changes).
I thinks it's not. I would even add more of this buttons. You could a settings to each ware input. But thats more micromanagement. Even if there is a control of every input I would use the stop button to set all to zero or reset them on continue. I want the same for warehouses so I can stop storage with one click.
Remove the Capacity control on military buildings (redundant, since desired stock level solves the same problem in a better way).
As obove. I think it's not redundant.
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 (
I think your approach is far to much micromanaging. I want to do most of the settings economy wide. Setting this for every production site is far to much overkill.
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.
Precedence for wares and raw materials:
1 Understocked industrial building (places production orders)
2 Understocked warehouse (places production orders)
3 Fully stocked warehouse
4 Overstocked industrial building (but only if under maximum capacity).
5 Overstocked warehouse
6 Flag (items without current destination)
Note that "fully stocked industrial building" neither sends nor receives.
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:
1 Understocked housing (e.g. barracks, castle, tower)
2 Understocked training
3 Fully stocked housing
4 Fully stocked training
5 Overstocked housing
6 Overstocked training
7 Warehouses (implicit desired stock level of 0, so always overstocked if occupied at all)
8 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).
Possible variation: 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 (how the player uses these features to get things done):
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,
This works fine if you have enough ware. But what is about the common situation the every building is understocked? It would not give much control over it.
Conclusion
The current economy configuration is much like what you proposed. My planed addition are the mentioned fixing and advancing of the economy/request/transfer code and a little bit more control.
My control addition would be:
Please try to separate the mentioned economy code improvements out of your proposal. I will write a blueprint and push some code a soon I have sorted this a bit.
Cheers
Timo
|