News:

Simutrans Sites
Know our official sites. Find tools and resources for Simutrans.

Joining tiles to a specific station OTTD-style

Started by Spacethingy, January 09, 2016, 11:02:27 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Spacethingy

As per the title, in OTTD you can add a station extension/tile to a station that it isn't adjacent to by placing the tile while holding ctrl. This invokes a menu that allows the user to select an existing station to assign the tile to, or simply create a new station.


While this is obviously exploitable to make stations with huge coverage easily, that's not really why I'd like this in Simutrans. Take the following situation:


Here I've built an airport with 2 distinct ground terminals in order to separate goods and pax (Guppies go to the left goods terminal). I'm a bit squashed for space so the two terminals are adjacent to each other. This was rather fiddly to build; I can't seem to work out the logic for which station a newly placed tile is assigned to when it has more than 1 to choose from. Does it pick the upper-left most station? Anyway, without demolishing quite a bit of the cargo terminal and starting again, I can't assign the tile that the second-from-the-left Guppy is sitting on to the pax terminal. (the space was originally empty)

Cheers guys!
Life is like a Simutrans transformer:

You only get one of them, and you can't have it on a slope.

Ters

Quote from: Spacethingy on January 09, 2016, 11:02:27 PM
[...]This invokes a menu that allows the user to select[...]

I think this is one of those things Simutrans simply doesn't do.

TurfIt

Clicking on an existing station tile, and dragging onto the desired empty tile for the new building might be a way to simply signal player intent to the game?
There does otherwise need to be some clarification of the 'rules' as to which station the newly build tile joins when you have a single empty tile surrounded by two different stations.

Isaac Eiland-Hall

To further discussion of ideas: CTRL-Click to place a station tile that does not connect to neighbors.

I was thinking the existing logic we have is like the Stop Moving tool - click Join Station button, click the station tile, click a station to join it to. That might lead to easy exploits to join stations over long distances, but maybe there can be a maximum range of 3 tiles or something or it fails. Also, this would make building large stations easier in general since sometimes there can be a small gap between parts of a station (think of a truck/bus stop where you have a few station tiles on either side of a road - normally you have to build a connector station that you immediately remove; being able to join stations would solve that problem).

DrSuperGood

Quote
I was thinking the existing logic we have is like the Stop Moving tool - click Join Station button, click the station tile, click a station to join it to. That might lead to easy exploits to join stations over long distances, but maybe there can be a maximum range of 3 tiles or something or it fails. Also, this would make building large stations easier in general since sometimes there can be a small gap between parts of a station (think of a truck/bus stop where you have a few station tiles on either side of a road - normally you have to build a connector station that you immediately remove; being able to join stations would solve that problem).
I support this idea and have raised it in chat on many servers.

However if such a feature was added then some limit or penalty is needed to prevent the abuse from becoming out of control. Limits could be a minimum stop density assuming the maximum bounds. Penalties could be a fee per unit departed representing internal handling expenses.

TurfIt

CTRL-click is rather oversubscribed. How many more CTRL modified commands can we handle?

There was a suggestion where station maintenance costs would scale by coverage area rather than number of station tiles themselves. Constructing disjoint stations would then atleast have some financial penalty, likely not enough though unless it scaled so much as to make any use punishing. I observed one player on an online game cover an entire city with one station, and 'block' other players from the city by simply constructing a station tile on every city street tile. Other abundant income kept them afloat, and disjoint stations covering the entire city would be cheaper, but they still went for the 'block' approach... IMHO there needs to be some game mechanism to discourage such, especially online.


DrSuperGood

There are many cases where you want big disjoined stations, such as a huge industrial yard. The problem is though that often for commuter pickup it is far easier and more profitable to just pave an entire city with 1 stop than it is to run the money losing commuter pickup lines.

Some sort of upper limit to stop size would be a start. Something like 50 tiles sounds reasonable. Such limit could be as low as 20 tiles, but any lower runs the risk of blocking legitimate construction. Then some financial penalty for large spread out stations to discourage their use. Finally making commuter pickup services more profitable would mean players would have an incentive to not cover entire cities with a single stop.

A good example is in the current pak128 - 2 server game. I need passengers for some of my suppliers for bonus production. To get them I set up a commuter line. On top of expensive stops, I am also losing several thousand per month per convoy. In my case the extra product more than offsets this. However if I were to join all the stops together so people could just "walk" to the factory then I would be saving several thousand loss per month from the line, several thousand from road maintenance and never need to worry about quality of service. You can see why one is tempted, even though the area involved is over 40 tiles distance. If that commuter line of mine was making 10k+ profit per month and disjoining the stop parts like that would cost me 10k+ per month then there is no choice to make but to set up a commuter line.

sdog

Different types of station tiles could also have different weights. Such that building a 12 tile long double platform train station isn't penalised while paving 24 tiles of a city with the cheapest bus stops ought to be possible to prevent. Albeit, in such a way that pak-set authors/server admins can change it, to have local-transport free long range games.




James' solution in experimental is intriguing, where the station requires walking. Having a large disperse station isn't better than having one central, as they pax still have to walk to their point of departure. In standard it doesn't make a lot of sense of course, since journey time is of no consequence. This only should point in a way of thinking. It is better to have a system that makes such strange things like city spanning stations uneccessary due to inherent game dynamics, instead of a penalty system.

Perhaps abandoning fixed catchment areas altogether? Increase the catchment area not based on station tiles, but level of station buildings. The catchment area always is in the centre of mass of the station.

For example, ten lowly bus stops would have a small catchment area, not much larger than that of one bus stop, which is centred at their geometric mean. If a player would build the bus stops along a long road, it would be the same as having a larger bus stop at the centre of that road.

In comparison, a railway station with the largest station extension building, would be very compact, high level, and have a much larger catchment area. Adding a few bus stops to it would hardly increase the catchment area. A rule of diminishing returns would ensure that even a very high level station would only incrementally increase its catchment area by adding further addtions. this prevents that mega stations, think of hub airports, are enough to cover whole regions.

In order to make lokal transit still viable, one could make the catchment area at its rim difuse, it would only catch a percentage of the population. If you want more pax, you need to get them with a tram or bus to your hub.

This will not work with goods however, but there catchment is not necessary. Adjacency or proximity to the industry would still be required.

Ters

Quote from: TurfIt on January 10, 2016, 01:57:57 AM
CTRL-click is rather oversubscribed. How many more CTRL modified commands can we handle?

On everything but PCs, that would be a negative number.

Isaac Eiland-Hall

My assumption is that CTRL is preferable to things like more menu options, but whatever works better. :shrug:

Ters

Quote from: Isaac.Eiland-Hall on January 10, 2016, 02:13:09 PM
My assumption is that CTRL is preferable to things like more menu options, but whatever works better. :shrug:

Not if there is no Ctrl key.

Spacethingy

For the record, TurfIt's click and drag solution would seem the most sensible thing to me. This is actually something I tried to do while I was seeing if Simutrans had some existing method to solve the problem, especially given that clicking-and-dragging stations is already a thing. As I said, connecting a tile to a non-adjacent tile isn't really useful (read: morally useful!) in Simutrans, so in actual fact a menu would just be an over-complication.
Life is like a Simutrans transformer:

You only get one of them, and you can't have it on a slope.

DrSuperGood

Dragging stops and extensions makes stops and extensions all along the drag path when possible (and error dialogs to cover the screen when not). This is so you can press and drag a full 12 tile long platform instead of having to press 12 times. As such I do not think it is that good a solution, with a better one being a link tool similar to the "replace stop" tool.

Vladki

I like the idea of a tool to join stations. A distance limit should be applied, perhaps equal to coverage area.

Perhaps also a tool to split station in two might be useful.

I also like one of the previous posts about coverage increasing with capacity and being centered at the highest level building. It would nicely reflect real life train stations, where you can enter only at the main entrance, and are willing to walk further than to a small bus stop.

Ters

Quote from: Vladki on January 10, 2016, 05:38:23 PM
I also like one of the previous posts about coverage increasing with capacity and being centered at the highest level building. It would nicely reflect real life train stations, where you can enter only at the main entrance, and are willing to walk further than to a small bus stop.

I think the willingness to "walk" has more to do with the total distance of the journey, than the size of the stop.

Vladki

Quote from: Ters on January 10, 2016, 06:03:43 PM
I think the willingness to "walk" has more to do with the total distance of the journey, than the size of the stop.
I agree.

But still I like the "centre of mass" idea. If you have station with long platforms, people usually have to go through the station building. There may even be a few bus stops along the platform where transfer from bus to train is not possible.

Ters

I was commenting on the coverage-capacity relation, rather than the center thing.

prissi

I also like the use of the join tool. There is even code for this.

I find the idea of maintenance of a station also based on its coverage quite nice. That cost must be independent from the actual central building/stop, was many converages tiles are coverad by more than one station tile. But a good choice of such coverage maintenace could make a single city covered by one stop without local bus income too expensive.

I think the joining should be charged exponetially, e.g. 1000 one tile, 2000 2 tiles, 4000 3 tiles, and 1024000 for ten tiles. That would introduce quite an automatic limitation ...

sdog

Quote from: prissi on January 10, 2016, 10:12:23 PM
I think the joining should be charged exponetially, e.g. 1000 one tile, 2000 2 tiles, 4000 3 tiles, and 1024000 for ten tiles. That would introduce quite an automatic limitation ...
Wouldn't that just make the player use the current system? Build the cheapest station building/extension next to the station as a filler. Then build the station tiles one wants, and remove the cheap fillers. I.e. the problem is not the way a non-adjacent station tile is linked to a station, but the unlimited sprawling of stations itself.

el_slapper

Quote from: sdog on January 10, 2016, 11:48:03 PM
Wouldn't that just make the player use the current system? Build the cheapest station building/extension next to the station as a filler. Then build the station tiles one wants, and remove the cheap fillers. I.e. the problem is not the way a non-adjacent station tile is linked to a station, but the unlimited sprawling of stations itself.

Not if maintenance doubles each time you expand it one side. A simple bus stop would cover 1*1, and therefore cost 1 + 1 = 2 in relative maintenance. 3 bus stops in a row would cover 1 * 3, and cost 1 + 8 = 9. 2 bus stops in diagonal at a crossing(a conbination I'm often using) would be counted like 2*2 and cost 4 + 4=8. Now imagine a diagonal of 5 bus stops, it would be assimilated at a 5*5 square, and have a relative cost of 32+32= 64, ergo 32 times the cost of the single bus stop.

And if you keep only a few scattered bus stops, that could cover a square of 10*10, relative cost would be 2048, 1024 times the cost of the single station. Even if only 4 or 5 bus stops remain active. Punitive & dissuasive. The idea is to use the real cover as a multiplier, not the actual number of stations. It would make air transport less cheaty, too. Take the smallest square in which all the buildings of the station can enter, square each dimension, and you've got a decent base for the maintenance cost.

If you want it less punitive, take the square in which the TOTAL cover enters; it makes the minimum station less cheap.

sdog

Quote
Not if maintenance doubles each time you expand it one side. A simple bus stop would cover 1*1, and therefore cost 1 + 1 = 2 in relative maintenance. 3 bus stops in a row would cover 1 * 3, and cost 1 + 8 = 9. 2 bus stops in diagonal at a crossing(a conbination I'm often using) would be counted like 2*2 and cost 4 + 4=8. Now imagine a diagonal of 5 bus stops, it would be assimilated at a 5*5 square, and have a relative cost of 32+32= 64, ergo 32 times the cost of the single bus stop.

A typical pax station with 4 platforms each 8 tiles long would increase that cost 232 ≈ 109. Bulk freight stations are often much longer, e.g. 12, at a goods transport hub with a lot of waiting platforms. While that approach works to do something against the minor nuisance of getting rid of full-city-covering stations, it would also kill the game economy entirely. It is better to leave things, add a linker button than a heavy handed correction.

prissi

No, if you pay maintenance for coverage too. Then connected bus stop covering an entire city will have a very high coverage ratio.

My remark about exponential increase of money would be the one off charge when connection the disjoint stations. If you want to make coverage expenonetial, it must be weighted with the total building number. But my feeling is that this will be very hard to proper balance, thinking of many freight yards often covering on factory.

Isaac Eiland-Hall

I have never found a solution to serve factories with trucks that doesn't involve a very large station. I know the theory is that you're supposed to be able to figure out how many trucks you really need and space things out so that one truck is waiting at a time, but I've never been able to do things that way. I admit I throw more trucks than I need, but also I use choose signs and tend to have one station tile per truck so that when production catches up and trucks are not loaded, every truck has a station that it waits in. This solves traffic problems by having a number of trucks waiting in line - I find every truck having its own station is better.

Perhaps I'm a fringe case - and perhaps I just don't know how to properly play - but things that vastly increase the cost of a large station with many tiles sounds..... not helpful to me.

DrSuperGood

Quote
Perhaps I'm a fringe case - and perhaps I just don't know how to properly play - but things that vastly increase the cost of a large station with many tiles sounds..... not helpful to me.
JIT2 was design to try and help fix this problem. In a well run network you may only have 2-3 trucks ever waiting for cargo at any time with the rest constantly in motion. Although it does introduce other problems (which people are still debating) it does allow for at least some part of your rolling stock to be rolling at any given time without concern of them all having to stop at some stage.

sdog

Quote from: prissi on January 11, 2016, 11:54:32 PM
My remark about exponential increase of money would be the one off charge when connection the disjoint stations.
You can have large joined stations already by building them tile-by-tile. When the 'join stations' function ought to have any use it mustn't be more expensive than doing it the other way.

tl;dr: The problem of excessively large stations is a problem on its own. The tool doesn't have to solve it. When you introduce the tool with caveats, having the other problem in mind, you: (a) don't get a useful tool; (b) are not even a step closer to solving the other problem; (c) have yet another parameter to balance.

Ters

Quote from: Isaac.Eiland-Hall on January 12, 2016, 01:57:26 AM
I have never found a solution to serve factories with trucks that doesn't involve a very large station. I know the theory is that you're supposed to be able to figure out how many trucks you really need and space things out so that one truck is waiting at a time, but I've never been able to do things that way. I admit I throw more trucks than I need, but also I use choose signs and tend to have one station tile per truck so that when production catches up and trucks are not loaded, every truck has a station that it waits in. This solves traffic problems by having a number of trucks waiting in line - I find every truck having its own station is better.

Perhaps I'm a fringe case - and perhaps I just don't know how to properly play - but things that vastly increase the cost of a large station with many tiles sounds..... not helpful to me.

I do that as well. If a line has an entry telling the vehicles to wait for a load, that stop will have space set aside so that every single vehicle can park there at the same time. Since trains don't have city cars randomly moving about, and since one train equals multiple cars in terms of capacity, I will often leave parking space for the trains on the track leading into their dedicated platform. That saves some money on station maintenance, and makes it possible to have the extra parking space a bit away from a possibly crowded area. This will easily lead to lots of messages about stuck trains, though.

Leartin

I think this thread derailed a bit from what was initially wished for. The main impulse was not to join stations that are apart from each other, but to choose which station a new station tile belongs to if it neighbours two different stations.

Using a join-station-tool, while being a great addition elsewhere, would not help in this case. If the newly placed tile joined the wrong station, using that tool on the tile would count for the whole station, so you'd get only one station in the end - this is not what Spacethingy was trying to achieve.
If there was a join-station-tool that does not make the station public, you'd still need a seperate-station-tool, and it would require both tools to do what Spacethingy asked for in a non-obvious manner.

The click+drag-approach, where you click on an existing station and drag to a neighbouring tile to extend that station there, even if that tile neighbours another station as well, seems like a very good solution with no drawbacks. I suppose DrSupergood was quick to dismiss it since he did not understand the original problem, which is entirely different from having gaps in a stations design.

Since there are two very different wishes here, could the thread be splitted?