News:

Simutrans Wiki Manual
The official on-line manual for Simutrans. Read and contribute.

Boarding-only stops, intercity route settings, etc...

Started by VS, November 26, 2008, 08:29:39 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

VS

I was asked to post this FR, since the original author can't/doesn't want/whatever.

In short: when loading things onto vehicle, cargo to farther locations should have higher priority, since it ensures higher profit. If cargo to near stations is loaded first, vehicle can unload it soon and complete the rest of route empty.

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!


Zeno

If possible, it would be great... but IMHO won't be very realistic.

the almighty snark

Maby you should be able to set this as a option for a line or schedule.

Giziar

I can imagine the advantages/disadtvantages of both systems.

If you have a system where you have 2 schedules to the end destination, one of them skipping most stations while the other as stoptrain (AH vs ABCDEFGH) then it would be nasty if the stoptrain gets filled with ppl wanting to go to H

If you have a system where schedules share a part of the same route and then go their own way (ABCDEFGH vs ABCDIJKL) it would be most beneficial that the farthest destinations get filled first.

I generally tend to use the 2nd system more than the first one so I would be in favour of this.
However if it's something that could be set as an option of a line: support^2.

yoshi

At least untill a few years ago, Simutrans had behaved so I think. But it was changed, because some people complained that express trains have few passengers.


For example, if you have two train routes as the following.

Express A - - - - - - - - - F
Local    A - B - C - D - E - F
And A and F are larger cities obviously (this is why express trains serve these stations).

In this case, if the local trains pick up long distance passengers first, then the local trains will be filled up with passengers going to F and are less likely to carry passengers to B. And the express trains will have less passengers.


But of course, if you don't have express routes, this would be more efficient.

z9999

As yoshi wrote, it was changed.
I like current behavior, so I don't support this idea.

history.txt
Quote
Release of 86.07

13-Jul-2005 (prissi)
   CHANGE: passengers and goods are first loaded for the nearest stations the convoi goes. This allows to built local and station skipping highspeed lines.

yoshi

I don't support, either.
But you can change the behaviour for each convoi (or each line), then I would support.

VS

Oh, now I understand.

Still, as a switch per schedule it sounds reasonable...?

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

prissi

Not really, the load first is way more efficent. The old system was load first waiting goods first. That way, if your stuff wait really long, it was almost never loaded, since new stuff was inserted at the list top.

VS

Hm, but what we are discussing here is a system working exactly opposite to the current. When I can, I will look at code, maybe it can be as simple as iterating backwards from end? Let's hope :)

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

prissi

You must iterate twice: First make sure you are not passing the same station twice and then start from before that entry. Apart from that things woul dbe identical. But since it break the concept of express lines, I would rather say, that this is not the right place to fix problems which are the innermost incentive to gaming. Imho, it is the task of the player to upgrade capacity, that this problem is solved (and a direct line would solve it with the current system, while with the proposed system all intermediate stops will be clogged until there is overcapacity on the express route).

VS

Very well, now I see why this is important to always stay that way...

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

isidoro

Both ways (old and new) have problems, because both can lead to starvation (if there is a steady flow of high priority people/goods, low priority ones accumulate).  That's a known problem with static priorities.

A (somewhat) crazy idea just occurs to me:
  - Take passengers/goods of the group with higher number waiting

If a vehicle is at A and its route is A-B-C-D and the people waiting to go to B is 100, to C is 300, to D is 200, take people going to C.

colonyan


yoshi

Quote from: isidoro on November 28, 2008, 04:06:18 AM
A (somewhat) crazy idea just occurs to me:
  - Take passengers/goods of the group with higher number waiting

If a vehicle is at A and its route is A-B-C-D and the people waiting to go to B is 100, to C is 300, to D is 200, take people going to C.

Then the route is likely to be filled up with passengers (or goods) going to the largest city (or largest consumer) among these. This cannot be a solution for this issue...

isidoro

This is a different problem, in my opinion.

If the total amount of generated pass/goods generated is over the capacity of the transport system to deliver it, pass/goods will accumulate, no matter what will be given priority.

The problem addressed is different. If priority is only based on distance to the station, it is easy that some vehicles steal pass/goods from other more specialized ones (express trains, quick connections, ...), no matter the way we give priority.  Giving priority to accumulating goods, those vehicles will steal pass/goods only if there is a lot.

Think the other way around: if we serve the smallest quantity, then all goods for the big city/consumer will not get completely through as well.

yoshi

Unfortunately, I'm talking about the very problem addressed in this thread.

Take an example above.

Express A - - - - - - - - - F
Local    A - B - C - D - E - F

And let's assume A is the largest city, while F is the second largest.


With the current loading system, convois serving the local services take passengers going to B, C, D, and E first and they carry passengers to F if there is any spare capacity, but they don't need to. Therefore, the number convois seving the local line can be minimal. And the convois serving the express line simply need to carry the leftover of the local services. And the number of the "leftover" is relatively stable.

But with your proposed loading system, local services will be likely to be filled up with passengers going to F first, because the number of passengers going to F is simply larger than that of passengers going to other destinations. This means the number of convois serving the local line will be surely larger than the above case to carry all the passengers to B - E. In addition, express route will become less profitable, since the number of "leftover" will fluctuate, depending on which passengers the preceding local convois load first.


In short, your proposal will be likely to reduce the utilisation rate of the convois.

isidoro

I'm not convinced about what you say.  For two reasons:

  • In your example, the main objective of the express line is to take care of that surplus.  So, if there is accumulation of those passengers, simply increase the number of vehicles of the express line.  Local line vehicles will help only when there is surplus for F.  If they keep helping too much and the number of vehicles are enough (that second clause is the difference between our positions, I think), the number of passengers to B, C, D, and E will grow and take precedence (aging mechanism)
  • The second reason is choosing another example in which C is the large city and the express line goes directly to C:  A --> C.  With the present system and following your same reasoning D, E, and F will not be served.  Am I right?
Though I may be wrong.  My intuition tells me that if I had a transportation office and packets for a certain destination accumulated, I would try to send them asap in whatever vehicle that could handle them.

I think the best way to test it is making a patch.  If I have time, I will try and see.  Just curious about if my intuition is right or wrong.

Fabio

Quote from: yoshi on November 27, 2008, 10:46:56 AM
But you can change the behaviour for each convoi (or each line), then I would support.

this would be great!
an option local/far distance line to be set for each line in line management...

yoshi

QuoteThe second reason is choosing another example in which C is the large city and the express line goes directly to C:  A --> C.  With the present system and following your same reasoning D, E, and F will not be served.

If C is a large city, then I would have an express service which skips B like A---C-D-E-F and local service between A and C, because most passengers to D, E, & F originate from A and C and the number of passengers between A and C is large. I could add non-stop services only between A and C as well, if neccesary. Anyway, there is no point to operate long distance local services, if there is an express route, because it's a waste of money.

The Hood

Quote from: fabio on November 30, 2008, 10:23:41 AM
Quote from: yoshi on November 27, 2008, 11:46:56 AM
But you can change the behaviour for each convoi (or each line), then I would support.

this would be great!
an option local/far distance line to be set for each line in line management...

I would definitely support this - you could make expresses load from farthest to nearest and locals from nearest to farthest.  It would add more flexibility and improve gameplay IMHO, so therefore a good idea.

hradtom

Thank you for discussion. It would be great, if there will be a switch to load first farther/nearer destinations.

z9999

Quote from: isidoro on November 28, 2008, 04:06:18 AM
A (somewhat) crazy idea just occurs to me:
  - Take passengers/goods of the group with higher number waiting

I have a converse view about this.
IMHO, take lower number waiting fitst is more useful for goods and passengers.

Combuijs

Quotetake lower number waiting fitst is more useful for goods and passengers.

And that's version number four!

Is this just me, or is the solution to this problem really simple?

Presumptions:
1) Profits are for all passengers relatively the same (2*distance -> 2*profit)
2) Vehicle load percentages are (close to) 100%

Situations:
A) There is only one connection between two cities
B) There are two connections between cities: one express (no intermediate stops) and one with intermediate stops.

Conclusions
A) It absolutely does not matter whatever system you choose, every passenger needs to be transported. In which order you do that is irrelevant.
B) For the express-connection to work you need the current system (start loading with passengers for the nearest stop).

General conclusion:
The current system is the best of all the alternatives.

If the connections are not working well (passenger overflow at stations or vehicle load percentage way under 100%) tune the capacity of the connections. Fiddling with loading orders won't help you.

Bob Marley: No woman, no cry

Programmer: No user, no bugs



Sarrus

Quote from: VS on November 27, 2008, 10:48:25 AM

Still, as a switch per schedule it sounds reasonable...?
I think this is an idea, that can satisfy everyone.

hradtom

to Combuijs:

You don't have right. There is situation C), usual in city local traffic:
there are two lines:
LONG: A-B-C
SHORT: A-B (because there is more passengers to be transported between A and B)

Then the problem is, that I could not influence the timetable. When comes the LONG line first, it loads passengers from A to B and is full between A and B, and empty between B and C. The SHORT line is then empty between A and B (because passengers used the LONG line).

Do you understand?

Combuijs

QuoteDo you understand?

Yep, I do. It's a valid example. I personally would have solved this by making two lines:

A-B
B-C (or A-C, or even both)

which is far easier to configure in terms of capacity. But your example may have advantages as well (no extra hop for passengers).

So two solutions make sense: load nearest first and load farthest first. The other two (taking lowest/highest number of passengers for a destination first) are only useful when you are lacking capacity, so they can be better solved by increasing capacity.
Bob Marley: No woman, no cry

Programmer: No user, no bugs



hradtom

Combuijs wrote: So two solutions make sense: load nearest first and load farthest first. The other two (taking lowest/highest number of passengers for a destination first) are only useful when you are lacking capacity, so they can be better solved by increasing capacity.

Agree. The switch to load nearest/farthest destination first should be useful. The switch should be defined for the line.

colonyan

The best would be treating the passenger with their arrived order. I guess we don't have this because the program will have to remember more information.

Quote from: hradtom on December 01, 2008, 12:08:18 PM
The switch to load nearest/farthest destination first should be useful. The switch should be defined for the line.

I have to disagree with being able to switch the load nearest/farthest depending on the line. Passenger are to be served and not to be "ordered" to take or wait until which train.

I see this way.

We can not afford to treat passenger in their arriving order because of process power of cpu.
                                                           V
Then we've decided to treat from the nearest assuming that's passengers behavior as customer.
                                                           V
Forcing passengers behavior seems little odd from my view of this simutrans. I believe as one company,
they should treat customer evenly. Not prioritizing some of them to the interest of company.
Company should work to follow the customer's behavior.

Magic_Gorter

I agree with you colonyan. The game should behave as it would be in real life. So the passengers/goods who wait longest should be first on the train.

wernieman

#31
The problem is ....

At every time come passenger.

When there a passanger want to A, and some for A come, then all passenger to A will get a group ... so you don't know if they wait long ore not ....

I think, it is not good to change how simutrans load the trains ...
I hope you understand my English

DirrrtyDirk

And you should consider the increase in memory and processing time any new method would probably generate on big and well developed maps with thousands and thousands of passengers. Some things just need to simplified quite a bit to be still playable and can't be done all that realistically.
  
***** PAK128 Dev Team - semi-retired*****

Magic_Gorter

I do understand that's probably not possible to program. But to build those options (near/far) shouldn't be build in because it's far from realistic...so stay with the way it's right now..

VS


My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!