Topic: main roads becoming normal again
einstein13 |
Posted at: 2015-04-26, 12:25
It is easy to spot: build huge empire and one bypass around it. The bypass will be very busy in a short time, but it takes ages to make it busy. In Settlers II the busy mechanism was only one-way (only from normal to busy road). It was simple mechanism: ask how many people was walking through the road. Finally all the roads (used roads) came to be busy. Even from one farm or well. But the road become busy very fast (the limit was about 100-200). It is not the best mechanism, but it is far better than current for bypasses: if 200 wares came through the bypass (whole line), it becomes busy. So whole line is busy at once. This mechanism is not the best for casual roads. You don't have to make busy a road between only one or two farms to the rest of empire. But there is an alternative for that! Let say that Shift or Alt (here I will use Shift) is "magic" key for roads. If you hold Shift and click on the road, the road becomes busy imidiatelly (the m_busyness can be set to some big number like 500 or something else). Then we will bring to Widelands more micromanagement and all the roads we want to be high priority will be busy With this solution we don't have to change the implementation of busyness einstein13 |
kaputtnik |
Posted at: 2015-04-26, 15:53
This would affect the logic of "which is the cheapest route for a ware to get from point A to point B". I don't know if a route get a higher priority just because it consist of busy roads. I assume that a busy road (those with an additional carrier) don't get a higher priority by the logic. I also don't know if we want to bring more possibilities to the player. A (new) player have to learn a lot to play widelands. I think the transportation system should only be handled by the internal logic. Fight simulator for Widelands: |
GunChleoc |
Posted at: 2015-04-26, 17:56
I don't think it would be a good idea to separate the visuals and the logic of the busy roads. While it may look good, it will make things confusing for players. At the moment, you can see how many roads are waiting for a carrier2. With this change, you wouldn't be able to tell anymore. I think the idea of making roads busy/normal from crossing to crossing has merit - if we count buildings attached to the road as crossings as well. It makes both visual and semantic sense. Busy indexing nil values Top Quote |
kaputtnik |
Posted at: 2015-04-26, 19:35
Yes, thats half the truth. Half, because there is also a carrier on the road. If he stoud still, there is no visual need for a second carrier. It's just related to the to, who wants that a busy road forever is a busy road (as i understoud). My suggestion would only release the second carrier, but the road looks still optical busy. I imagine: Those roads could maybe turn slowly into a normal road again by crumbling over time...
Yes, i meant each crossing. And the code who calculates the sections from crossing to crossing is allways there: While gameplay you could mark a flag, press CTRL (i believe) and click on the next flag where you want the road adjoin, the road is automatically calculated and splitted into sections. Removing a road with lots of sections is similiar: Mark a flag somewhere on the road, press CTRL and "remove road" will remove all the sections between two crossings. So this code could imho be reused for "making each section between two crossings visual into a busy road". Fight simulator for Widelands: |
einstein13 |
Posted at: 2015-04-26, 19:49
What logic you are talking about? I didn't told anything about finding route for wares. I only told about roads YOU and ONLY YOU think that are prior. What YOU think is something else than WIDELANDS think. My idea contains only affection to the busy/ normal roads. Nothing else. The rest is for Widelands engine Also it will not affect the spearation of logic and visuals of busy roads (@GunChleoc). Everything stays as before. It brings only more micro management.
Why not? I can play lots of games where everything is simple and the player don't have to learn anything. I don't want to play that games. I want to play a game, where I can learn something about it all the time. Also it is important to have the basic play easy. This idea nothing changes with that. The basic play will stay as it is now.
Yes and I think that it is great!
I think that we can use both: internal and player logic. Then you can affect it as you can affect the basic production with whole system: with stopping/ starting building producion and setting wares number inside. With the idea you can leave everything as it is now, but you can affect everything with roads as you want.
How can I see how many roads are waiting for a donkey?
With which change? (I don't understand all things, sorry) einstein13 |
kaputtnik |
Posted at: 2015-04-26, 21:12
einstein13, maybe i misread your suggestion. What benefit would it bring? What do you mean with micro management? Fight simulator for Widelands: |
king_of_nowhere Topic Opener |
Posted at: 2015-04-26, 23:08
I'm not sure I would like the idea of being able to manually upgrade a road because it would feel a bit llike cheating. I mean, even if you have a busy road you have to wait a while until it gets upgraded, being able to do it instantly will provide an advantage. But then, that's not necessarily a bad thing. Just that I would need to pshycologically adapt to the idea. Regarding the idea that a road should be considered crossing to crossing, that has goood potential, but it can be problematic to implement. what happens if then you make more roads? What if there were more crossings but then you split them down? It needs to be considered carefully A last thing: if you have a long road with a steady flow and only marginal traffic from the crossings (or traffic going in the opposite direction) it will take forever for it to upgrade: the wares will accumulate at the first flag, the carrier willl bring them one at a time, the road will get promoted, but in the meanwhile all the further segments of the road are only experienceing moderate traffic, and in particular all wares are removed as soon as they arrive at a flag - because the first bottleneck carrier will set the pace. then the first carrier will eventually get a donkey, and so all the wares will be shifted at the second flag, because now there are a carrier and a donkey bringing to it and only a carrier removing wares. so in time the second stretch will become busy. And then the third strethc has to start the process. and it takes quite a long time to arrive to the end of the road. in the meanwhile, the start of the road has probably been demoted, because all the wares are removed efficiently - the bottleneck further down smothers the economy in the region, and prevents the road from growing too busy. Although in practice it is a rare situation, I've seen it happen in my "archipelago sea" map, because the conformation of the map often prevents you from making alternative routes. In settlers 2 that problem did not exist, because only the amount of wares passing on a road was counted, and that guaranteed that all the pueces of a highway would become upgraded at the same time. So, while that system was far too simplicistic, maybe counting the wares actually moving on a road is a good way to go. A couple of ideas to do that:
Top Quote |
einstein13 |
Posted at: 2015-04-27, 00:13
Micro management is (in my understanding) that you are able to make only one piece of something while casual work is constant (and you are making lots of things). For example in Widelands casual soldier upgrading contains 12 soldiers inside trainings camp with lots of stuff to upgrade. Micro management here is to set only one or zero soldier and fully upgrade that ONE soldier to the highest level with all the resources. If you go to the game Port Royale (very good game, by the way), you aren't able to set anything about your building like that. You will have constant production for the whole time. If you go to the game Dwarf Fortress, the micro managmenet there is very wide. But you can create your fortress going (and lasting for a long time) without micro management. You can create there any weapon (for example Hammer) from exact material (for example Steel). Your dwarfs will not create that hammer from copper or silver. That is how I understand micro managment. You have empire working well without management, but you can improve it by some small changes, very deep inside. Is it clear now?
You don't have to wait untill long bypass will change to busy road. You can set any road you think is important to busy and take advantage of that. We don't have to implement anything strange to make it working. Only key management (or another button to road window in the game), that will set the m_busyness value to constant value at the time. Also this idea will solve the problem "main roads becoming normal again": you can simply make them busy even if they are already busy. Strange? Imgaine that the m_busyness is 390 (is 350 the bottom limit of busy road?). You can set the m_busyness value to 500 manually and prevent of becoming normal again. Simple?
That is why we use micro managmenet: to have an advantage above the oponents.
As it was mentioned before- it can be solved by using current methods.
The same as it is now. If you have road like 4 units long (or more) and split it, when the road is busy, you will get busy roads again.
I like big maps. On that maps you have to make good roads and bypasses. Those bypasses are usually long, straight ways without any crossing. To make it busy it takes up to few hours of gameplay. Even if the road is busy from the beggining of setting up. The bottleneck is moving- yes- but it doesn't change the beggining. You have long queue of wares with few flags, carriers and donkeys. Flag <-> donkey <-> flag <-> donkey ... flag <-> carrier. All of them are full of resources. That situation is VERY COMMON with big maps.
As I mentioned before, that mechanism has major bad thing. Imagine that you are playing for few hours. Finally all the roads inside your empire become busy. Even from one well or one farm.
The correct time is 1.8 seconds But it is only small difference
We should consider something very easy. Two triggers: 25% and 50% can work fine, but I think that we should consider something simmilar, but even easier to implement. Maybe using current method? (change it only a bit, not creating brand new?) If you want to rewrite it completely. If not- leave it Edited: 2015-04-27, 00:40
einstein13 |
king_of_nowhere Topic Opener |
Posted at: 2015-04-27, 01:39
The more I think about it, the more I like the idea of going by wares by time. So, if a carrier needs 1.8 seconds to take a step, a road can carry 1 ware every 1.8(lenght)2 (because the carrier must go back and forth) seconds. We can chooose as the standard road update time 43.2 seconds, because it's 3.6*12 and so it ensures that the amount of wares that can pass on that road is a round number for road lenghts of 2, 3, and 4 steps (namely 6, 4 and 3 wares exactly). So we can count the number of wares passing through the road in each direction (keep separate count for the two direction, use the greater of the two) and confronting it with the theoretical maximum:
Furthermore
With those settings
If you also want to implement the option of manually upgrading a road as part of micromanaging
It seems like it covers all the possibilities that have been suggested and doesn't use the CPU too much, requiring only to keep two counts and doing some basic divisions and additions every 43 seconds. P.S.
My bypasses still have plenty of crossings to connect them to the rest of the economy, and often they are two parallel roads connected to each other at every flag so that wares can easily be shifted from one road to the other if one is jammed. so, the program would still not recgnize them as a single road. EDIT: I try to write the multipliction symbol, and it accepts it when it has a number afterwards, but if I write a letter after it it just italicize part of the text. Oh, well, I suppose it's still readable. Edited: 2015-04-27, 01:52
Top Quote |
einstein13 |
Posted at: 2015-04-27, 03:28
Your idea is quite good But should there be a top and bottom limit of counts? (bottom like 0 and top like 1000? or more?)
Hmm... I never considered that the manually changed road can be in other logic than casual road. My idea was only to add to m-value a constant that will provide the road busy state. After some time the road will have the correct m-value as it should be without human ingerence. So:
In this situation the road was busy twice: first because of player micro management decision, and second because of normal behaviour (logic) of normal/busy roads.
My bypasses are bypassing some parts of economies. For example I bypass complicated road system of wood producion. The road is a bit longer, but straight. It can be about 30 segments long. Another example is not exactly used road: around the empire. Which is used by ores. Two ways: one through the empire, second around the empire. Second one is loooonger, but when I produce about 200 coal and iron at once, nobody cares about the distance.
I know that you are smar person. Consider not connecting all the flags. I use two ways parallel too, but I found about a year ago, that connecting all the flags are useless. Connecting flags nearby junctions- ok. But in other places it is definatelly useless. If all the roads are busy, there is NO traffic jams, because there is no fluctuations on the roads. If you have some 3-units segments, ok- you will definatelly have some traffic jams and then you need connections.
Yes, it is almost impossible to recognize a single road created from 2 parallel roads. I can't imagine any good mechanism/ algorithm for that. einstein13 |