News:

The Forum Rules and Guidelines
Our forum has Rules and Guidelines. Please, be kind and read them ;).

Revenue generating stations

Started by Octavius, November 05, 2015, 07:56:06 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Octavius

In Simutrans, we often build station expansion buildings to store passengers who are waiting for their train. These buildings cost something for construction, maintenance and land area (you may have to demolish some city buildings), but don't do anything else. When I look around in the real world, I see station expansion buildings containing fast food restaurants, flower shops, bike rental companies (owned by the railway company) etc. The platforms themselves have advertisements, also generating revenue. In fact, NS (the major state-owned railway company in the Netherlands) generates 14% of its revenue from station activities that have nothing to do with actually moving passengers.

(Note that this includes commercial activities at minor stations not served by them, and the total revenue includes moving passengers in other countries, where they don't own the stations, and maintenance work they do for other train operators. Only looking at station activities and domestic passenger transport, stations are responsible for 22% of their revenue.)

In the past many railways owned their own hotels. The one at London St. Pancras is particularly well-known for its architecture. Airports generate much of their income from restaurants and shopping centres too.

Now I suggest two options.

A: Station buildings (which may include the platforms) generate revenue equal to the average number of people waiting during a particular month (a statistic already calculated), divided by the storage capacity of the station, capped to 1, multiplied by the maximum revenue of that building. If the station gets overcrowded, additional passengers won't generate more income, as the restaurant is already full. In this model people who have to wait longer for their train are more likely to go the the restaurant then those waiting only a few minutes, which is quite realistic. This may however encourage the player to make their passengers wait for a long time. This is mostly a problem in Standard, as in Experimental the passengers won't show up if they have to wait for too long.

B: Station buildings (which may include platforms) generate revenue equal to the number of passengers coming through the station (loading, alighting or transferring), divided by the storage capacity of the station, multiplied by a constant representing the fraction of the month a passenger waits at the station, multiplied by the base revenue of the building. This models the case where every passenger spends a fixed amount of money at the station, independent of the time they spend there. This is less realistic, but does not allow for an exploit in Standard.

In both cases adding more restaurants when the station isn't full won't generate much more income, as the people can already go to the other restaurant. You may pull a few people from the platform to the restaurant, but maybe not enough to compensate for the extra maintenance.

DrSuperGood

#1
Good idea for experimental. Bad idea for standard. Experimental kind of forces you to move passengers around so they do not wait long at stations. Standard generally allows you to accumulate passengers at transfer stations in inefficient networks.

In experimental you can have 10k-50k waiting at a busy (very, very busy) station. In standard I have seen stations with over 10 million passengers waiting because I messed up my network design.

Iluvalar

I already suggested that, but i'll do it again. If buildings were generating and absorbing semi-fluid ressources : pollution, crowd, manpower, work, crime,shop,... And those ressources were then flowing a few tick per month through the roads, the game could calculate a few ticks per month which building are successful and which one are a failure.

you could then buy a restaurant or an hotel near one of your stop if you want. With a clever resource system, even playing the public service could be feasible and enjoyable.

DrSuperGood

That would still greatly raise the resources Simutrans uses.

Iluvalar

8 byte per tile should suffice. 10 operations ( 2 every direction + 2  the building) on every of those byte each tick.
That 2mb of ram and 10m operations in a 512x512 map. We are talking about 0.002% of my cpu on one of my two 1.66GHZ core. And that's not what I'd call a gaming computer...

Even if we bloat the code 100 folds and use 200mb, we could still run 5 ticks per month and use 1% of 1 core. I think it's feasible.

Ters

512x512? That's a small map. And going through the entire map 25 times per second is not 0.002% of any CPU core today, at least in the consumer market.

DrSuperGood

Quote8 byte per tile should suffice.
Which could degrade performance a lot as tiles are apparently very size optimized.

Simutrans is not a city simulator, it is a transport simulator. Just think that your maintenance factors in adverts and shops already.

Iluvalar

Quote from: Ters on November 10, 2015, 06:21:41 AM
512x512? That's a small map. And going through the entire map 25 times per second is not 0.002% of any CPU core today, at least in the consumer market.
I'm sorry for the confusion, I meant that the new simulation could run at his own tick rate of _one per minute_ and still gives interesting results. Even less if we hit the surrounding ~100 tiles around the building with a circular approximation on build.

I'm just making a suggestion, even if it's feasible, I force nobody to code it today. But I'm saying, if I decide to do it, that's how I'll do it.

All the assets are there, we have tons of buildings, the roads and even a functioning traffic system. It could be reused to improve the transport simulator, we could test the motivations of the passenger using the resources around the stop. These 6 look for leisure, those 3 go shopping, these 3 go at job and that one there want to rob the bank...

Simutrans is not a city simulator... Sure but what if someone was making it both ? Would you be mad at him ? You would be free to ignore that part, just as I usualy dont pay attention to mail...

Ters

Quote from: Iluvalar on November 10, 2015, 04:49:36 PM
Simutrans is not a city simulator... Sure but what if someone was making it both ? Would you be mad at him ? You would be free to ignore that part, just as I usualy dont pay attention to mail...

That depends on how much the other part gets in the way. I once proposed a multiplayer idea where some players could play transport company and others could play mayors, on the same map, but with dedicated clients. Probably too hard to put into Simutrans. It might be an idea for a new game for scratch.

And Simutrans is not a city simulator; it contains multiple. Which means they have to be simpler than the simulation in Sim City, which only features one city (in full detail at least).

Iluvalar

Well... I want to say "duh!". I'm talking about a simcity 2000 kinda complexity, not simcity 5. We seem to have more then enough assets already.


I'm just saying, if we were treating resources like pollution and manpower as a goo that flow slowly once per minute we could have good metrics to calculate the success of the buildings with quite low calculation power. You're a coder, you got what I mean for sure by now...


pick a tile, calculate the pressure of the goos on the 4 tile around and make it flow accordingly in a "flow matrix". Add the flow matrix to the "base resource matrix" once you passed trough all the tile. This way you can do your calculation tile by tile trough the whole minute and nobody notice any slowdown at all.


Maybe I should open my own thread if you are interested... I'm not in a hurry, I'm just sharing ideas :)

Ters

Quote from: Iluvalar on November 10, 2015, 06:29:17 PM
I'm talking about a simcity 2000 kinda complexity

So was I. I don't know anything about the newer ones, although I've heard the maps have gotten smaller.

Quote from: Iluvalar on November 10, 2015, 06:29:17 PM
pick a tile, calculate the pressure of the goos on the 4 tile around and make it flow accordingly in a "flow matrix". Add the flow matrix to the "base resource matrix" once you passed trough all the tile. This way you can do your calculation tile by tile trough the whole minute and nobody notice any slowdown at all.

I had a course in this once, to the point of making such stuff utilize computer clusters. Like the one in the university's basement running the national weather forecast. But that was 7-8 years ago, and I've never done anything like that since.

Quote from: Iluvalar on November 10, 2015, 06:29:17 PM
Maybe I should open my own thread if you are interested... I'm not in a hurry, I'm just sharing ideas :)

I've forgotten what this was about in the first place. Sharing ideas is not illegal. Everyone has their own ideas on what Simutrans is about. I'm mostly unsatisfied with the industrial distribution, evolution and the economy.

prissi

Well, even the earliest incarnations of Simutrans came with an environmental idea in the intro text although it never manifested itself in the game. Adding environmentalism would not be too hard, maybe run it one per month or so. But I fail to see what you want to achieve? So what would be the impact of ten coal power stations served around the city but no forests, and a mega airport?

And Simutrans city growth is already using "homeless" and "jobless" models to determine whether a new building is commercial or residencial or industrial. Also the surrounding of buildings itself govern the next type, so there are residencial, industrial and commercial areas. You just to not have to cover police and fire stations for them to have city growth.

Consider SImutrans mostly a service industrie, so services are enough to grow cities.