Author Topic: Differntiating between network layers  (Read 3131 times)

0 Members and 1 Guest are viewing this topic.

Offline Leartin

Differntiating between network layers
« on: May 09, 2016, 12:17:36 PM »
Little Timmy want's to visit his friend Mike. But Mike lives in another city, and little Timmy is too young to drive! So Timmy needs to use public transportation. So what does Timmy do? Why, first he asks Mike for the busstop closest to his home. Then he walks down the street to the closest busstop to his home, and looks at the bus table. But - oh no! No bus stops at Mikes bus station! But Timmy does not give up. Like every kid nowaday he has a smartphone. He looks at all the names of bus stations busses from his station actually reach, and looks up if other busses pass the same station, and if there are some, he looks at all their plans to see if one of them stops at Mikes bus stop. Since there is still no connection, he repeats the process again, and again, and again. He looks up train timetables and thus even reaches faraway lands in his research, and since he looked up so so many plans, he finally finds a route to Mikes bus stop.
Obviously, Little Timmy is a Simuthanian, were it is common to plan trips like that. Start at your location and look up every place you can go from there, repeat for each of those places, until you reach your destination.

Now if I was Timmy, I'd do it differently. I'd start by looking for trains from the central station of my city to the central city of Mikes city, either direct or with one or two train switches, and not worry for the local part of the route. Only if I found a connection between the cities, I'd look up how to get to and from the train station. Or, if there is no city bus service, I'd ask my parents to drive me there (as little Timmy) - or walk there, or take a taxi, or hitchhike. I think the longer the trip, the further you'd be fine with using non-public transportation methods.


Back to the game - why would Timmy even want to visit Mike? Well, Timmy became randomly friends with Mike via a tinder-esk app that finds friends for you. It's called "locality_factor" and depending on the year you are in, the higher the chance to find a friend far away. There is no real reason why that app does that, other than that it has certain assumptions about reality.

In reality, public transportation became more widespread, faster and cheaper, thus more accessible over the years. The better the public transportation network, the easier it is to reach faraway places, and the more likely it is someone actually goes there. However, time is not directly a deciding factor here, only the network is. Time only decides how good the network can be, since it's quite hard to establish high-speed-connections on horseback.


Now, it's just a game, and not everything is possible. But I think at least Timmies journey could look a bit different just by adding some layers to the network. To do so, let's introduce an extension building for stations that converts that station to a higher level with access to another layer - let's call it L2. L2 Stations have an additional L2 coverage far bigger than normal coverage.
The L2 network is a subset of the normal network that only includes L2 stations and direct connections between L2 stations, not connections where a trainswitch at a normal station is required.*

Currently, any pax may desire to visit any pax-place on the entire map, restricted only by the locality factor. It's pretty much picking two random places and spawning a pax in each, destined to go to the others spawning location.
I propose to set a hard limit on how far a paxes desires can go. That is, spawn and destination are within a certain distance of each other, and no pax would just randomly decide to want to go to the other side of the map just like that.
Instead, a pax-pair will spawn at two different L2 stations, depending on the amount of pax in their L2 coverage, and will only route via the L2 network. If a route is found, 2 pax-pairs will spawn located at the two L2 stations and a 'random' location within the L2 coverage of that station.
This means you have 3 pax-pairs, covering the route from a "spawn" in one city to that cities central station, the route from that cities central station to another cities central station, and the route from that other cities central station to the "destination" in that other city.**
If the routing within one city fails, it does not influence the far trip anymore - that pax would have used a cab or other methods to reach the central station.

Now, does this even change gameplay?
Honestly, I don't think it would change too much. Players already build central stations, differentiate between small local lines and bigger main lines etc. - just the game does not and sometimes prefers local lines over mainlines. This would mostly be a tool for players to tell the game their intentions.
Yes, having L2 stations without any local busses or trams would allow to connect a whole city with just one station. However, one can already do that (changing the coverage radius or having each busstop as the same station) and with this, one can add in local networks later.

How about performance?
Might even improve. With the current system, pax may route across the entire map. The proposed system divides long trips in several shorter trips, which are easier to route. Especiallly the longest part of the trip, which only uses a restricted L2 network.
Besides, it's possible to reduce the max hops for pax drastically, even 2 might be enough to find a route within a city or within the L2 network, especially if players are aware of this and plan accordingly.

How about backwards compatibility?
Nothing gets removed, just new things introduced. By not setting a hard limit for local connections and not having L2 station extensions in the pakset, everything should remain as is.


Well, that's the idea for the moment. I'm not sure if I could get it across, but please discuss it :)

*) now, if L2 is a good idea, one could repeat the process for L3 or even L4.
**) That's definitelly possible, but it would be even better to combine the three routes into one, just so it isn't confusing why there are so many routes ending at the central stations.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 4544
  • Total likes: 165
  • Helpful: 106
  • Languages: EN, NO
Re: Differntiating between network layers
« Reply #1 on: May 09, 2016, 03:45:08 PM »
I don't understand this concept. That may not mean nobody else does, but I think it's an indication that not everybody will.

Offline DrSuperGood

Re: Differntiating between network layers
« Reply #2 on: May 09, 2016, 04:23:09 PM »
Station coverage is already broken. Look at many of the pak128 multiplayer games and you see lazy people covering 100*100 tile areas with a single stop in a way no one can build anything as all streets are covered. They weave bus stops on every free tile of road just to avoid dealing with local passenger pickup.

So far my thinking to this would be to only allow 1 tile per stop to act as the pickup point (different from what I discussed in the past). The pickup range is then determined by the type/level of the building providing the pickup, so a bus stop might be only 5*5, but a small train station would be 7*7 or 9*9 and a large one 15*15 (12 long platform support) with an airport 25*25.

On top of the stop building maintenance you would need to pay a pickup maintenance which is based on the pickup area for the stop. A 5*5 bus stop pickup would be free, however a 25*25 airport pickup could cost several million per month (adjusted for month length). This is also slightly exponential so that covering a 25*25 area out of 7*7 stops would be much cheaper per tile. This would mean that building smaller stops more frequently is encouraged, entire cities will not be plastered with bus stops and people who only want to focus on air travel can.

Implementation would involve the adding of a "join stop" tool which can allow one to remotely join two different stops (not touching). Using the tool on the same stop would move the tile/building providing the pickup coverage. Stops would need some logical limitations such as maximum spread being limited to 40*40 or based on pickup area so that people do not create teleporting stops to move goods long distances.

Quote
Currently, any pax may desire to visit any pax-place on the entire map, restricted only by the locality factor. It's pretty much picking two random places and spawning a pax in each, destined to go to the others spawning location.
I propose to set a hard limit on how far a paxes desires can go. That is, spawn and destination are within a certain distance of each other, and no pax would just randomly decide to want to go to the other side of the map just like that.
Instead, a pax-pair will spawn at two different L2 stations, depending on the amount of pax in their L2 coverage, and will only route via the L2 network. If a route is found, 2 pax-pairs will spawn located at the two L2 stations and a 'random' location within the L2 coverage of that station.
The long distance passengers are meant to be tourists. For some reason people from the UK like to visit places like Italy, Spain etc which is like one person visiting the other side of the map.

Offline Vladki

Re: Differntiating between network layers
« Reply #3 on: May 09, 2016, 06:05:14 PM »
Maybe just some optimization of route finding would do the same. Something along this line: if start and destination is not within the same city, then try to find "best" connection between those cities and then local transport. But in the end it may not help at all. Real people do not use algorithms for trip scheduling.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 4544
  • Total likes: 165
  • Helpful: 106
  • Languages: EN, NO
Re: Differntiating between network layers
« Reply #4 on: May 09, 2016, 07:26:50 PM »
Real people do not use algorithms for trip scheduling.

Sure they do. Even wandering on and off buses and trains at random until you reach your destination is an algorithm. A very ineffective algorithm, but an algorithm nonetheless. However, people use a wide variety of different algorithms, based on the kind of trip or their own way of thinking, while simupeople are all slaves to one, which is also shared with cargo, at least partially.

Offline Octavius

Re: Differntiating between network layers
« Reply #5 on: May 09, 2016, 07:29:42 PM »
I'm definitely within the L2 radius of the main railway station of my city. It's just a 15 minute bike ride. But usually I walk to a nearby suburban mainline railway station (suburban station, main railway) only 900 metres from my home. That's even faster, in particular as I don't have to get my bike out of the in-house bike garage or whatever you should call it. From that suburban railway station local trains depart in two directions: to the main station of my city and to the main station of the next city, 40 km away. When I go north, east or southeast, I go via the main station of my city. When I go south or southwest, I go via the main station of the other city. West or northwest it doesn't matter and I base my route on reliability of connections, probability of overcrowding etc. There's no difference in travel time, distance or ticket price. So I don't necessarily go via the main station of my city. This means that the suburban station, and in fact most mainline railway stations, would be L2.

I think that most people nowadays use online travel planners. Some only take into account trains, others both trains and buses and even ships. I don't know how these typically work, but I don't think it could be copied to Simutrans standard. A few years ago it was all paperwork and people needed some intelligence to find the best connections. With intelligence, you can sometimes still beat the online travel planners.

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 8685
  • Total likes: 294
  • Helpful: 228
  • Languages: De,EN,JP
Re: Differntiating between network layers
« Reply #6 on: May 09, 2016, 09:56:11 PM »
Technically having different coverage areas is feasible. Balancing this is more difficult. And maintenance scaled by coverage area was discussed already somewhere in the forum.

The other routing, I seen not much difference. The higher probability for longer travel with time is balanced with the agility of the means of transport. Having said that, a capping might be very sensible. So, instead of a relative mean travel distance an absolute is feasible. (It would lead to mostly intracity travel "inside the same town" on sparse large maps, but this may be helpful for starting those games.) However, for smaller maps some scaling must be there, otherwise no one would travel intracity.

So, yes, why not, a capping for the range of travellers. Might not change most games if set at 1024 or so.

Offline Vladki

Re: Differntiating between network layers
« Reply #7 on: May 10, 2016, 06:46:18 AM »
Ters: ok, people use algorithms, but most of them are hard to describe, let alone implement, and use inputs that are not simulated.

Prissi: I think the capping should be based on travel time, not distance. That will automatically increase the range as technology improves. Sim-ex has it, perhaps too complex for standard, but some inspiration could be useful.

Offline Leartin

Re: Differntiating between network layers
« Reply #8 on: May 10, 2016, 09:33:21 AM »
I don't understand this concept. That may not mean nobody else does, but I think it's an indication that not everybody will.
I know, it's hard for me to properly convey my ideas, but the wall of text was already long, and more words likely would not describe it any better. Maybe it gets more clear along the way with various answers from and to others.

I'm definitely within the L2 radius of the main railway station of my city. It's just a 15 minute bike ride. But usually I walk to a nearby suburban mainline railway station (suburban station, main railway) only 900 metres from my home. That's even faster, in particular as I don't have to get my bike out of the in-house bike garage or whatever you should call it. From that suburban railway station local trains depart in two directions: to the main station of my city and to the main station of the next city, 40 km away. When I go north, east or southeast, I go via the main station of my city. When I go south or southwest, I go via the main station of the other city. West or northwest it doesn't matter and I base my route on reliability of connections, probability of overcrowding etc. There's no difference in travel time, distance or ticket price. So I don't necessarily go via the main station of my city. This means that the suburban station, and in fact most mainline railway stations, would be L2.
Honestly, I can't evaluate how your situation really is, mostly because I don't know what a "suburban mainline station" would be. I was thinking along the lines of ICE-connections, which I don't think stop in suburbs - even if they go right through it. But yes indeed, if it is a mainline stop, you could say it's L2.
However, something comes into play I thought about, but did not mention so it would not be more complicated: I'd like to give the player control over how big the coverage area of a station is, with extension buildings that increase the radius, or even extend the coverage only in one direction. With this, you would not fall in you cities central stations L2 coverage area, but the L2 coverage area of the nearest mainline station, and you would start routing from there - as you probably do.
But if we assume that this suburban station is not, in fact, L2 (but you are within it's normal coverage), you are totally right in your critique. You would either be in the catchment area of only your cities main station and always route far travel over that city, or you would be in the catchment areas of both cities main stations and use one at random, no matter which direction you go. Actually, worst case, you might go to one of the stations to move to the other, just to end up in a location in your own city. This might be prevented by caping the minimal distance for travelling on the L2 network - but I consider this details, since similarly stupid situations might occur anyway - eg. a pax who wants to move only 3 tiles could end up making a trip over an entire map instead of walking.
I think that most people nowadays use online travel planners. Some only take into account trains, others both trains and buses and even ships. I don't know how these typically work, but I don't think it could be copied to Simutrans standard. A few years ago it was all paperwork and people needed some intelligence to find the best connections. With intelligence, you can sometimes still beat the online travel planners.
These online travel planners work with time, not distance. If there is a regional connection, but only twice a day, these planners might find them exactle when appropriate, but usually would use routes with more traffic. Likewise, they know an ICE is faster than a bus, even if the bus does not stop more often. Reality is a lot more complicated than the abstract concept I'm proposing, and I think Experimental tries to be as realistic as possible. For standard Simutrans, it's not really the way to go.


Station coverage is already broken. Look at many of the pak128 multiplayer games and you see lazy people covering 100*100 tile areas with a single stop in a way no one can build anything as all streets are covered. They weave bus stops on every free tile of road just to avoid dealing with local passenger pickup.
Yes, and this concept makes it even easier for these people, they just have to create an L2 station. However, the L2 station will only generate L2 pax for them (and the usual 2-tile radius of normal coverage) and not affect the "normal" pax. Therefore, even though that L2 station exists and generates the far-travel-traffic for that other player, you can still build a local network for local travels.
If there was a way to connect your local network to the other players L2 station, you'd even get more pax thanks to the L2 station. Thus, these two different playstyles (one station per city vs. local networks) could finally coexist and benefit from each other.

I'm definitely within the L2 radius of the main railway station of my city. It's just a 15 minute bike ride. But usually I walk to a nearby suburban mainline railway station (suburban station, main railway) only 900 metres from my home. That's even faster, in particular as I don't have to get my bike out of the in-house bike garage or whatever you should call it. From that suburban railway station local trains depart in two directions: to the main station of my city and to the main station of the next city, 40 km away. When I go north, east or southeast, I go via the main station of my city. When I go south or southwest, I go via the main station of the other city. West or northwest it doesn't matter and I base my route on reliability of connections, probability of overcrowding etc. There's no difference in travel time, distance or ticket price. So I don't necessarily go via the main station of my city. This means that the suburban station, and in fact most mainline railway stations, would be L2.
I think you understood the basic concept.
First of all: Of course you are in the L2 radius of the main railway station of your city. And you could reach it even if there was no local public transport, which is one of the benefits of the supposed system. If you want to catch a train there, you'd probably use your bike, rather than staying at home just because there is no bus stop right in front of your house.





So far my thinking to this would be to only allow 1 tile per stop to act as the pickup point (different from what I discussed in the past). The pickup range is then determined by the type/level of the building providing the pickup, so a bus stop might be only 5*5, but a small train station would be 7*7 or 9*9 and a large one 15*15 (12 long platform support) with an airport 25*25.
But what would stop a player who now plants dozens of busstops to build an "airport" that's actually a train station? Sure, you claim it's the price, but you could already make bus stops more expensive to punish the plastering behaviour, it's not going to change people who can't be bothered to deal with local traffic. Except make the game less attractive to them.
Now if you could seperate the coverage based on what vehicle would be used that could be useful, but that's probably even harder to program than my suggestion. Currently, if a bus and a plane connect the same two locations, pax would pick whatever arrives first, there is no destinction.
I don't think that suggestion solves any problems.

The other routing, I seen not much difference. The higher probability for longer travel with time is balanced with the agility of the means of transport. Having said that, a capping might be very sensible. So, instead of a relative mean travel distance an absolute is feasible. (It would lead to mostly intracity travel "inside the same town" on sparse large maps, but this may be helpful for starting those games.) However, for smaller maps some scaling must be there, otherwise no one would travel intracity.

Not much difference, no. That's intentional, since if there was a huge difference it would be a different game.
Now, the "no intracity travel" is exactly where the different network layers come into play. Say you cap the distance of normal spawned pax at 200 tiles. On a 200*200 map, that's pretty much fine. If the distance is circular, no pax would go from one corner to the opposite, but that would hardly be noticed.
On a 1000*1000 map, it would be a problem, since all travel is local. But now, the player can build L2 stations which don't have the distance cap, thus opening the map to long-distance travelling across the map.
If you go one step further, you could limit normal traffic to less than 100 tiles, use L2 network for up to 500 tiles, and L3 for unlimited range.

Offline DrSuperGood

Re: Differntiating between network layers
« Reply #9 on: May 10, 2016, 05:05:12 PM »
Quote
But what would stop a player who now plants dozens of busstops to build an "airport" that's actually a train station? Sure, you claim it's the price, but you could already make bus stops more expensive to punish the plastering behaviour, it's not going to change people who can't be bothered to deal with local traffic. Except make the game less attractive to them.
Bus stops are already quite expensive in pak128 and seldom break even themselves.

Nothing stops people making an airport coverage station except that it will cost them a lot. However they are limited to at most airport sized (and not 100*100 tile blocks) and also they do not gain advantage for plastering the city with bus stops or underground stations (making it hard for other people to build in the same area).

With different pickup area sizes implemented there can be changes to passenger pickup logic. Specifically passenger walking could be limited to at most 6 or 10 tiles, meaning that there would still be need for local transport even if the area is inside a massive catchment area of an airport/station. This would have a similar effect to what is proposed without altering mechanics too much.

As it is passenger spawn mechanics already spawns a number of local journeys, journeys within the same city which do not produce return traffic. However these are usually lost due to stop coverage abuse since as long as two points are connected by the same stop then the passengers/mail will walk to their destination, even if it is 100 tiles away. If walking was to be limited in range then such passengers would still need local transport in order to reach their destinations. The spawn rate of local passengers could then be retained at 30% odd at late game, as opposed to currently where most paksets have it set to eventually go to 0%.

A new spawn logic could be added to distinguish regional and national traffic instead of being non-local traffic. Regional traffic is limited in range to X closest cities where X changes with time. National traffic has unlimited range. As time progresses the distribution of traffic changes with generally local traffic decreasing and regional/national traffic rising.

At the start of a timeline traffic could be mostly local with some regional traffic to a few nearby towns and cities. Towards the end of a timeline local traffic is smaller than regional traffic to nearly a dozen nearby cities and there is a significant amount of national traffic.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 4544
  • Total likes: 165
  • Helpful: 106
  • Languages: EN, NO
Re: Differntiating between network layers
« Reply #10 on: May 10, 2016, 06:42:08 PM »
With different pickup area sizes implemented there can be changes to passenger pickup logic. Specifically passenger walking could be limited to at most 6 or 10 tiles, meaning that there would still be need for local transport even if the area is inside a massive catchment area of an airport/station. This would have a similar effect to what is proposed without altering mechanics too much.

I think that the longer the journey, end to end, the longer will people be willing to travel on their own between the actual endpoints and the nearest mass-transit terminal at either end. This terminal might be as little as a bus stop, although it would need parking facilities nearby if it is to really work beyond walking distances. While realistic, this isn't as easy to understand for a player, as passenger flux can be very random since Simutrans only simulates a random sample of people. (You can't see the same person go back and forth from work on a regular basis.) Journey length isn't quite the proper metric either, as people will be more willing to use public transportation if there is lots of traffic, at least if there are dedicated lanes for such. Time would be the most proper metric in real life, but time in Simutrans is very unrealistic. A vehicle that has to yield to another vehicle in Simutrans, even just once, can quite easily double the time it spends between two stops.

At the start of a timeline traffic could be mostly local with some regional traffic to a few nearby towns and cities. Towards the end of a timeline local traffic is smaller than regional traffic to nearly a dozen nearby cities and there is a significant amount of national traffic.

I wonder if it really is that simple. If we really go far back, beyond what any pak set in Simutrans really seriously deals with, before the industrial revolution, I imagine that you either travelled far, or you hardly travelled at all. Those travelling far, would mostly be merchants, pilgrims, soldiers and the ruling elite. The lower classes would work, eat and sleep within their farm or manor. I don't know much about the latter, as Norway never really had such things, but even if the peasants commuted within them, I don't think that would be something any sort of outside transportation company would deal with. The only type of local traffic, would probably be to church on Sundays and other holidays. So that rather than just travelling further and further as time goes on due to globalization, wealth and faster vehicles, we also travel shorter and shorter due to urbanization.

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 8685
  • Total likes: 294
  • Helpful: 228
  • Languages: De,EN,JP
Re: Differntiating between network layers
« Reply #11 on: May 10, 2016, 09:22:27 PM »
The concept (of having different reaches of passengers depending on what station is near) is not a very workable one. It may be workable for experimental (since the route creation is different). Also such stations are only needed at the periphery; and as soon as there is some income, one would built one tile of this to have all station long range converage? (Or the passenger generate will become even slower.)

Offline isidoro

Re: Differntiating between network layers
« Reply #12 on: May 10, 2016, 11:38:52 PM »
One way to discourage players to build huge artificial stations in order to gain coverage could be to introduce a time penalty for big stations accounting for the time that a person/packet has to walk/be transported from arrival point to departure point inside the station.

The packet will have an additional state (transporting from arrival to departure point), although that would prevent merging of packets, wouldn't it?

That delay would be zero for one-tile stations and grow with station size (linear with the radius of the station?)

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 4544
  • Total likes: 165
  • Helpful: 106
  • Languages: EN, NO
Re: Differntiating between network layers
« Reply #13 on: May 11, 2016, 04:54:41 AM »
One way to discourage players to build huge artificial stations in order to gain coverage could be to introduce a time penalty for big stations accounting for the time that a person/packet has to walk/be transported from arrival point to departure point inside the station.

The packet will have an additional state (transporting from arrival to departure point), although that would prevent merging of packets, wouldn't it?

Yes, so it would demand extra memory and processing. Considering that each player plays Simutrans their own way, according to their own rules, I don't support adding this to the game. Some peoples' games may rely on it, as they just want to do intercity transport without all the tedious work that setting up local transport is.

As a side note, this seems sort of similar to the pipeline concept.

Offline Leartin

Re: Differntiating between network layers
« Reply #14 on: May 11, 2016, 11:01:47 AM »
Nothing stops people making an airport coverage station except that it will cost them a lot. However they are limited to at most airport sized (and not 100*100 tile blocks) and also they do not gain advantage for plastering the city with bus stops or underground stations (making it hard for other people to build in the same area).
A normal stop is 5*5. By allowing 25*25 stops, you are okay with 25 times the original stop size. In other words, you are okay with players cheating away 96% of their stops by using those airportstops instead, but not if they cheat away 99,75%. Sorry, but that seems to be quite arbitrary and does not tackle the underlying problem.
Even in a 100*100 Tile block, a player would use no more than 40 bus stops, simply because that's enough - why have more running cost? The same 40 bus stops would be used by a "non-cheating player" as well, just that that player wouldn't have all of them combined in one station.
The only reason not to remove all those intermediate busstops needed to create the block in the first place is to keep other players from building in the same area, and this could still happen, you did not propose anything to stop players from doing that.

With different pickup area sizes implemented there can be changes to passenger pickup logic. Specifically passenger walking could be limited to at most 6 or 10 tiles, meaning that there would still be need for local transport even if the area is inside a massive catchment area of an airport/station. This would have a similar effect to what is proposed without altering mechanics too much.
Actually, it seems to me like that would alter mechanics more fundamentally, especially since existing mechanics are altered or replaced, while my proposal only adds. Plus, it seems to only require additional resources, while my suggestion could even be better for performance.


A new spawn logic could be added to distinguish regional and national traffic instead of being non-local traffic. Regional traffic is limited in range to X closest cities where X changes with time. National traffic has unlimited range. As time progresses the distribution of traffic changes with generally local traffic decreasing and regional/national traffic rising.
Right, you could limit regional traffic... say... you could have a cap on the distance.
Right, you could have a new spawn logic for national traffic - but how? If it's the same pax at their same nearest station in the same small radius and all that's different is the distance they will travel, isn't it just categorizing the pax that spawn now according to locality_factor, making it nothing but locality_factor with more numbers?
If, however, they not only 'spawn' differently but behave differently as well... you get very close to the original request.

The concept (of having different reaches of passengers depending on what station is near) is not a very workable one. It may be workable for experimental (since the route creation is different). Also such stations are only needed at the periphery; and as soon as there is some income, one would built one tile of this to have all station long range converage? (Or the passenger generate will become even slower.)
I'm not sure if that's directed to my request or Dr Supergoods, since I agree if it is the later, but it could also be the former if misunderstood.
Just to make sure: In my request passengers don't have different reaches depending on what station is near. The new layer would not affect the old layer directly, an L2 station pretty much just counts how many pax are within it's L2 coverage and long-distance-trips spawn right at these stations.
Because there is a destinction in layers, having a large L2 coverage is meaningless for "normal" traffic. L2 stations would have normal coverage as well, but just the normal 2 tile radius.
Yes, a player could just build L2 stations with large coverage and nothing else, the game would be playable that way. If the player plays by himself, that's the same as extending the normal station radius. In online-games, it would not affect other players to the same extend it does now, since others can still build normal stations for the short distance traffic. And if there was a way for other players to connect to the L2 station, they would even benefit from it, since they get additional pax (those who want to the L2 station to start a long distance trip) - win-win-situation for both playstyles.

Offline DrSuperGood

Re: Differntiating between network layers
« Reply #15 on: May 11, 2016, 04:28:16 PM »
Quote
A normal stop is 5*5. By allowing 25*25 stops, you are okay with 25 times the original stop size. In other words, you are okay with players cheating away 96% of their stops by using those airportstops instead, but not if they cheat away 99,75%. Sorry, but that seems to be quite arbitrary and does not tackle the underlying problem.
Except most stops are not 5*5. My inner city stops are usually 16*5 as I use 12 long subway stations. My passenger export station is usually 16*10 to fit for 2 subway circles in symmetrically with 4 terminal platforms for traffic. My hub stations are often insane sizes like 16*16 in the middle of nowhere as they are nothing but solid stops.

Also 5*5 is arguably too small for a stop as it really does not cover many useful tiles, it is common for bus stops to have anywhere between 9/25 and 13/25 tiles as road. In the case of surface level train stations most of the coverage area is taken up by the station itself and commonly a road surrounding the station leaving only a small 1 tile boarder around to pickup passengers.

Additionally it is not "cheating" in that there is a cost associated with the larger pickup areas. Currently it is linear with area (same cost as if separate stops) and also blocks tiles to do so. Under such a proposed system the cost would be semi-exponential and will not block tiles for the coverage. The result is that people who want large station pickup can get it, pay for the convenience of having it and not plaster cities in buildings.

Quote
Actually, it seems to me like that would alter mechanics more fundamentally, especially since existing mechanics are altered or replaced, while my proposal only adds. Plus, it seems to only require additional resources, while my suggestion could even be better for performance.
Walking is currently pretty broken. By covering a town in a stop suddenly everyone can walk everywhere where as before they cannot. Additionally trolls can ruin your local transport network by plastering a city with stops so that there is no local traffic anymore so your local transport network has a massive traffic reduction. The suggestion on walking range limit was to add something similar to what was requested (not touching local traffic with big stations) while fixing other underlying issues. With the walking distance limited there would be room for both long distance "25*25" players and local service "5*5" or "7*7" players in the same city.

The big difference between the L1/L2 proposal and my proposal is the L1/L2 adds a completely new mechanic layer to the game where as my proposal revises and improves existing mechanics.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 4544
  • Total likes: 165
  • Helpful: 106
  • Languages: EN, NO
Re: Differntiating between network layers
« Reply #16 on: May 11, 2016, 07:58:22 PM »
My bus and tram stops are usually 5x6, which is one bus/tram stop and one mail stop. Sometimes they are in an L-shape, which gives a somewhat larger, non-rectangular catchment area, but I dislike that arrangement since it can't fit 2 tile long trams late in the game. I think my subways and metros tend to be 7x5, as any bigger that that feels like proper trains to me. My train stations are at least roughly 6x10, except in the 19th century, but can easily be many times bigger if it is a hub and/or a freight terminal with multiple loading bays for trucks.

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 8685
  • Total likes: 294
  • Helpful: 228
  • Languages: De,EN,JP
Re: Differntiating between network layers
« Reply #17 on: May 11, 2016, 08:47:13 PM »
We are starting to mixing things a lot. Here is the attempt of a conclusion so far.

Original idea of having different layers: Very difficult to implement and also not clear to players. For instance how to indicate which is the long and local radius. And in later games, when town have merge, then it becomes rather random if a stop is intercity or inner city by just a few tiles. It could be even the same target station who is target for one time for inner city (exit to the left) and inter city (exit to the right lead to other city).

Stations/Extensions tiles with different coverage area: Yes absolutely doable.

Nonlinear maintenance increase for large coverage area: Possible, but it could be incorporated already in the maintenance cost of the stations/extension tiles themselves. So maybe not needed.

Capping of of travel probability on larger maps: Yes, it makes sense and would help to start on sparse maps.

Trolls ruining network games: Introduce a switch to limit the number of station tiles (probably per waytype?) and extension per station (as a setting)

Offline DrSuperGood

Re: Differntiating between network layers
« Reply #18 on: May 11, 2016, 11:05:51 PM »
Quote
Nonlinear maintenance increase for large coverage area: Possible, but it could be incorporated already in the maintenance cost of the stations/extension tiles themselves. So maybe not needed.
Except some times you want high level capacity tiles just to hold transient wares/people. If both are up to the developer you will get a huge selection of different stop/storage buildings to cater to this which will result in UI clutter.

Instead maybe having a tool to alter the coverage (eg like the signal tool allows you to alter signal spacing) would be better. This would remove coverage dependency from the building allowing players to position exactly where they want the coverage centered and how big. Restrictions could be up to pakset authors but I think requiring that the tile have a stop at some level would be a good one.

Capacity and the stops themselves could be quite cheap (opposite of current pak128 balance). Instead a lot of the cost for bigger stations could end up being the pickup area for them to be useable. With purely transfer stations you could actually save money by forgoing most pickup with would also pose an interesting game mechanic.

I thinking limiting pickup to only 1 tile with customizable area would be a good idea since it puts well defined limitations to stops which players need to build around. There is a point where simply expanding pickup area will no longer be sufficient and instead more than 1 stop will be needed. One could argue that this tells the player how to play more, removing some sandbox elements, but one could also argue it adds logical depths to the gameplay allowing people to show more ingenuity when it comes to taking advantage of the mechanics.

As far as backwards compatibility goes it would be actually quite compatible. On load an algorithm could be used to automatically assign stops the appropriate coverage size and position based on what they had under legacy rules, aiming for the smallest pickup size used that covers everything the stop previously covered. Sure stops which were something stupid like 100*100 tiles would break, but then again there is good argument from a game play perspective that they were already broken. Players are then free to optimize their pickup sizes to be more exactly what they want.

Quote
Trolls ruining network games: Introduce a switch to limit the number of station tiles (probably per waytype?) and extension per station (as a setting)
So my 12*12 mega transfer stations get blocked? Most of the players doing the "trolling" are doing so for the pickup area and not to purposely troll and so the pickup changes would fix that. When I exploit pickup currently I delete most of the stops so that mine are positioned as if separate (so most streets remain free), however most people do not care so much.

The reason this is a big issue now is due to the patch which fixed passenger and mail counting (the one I made after wondering why some of my services were so bad in one of the multiplayer games). Walking before would apply a penalty to city growth by being missed passengers/mail (as if they had no route or were unhappy). The patch meant they do count (so that 100% transport metrics are possible, especially if one uses large but not abusey stations) and so plastering a city with a single stop became a much more viable and attractive option. Not that people actually care much for transport metrics, as far as I can tell I am like the only person online who actually aims for maximum transportation from cities.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 4544
  • Total likes: 165
  • Helpful: 106
  • Languages: EN, NO
Re: Differntiating between network layers
« Reply #19 on: May 12, 2016, 05:05:32 AM »
The reason this is a big issue now is due to the patch which fixed passenger and mail counting (the one I made after wondering why some of my services were so bad in one of the multiplayer games). Walking before would apply a penalty to city growth by being missed passengers/mail (as if they had no route or were unhappy). The patch meant they do count (so that 100% transport metrics are possible, especially if one uses large but not abusey stations) and so plastering a city with a single stop became a much more viable and attractive option. Not that people actually care much for transport metrics, as far as I can tell I am like the only person online who actually aims for maximum transportation from cities.

If walking takes place if origin and destination is within the same stop's catchment area, then maybe stations should not increase a persons walking only distance. It will lead to some odd situations where people might enter a huge stop, board a vehicle 20 tiles away from home, and take that vehicle to a smaller stop 10 tiles away from home, in essence a big detour, but I don't think that will be very apparent, and it should avoid such exploits. On the other hand, the exploit does already cost, because they have to pay for station maintenance, but get no income from the internal movement of people. Although walking should really be independent of stops altogether.

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 8685
  • Total likes: 294
  • Helpful: 228
  • Languages: De,EN,JP
Re: Differntiating between network layers
« Reply #20 on: May 12, 2016, 09:12:47 PM »
About limiting tiles per station: I think such a limit would be per waytype. More than 12 tile road stops are pretty useless, but more than 40 tiles airports are rather common.

Offline jamespetts

  • Simitrans-Extended project coordinator
  • Devotee
  • *
  • Posts: 15125
  • Total likes: 353
  • Helpful: 153
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Differntiating between network layers
« Reply #21 on: May 21, 2016, 05:35:36 PM »
One way to discourage players to build huge artificial stations in order to gain coverage could be to introduce a time penalty for big stations accounting for the time that a person/packet has to walk/be transported from arrival point to departure point inside the station.

Simutrans-Experimental already does this with the "transfer time". That, in addition to taking into account the walking time to/from the origin/destination stops, makes the strategy used in Standard of having single very large stops to cover huge areas counter-productive for the same reasons and to the same extent as in reality.

Quote
The packet will have an additional state (transporting from arrival to departure point), although that would prevent merging of packets, wouldn't it?

Simutrans-Experimental abolished merging some time ago, as each packet needs to have more information than in Standard, which meant that packets were never merged in practice. The performance on modern computers is perfectly reasonable nonetheless. It should be noted that, even as CPU performance increases slow, memory bandwidth is still getting greater.

Overall, I suspect that Simutrans-Experimental's journey time tolerance, alternative destinations and passenger generation algorithms achieve a similar effect in practice as is desired by the OP here.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.