Latest Posts

Topic: Solution proposals for maritime shipping problems

Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 1929
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2020-01-30, 21:36

How would you define sub-economies? If you have separate islands the case is clear, but consider the case that you have a long 512x64 map unconnected at the ends. The ends should be in different subeconomies of course, but there is no place on the map where a subeconomies-border would make sense.

I would define them simply by whether there's traditional road connection between them or not. Areas connected with road must belong to the same economy.

If you have two very big islands separated by a narrow ocean, it might be more efficient to ship a ware between the two ports than to have it brought from the other end of the island

Then maybe we need a poll about whether or not such a button is needed, along with discussion about reasons for the opinions.

I would modify it as an possibility to set a list of allowed ports (for a ship), you can set just two of course.

Of course corner cases might be:

  • what if there will be ports that have no ships allowed to sail to them
  • what if one of ports on the list disappears

So just be aware that this can lead to confusing situation, when some ports will be unattended and user will wonder why no ship ever sail them....

To make it less confusing there should be graphical symbol in ships sail or flag or something which shows that the ship is using routes instead of an algorithm. There's still at least one other thing with such a list: In that case ports should also have names. Maybe player should have an ability to define them to make the list more easy to use. I guess that if a port disappears it will be almost the same as now. If a player erroneously define entire fleet to stay away from one of his ports, it would be his own problem. In this case I think more control to the player can't be wrong and players should not be protected from themselves that much.

In effect this might result in a very fragmented economy map. E.g. if you have te following routes for six ports on the same ocean:

A <=> B
B <=> D
D <=> F
C <=> E

Then you have two separate economies here (A,B,D,F and C,E), which is not obvious to the player at all. And the ports A and F are in the same economy, so a ware might be sent from A to F but a route via B and D would be enforced even if A and F are very close.
This could quite easily create all sorts of routing inefficiencies and it would not be obvious at all to the player what he´s doing wrong. The only way to avoid really ugly trouble in a complex situation (with more than just three or four ports) would be not to use such a feature.


Top Quote
Solstice_s_Return
Avatar
Topic Opener
Joined: 2020-01-28, 13:24
Posts: 62
Ranking
Likes to be here
Location: Finland
Posted at: 2020-01-30, 23:37

Nordfriese wrote:

In effect this might result in a very fragmented economy map. E.g. if you have te following routes for six ports on the same ocean: ~~~~ A <=> B B <=> D D <=> F C <=> E ~~~~

Then you have two separate economies here (A,B,D,F and C,E), which is not obvious to the player at all. And the ports A and F are in the same economy, so a ware might be sent from A to F but a route via B and D would be enforced even if A and F are very close.
This could quite easily create all sorts of routing inefficiencies and it would not be obvious at all to the player what he´s doing wrong. The only way to avoid really ugly trouble in a complex situation (with more than just three or four ports) would be not to use such a feature.

To avoid this, there should be "ships inventory" page in each port. From that page a player can easily check total amount of ships currently in his fleet, how many of them may visit in this particular harbor and how many has a defined route to this harbor. At least all ships having a route to the harbor under investigation should be visible by their name and clickable. By clicking the name, the screen focuses on that ship. (Is there ships inventory implemented in build 20? As I still use b19 and have been missing such a feature.)


Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 1929
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2020-01-31, 00:06

While the economy is still small, such micromanaging is useful, but as the game progresses and you expand more and more, your seafaring network becomes too large to maintain. Then you would be stuck with an irrational network that needs careful handling but such handling would be way too much work by then. Manually configuring your shipping network cannot be the answer.


Top Quote
Solstice_s_Return
Avatar
Topic Opener
Joined: 2020-01-28, 13:24
Posts: 62
Ranking
Likes to be here
Location: Finland
Posted at: 2020-01-31, 07:57

Nordfriese wrote:

While the economy is still small, such micromanaging is useful, but as the game progresses and you expand more and more, your seafaring network becomes too large to maintain. Then you would be stuck with an irrational network that needs careful handling but such handling would be way too much work by then. Manually configuring your shipping network cannot be the answer.

I haven't been thinking about using it solely. Ships should always begin with algorithm and this option becomes necessary if a player gets frustrated with the algorithm. Even then, I would change 50% of my fleet to use this at maximum and leave the rest for the algorithm. There should be a tooltip which addresses this like "It is not advisable to put more than 50% of ships on routed mode."


Top Quote
Tibor

Joined: 2009-03-23, 23:24
Posts: 1377
Ranking
One Elder of Players
Location: Slovakia
Posted at: 2020-01-31, 08:07

Nordfriese wrote:

A <=> B B <=> D D <=> F C <=> E ~~~~

Then you have two separate economies here (A,B,D,F and C,E),

Good point, but in fact this depends on implementation under the hood.

Lately we introduced ferries and this change introduced ware and worker economy and these might not be geographically identical.

Now with current discussion here I think we are making things only more complex. It seems to me like gluing feature over a feature.

What about this minimal idea: Never embark goods for more than one port.

  • no splitting of economies
  • no complex user settings
  • code change would be minimal, affecting only ship logic

The number could be configurable, maybe 2 would be better


Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2646
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2020-01-31, 08:16

Hi everybody,
I have been silently reading the thread and while I am convinced about the problem I am not convinced by the solution.
I believe the cause is not directly in the ships functionality but in the way how wares are handled in our economy. As far as I understand it everything is managed by request, so if a ware is needed somewhere a request is been put out and a free ware is given the order to fulfill this request. So this is done single ware by single ware. This leads to the effect that most of the time a ship is only sailing one single ware over long distances although pretty much more of this ware is available in the port where the ship starts, but it is simply not requested at the same time. so current solution is to carefully set the wares preference of a warehouse to get more wares shipped at a time. As could be seen in einsteins tournament in long games with big economies it is recomendable to have economic centers with warehouses that specialize on one single part of the economy (i.e. bread and beer, smelting and forging, training, and so on), as in this setup wares are concentrated.
in the last proposed state with 50% of the fleet in algorithm mode one would easily end up with the same problem as before as we can't control the assignment of wares in the ships functionality whether they have routes or not.
I don't know if it is possible but for me a big boost for the economy would be if a ship loads let's say 5 wares of a type per one single request, so we would have more efficient ship loading using the capacity of the ships properly. this additional demand needs to be controlled by the destination harbor I believe.
just my 5 cent on this


Top Quote
Solstice_s_Return
Avatar
Topic Opener
Joined: 2020-01-28, 13:24
Posts: 62
Ranking
Likes to be here
Location: Finland
Posted at: 2020-01-31, 09:05

Hesse Farmer wrote:

in the last proposed state with 50% of the fleet in algorithm mode one would easily end up with the same problem as before as we can't control the assignment of wares in the ships functionality whether they have routes or not.
I don't know if it is possible but for me a big boost for the economy would be if a ship loads let's say 5 wares of a type per one single request, so we would have more efficient ship loading using the capacity of the ships properly. this additional demand needs to be controlled by the destination harbor I believe.
just my 5 cent on this

I guess that this extraware thing would be just perfect whenever a new colony is in its early stages but I'm not sure if it would be helpful later on especially if the other idea is implemented properly at the same time. But If only one of these ideas get implemented, then I would suggest this extraware solution. It also seems simple to get it implemented which favors it too.

Edited: 2020-01-31, 09:06

Top Quote
JanO
Avatar
Joined: 2015-08-02, 11:56
Posts: 177
Ranking
At home in WL-forums
Posted at: 2020-01-31, 09:28

There was a question how I would set up sub-economies: Very simple, automatic. Each warehouse makes one sub-economy, each flag belongs to the economy of the closest warehouse. If each single flag gets a tag to save the distance to the next warehouse, it should not be too complicated to add those values to new roads which get connected to an existing one.

But I like Tibors idea very much. Embarking only goods for one destination port should speed up ship transportation a lot, I guess. At least as long as there is no veeery efficient routing algorithm for the ships.
This one could be combined with hessenfarmers proposal. Instead of loading only requested goods, why don't ship a few extra, if possible. Another idea would be to let ships wait a moment before they hurry towards the next port. For example, if a ship can load 40 goods (I don't know how much it is, but basically it doesn't matter here). If it is empty and idles in front of a port, it is really empty. As soon as it is requested to load something, it loads this something and fills up the remaining space with seconds (time). From then on it throws one second per second into the sea (and fills up real wares if necessary). When there are no more seconds on the ship, it starts sailing.

Setting up fixed routes would not solve anything, as long as there are free ships. Those would still pick up wares like they do at the moment, sailing around the whole map while the ships on the fixed routes idle and the requesting buildings idle as well.

Edited: 2020-01-31, 09:31

Top Quote
Tibor

Joined: 2009-03-23, 23:24
Posts: 1377
Ranking
One Elder of Players
Location: Slovakia
Posted at: 2020-01-31, 10:18

JanO wrote:

There was a question how I would set up sub-economies: Very simple, automatic. Each warehouse makes one sub-economy, each flag belongs to the economy of the closest warehouse. If each single flag gets a tag to save the distance to the next warehouse, it should not be too complicated to add those values to new roads which get connected to an existing one.

Well, with every single added or removed road, we would have to recalculate all this stuff for every flag (what is nearest warehouse, distance to it). Yes, many times the values for current changes would not change, but to find out that they are not changed needs a recalculation as well.

BTW AI is doing something like this, and it is done in a "lazy" way.

Also note that there can be many ways from a flag to a warehouse and the engine would need to identify the shortest one, so this is serious path-finding algorithm (for every flag).


Top Quote
Solstice_s_Return
Avatar
Topic Opener
Joined: 2020-01-28, 13:24
Posts: 62
Ranking
Likes to be here
Location: Finland
Posted at: 2020-01-31, 10:18

JanO wrote:

There was a question how I would set up sub-economies: Very simple, automatic. Each warehouse makes one sub-economy, each flag belongs to the economy of the closest warehouse. If each single flag gets a tag to save the distance to the next warehouse, it should not be too complicated to add those values to new roads which get connected to an existing one.

But I like Tibors idea very much. Embarking only goods for one destination port should speed up ship transportation a lot, I guess. At least as long as there is no veeery efficient routing algorithm for the ships.
This one could be combined with hessenfarmers proposal. Instead of loading only requested goods, why don't ship a few extra, if possible. Another idea would be to let ships wait a moment before they hurry towards the next port. For example, if a ship can load 40 goods (I don't know how much it is, but basically it doesn't matter here). If it is empty and idles in front of a port, it is really empty. As soon as it is requested to load something, it loads this something and fills up the remaining space with seconds (time). From then on it throws one second per second into the sea (and fills up real wares if necessary). When there are no more seconds on the ship, it starts sailing.

Setting up fixed routes would not solve anything, as long as there are free ships. Those would still pick up wares like they do at the moment, sailing around the whole map while the ships on the fixed routes idle and the requesting buildings idle as well.

I think warehouses work pretty much like that already, but the game handles all like just one big economy while assignments inside that big economy work like you described. It just doesn't understand separate sub-economies and that's one part of the problem.

Embarking goods only for one destination port is mostly a good idea in most of the cases, though not all. Bu because of that, I'm favoring that too.

Waiting time isn't good thing. Instead the ships should be able to load goods ordered through other ships to the same destination. Then when a ship that has lost its order to another ship that arrived earlier arrives to the port, it idles there until algorithm forces it to do something else.

Still I see there some need for routes as even with a big fleet, you can easily end up waiting because those ships are all on the other side of the world for some algorithmic reason. One solution to mitigate this on big maps would be to assign home ports for players' ships and if there's too many ships idling in one port, algorithm tells the ship to return to its home port (If it is already in its home port, ti will do nothing). Algorithm should handle this completely and assign home ports to new ships as evenly as possible (but reassignments might not be necessary when new ports get built.) You can try to play Tasmania and investigate this problem further as I think it is good in exposing that. Dust in the wind may be good in that too, although I haven't played it so I can't say that for sure.


Top Quote