Topic: Solution proposals for maritime shipping problems
Solstice_s_Return Topic Opener |
Posted at: 2020-01-28, 20:31
Problem no1: Ships are incapable of assessing what should be taken onboard and as a result for this, may ship goods through really ineffective (read:annoying) routes - particularly when there's multiple destination harbors. Simplest solution: Add routes-button to ship's cargo view. By clicking this, player can left-click two harbors and set the ship to only be available between these two ports. When routing is active, it can be cancelled by clicking the same button again. Problem no2: Shipping orders cripple economies beyond seas. Very often there's insufficient amount of goods in colonies and missing goods are ordered to be transported over the seas. However, very often there's at the same time production facilities in action in these very same colonies, but after the order they just idle and say that economy doesn't need product x, and so the player ends up waiting and waiting and everything drags on because of those resources beyond the seas. Solution: Make Widelands detect borderlines so that if the destination of a particular good is outside of the current border line, it will be sent to a different economic zone. As long as the goods are on their route, the other economic zone can supply missing goods itself if possible. Regardless of that, the shipment will be shipped to its destination as a surplus goods, which may then be reshipped to different destination if necessary, but most propably they will be consumed soon anyway. Any comments? Top Quote |
Nordfriese |
Posted at: 2020-01-28, 20:59
Moin Solstice_s_Return and welcome in the forum
Which Widelands version are you using?
If you want to service only fixed routes, we already have ferries. No need to make ships more similar to them.
True, that can be quite annoying...
I´m not sure if I understand correctly. So, I have settlements on two distant islands connected by a sea route. Both have a brick kiln, economy target for brick is 40. Island 1 has 50 bricks in store, Island 2 has 20 bricks. So the kiln on island 2 would keep producing bricks until Island 2 has 40 of them? Top Quote |
Solstice_s_Return Topic Opener |
Posted at: 2020-01-29, 07:01
Thanks. I'm using build 19. So are those ferries capable of seafaring and not similar to boats in Settlers2? You almost got it right, but not on the quantities front. More precisely: Lets say you've built a sawmill into your colony and decide to put a couple of more buildings under construction. The colony already has wood cutter and forester and is able to produce planks. However, the sawmill chooses to idle because there was insufficient amount of planks at that moment and so the needed stuff got ordered from some distant land but takes ages to get shipped to its destination. Moreover, the sawmill seems to think that because those supplies are available somewhere and there's just enough them, it isn't necessary to produce them here and so it chooses to idle way too often. In this situation it just isn't true that the economy doesn't need planks. I think distinct economic zones connected through sea routes could be a big improvement here. Then each economic zone will have its own target values and if there's shortage somewhere, an order is placed immediately just like now, but without overriding the economic zone's own output. So if the economic zone is able to supply required goods itself in the meantime, it will try to do so until the shipment arrives. I will upload my new map Tasmania soon to the maps page. The map is very seafaring-heavy scenario like map and thus exposes this problem very well. There may be partial workarounds already available, like stockpiling, but then it cripples the economy elsewhere. Edited: 2020-01-29, 07:25
Top Quote |
Nordfriese |
Posted at: 2020-01-29, 10:14
Build 19 is way outdated, and its successor build 20 as well I really recommend updating to the latest development version, which has tons of new features, e.g. a completely rewritten shipping algorithm and ferries, which are rowboats carrying wares (no workers) on predefined waterways which can be built between any two flags on the shore.
Ah ok. So if there is a demand that is not just the economy target (but issued by a productionsite or similar), the ware will be brought as now, but if it is very far away a nearby building will produce this ware if possible and the new ware will be assigned to the request instead of the distant ware. We already had similar considerations for this related case: A log is brought from far away; meanwhile a nearby woodcutter produces a new log. The ware should be exchanged then. But this will not be implemented because in a big economy the checks needed here would be far too CPU-intensive. Splitting road networks connected only by ships into Economy Zones, and onl checking for wares where location and destination are in different zones, might be less costly, but there´s still a risk that it would make the game intolerably slow on big maps... Top Quote |
Tibor |
Posted at: 2020-01-29, 13:42
There is also special feature when you set wares in warehouse as "preferred to store here" - then the good is evenly distributed among all warehouses with such preferred setting. So you can use this to spread abundant wares across multiple distant warehouses and mitigate this issue. Top Quote |
JanO |
Posted at: 2020-01-29, 17:13
I have an Idea how to change this, probably without causing an explosion of CPU-load.
Top Quote |
Solstice_s_Return Topic Opener |
Posted at: 2020-01-29, 20:03
Thank you for the tip. I rationally thought that it can be in only one place at a time and did not bother to test if has other functions too. I think it is sufficient workaround for now, but can't be the final solution. Also, as long as this is the solution, the "economy does not need product x" - message threshold should depend from how many separate economic zones a player has. So each new economic zone should increase the limit when the message shows up. But of course the game doesn't currently recognize those areas as different zones and to make it do so is in almost a half way to a full fix. Top Quote |
Tibor |
Posted at: 2020-01-29, 20:18
Why dont you just set own target number for a product? Let say, you have 3 preferred warehouse, so just set the target to 10 or 15 and auto-distributing algorithm should work fine enough. This concept of "sub-economies" complicates entire logic. While know we have X available products in an economy, with this new design we would have two numbers - one for economy and second for sub-economy. The more complicated system the more chances something goes wrong and more corner cases. Top Quote |
Solstice_s_Return Topic Opener |
Posted at: 2020-01-29, 20:22
Jan0 wrote:
Yeah, this is almost exactly how I thought the zones should work. However, I don't quite get the third point from the In short - list. Yes, it should also be done that way, but the major crippling part is waiting if you already have production site in that particular economy and because of the dispatched order it just waits instead of producing needed wares in the meantime if possible. Ships should be like moving warehouses when they're at sea and so their content can be reordered on the fly if destination zone can produce the required goods during the meantime. Top Quote |
Tibor |
Posted at: 2020-01-29, 20:32
@Jan0 I think this design is too complex. Imagine a scenario when a warehouse is destroyed how should a ware heading there react? The production site will now address another warehouse - but what with previous "agreement" with previous warehouse? Currently a ware has a destination - simple enough, but when primary destination will be warehouse, and weak secondary destination a productionsite... I mean the design should be as much primitive as possible. Evil is hidden in corner cases, as usual. Experimenting with this stuff needs actual capability to modify C++ and many and many hours of work. Would be fun of course.... Top Quote |