Skip to main content
Topic: Interactions between P****enger Transport and Goods Transport (Read 15720 times) previous topic - next topic

Interactions between P****enger Transport and Goods Transport

May I know, if I have successfully supplied goods to those in-city end-consumer stores (e.g. pharmacists, supermarkets, shopping malls), will the town grow faster? I hope the answer is yes, for that is not only logical and reasonable, but also raises the importance of goods traffics, which can boost p****enger traffics by increasing local population. It's difficult to start with a full scale p****enger network in the early phase of a game, and it would be advantageous that goods traffics can also help improve population growth. After all, if a town has sufficient supplies of different goods, it can attract more people to reside there.

Besides, I think it is quite strange that one can build transformers next to such end-consumer stores to speed up goods consumption. Goods consumption should depend on demand.

I think it may be a good idea to give each end-consumer store a certain service area (say, 8 x 8 tiles) where demand is calculated based on population within that service area. Or, alternatively, demand can be calculated based on those p****engers whose destination is that particular end-consumer store, and randomize the quantity of goods that p****enger buys from that store.

The latter travel-buy-return choice may be the better choice, as that follows the logic of the game : if you can supply more connections to an end-consumer store, that store will have more customers and more sales. In turn, you will expand your goods transport network to cope with the increasing end-consumer demand. And the factories may also expand themselves gradually (just like grain farms in Pak128) if they can constantly maintain uninterrupted production, causing positive interactions.

EDIT : below + above 2nd paragraph split into 3 for readability

Lastly, any satisfied consumer (those who successfully buy something from the end-consumer stores) will raise a consumer satisfaction index and any disappointed consumer (those who fail to buy anything from the end-consumer stores) will lower that index. Such index can be used as a determinant of town growth which I mentioned above. The only logical flaw is that, cross-town buyers will also affect local town growth, but that is not important, as we can think in this way : if the stores can really offer constant supply of different goods, more people are willing to reside locally anyway.

I don't know if it is desirable, but some p****engers can be generated with a goal to purchase certain goods, and they will choose from the available stores as their travel destinations.

Re: In-City End-Consumer Stores

Reply #1
1st paragraph - that is what happens I think.

2nd paragraph - interesting idea, but expanding industries would be hard from a graphics point of view (fields are obvious and all the same for farms, but how to produce a one-tile expansion building for most factories? - I suppose there could be a generic "warehouse" type graphic).

Re: In-City End-Consumer Stores

Reply #2
All consumbers that accept workers from a certain town will stimulate growth of those cities. Also supplying a power plant will generate jobs and thus attract people to living in this area.

And imagine power as a lighted parking lot, neon advertizements, and air conditioning: More customer will come and shop here ...

Re: Interactions between P****enger Transport and Goods Transport

Reply #3
1st paragraph - that is what happens I think.
Ah, you are right. I should have tested this myself before asking. Sorry!

... I suppose there could be a generic "warehouse" type graphic).
Agree. Some industries are really difficult to make them grow graphically by automatic addition of new surrounding tiles. Your "generic warehouse" idea is good.  :D Even if that can't be done, I guess it doesn't matter if we simply increase the monthly production unit figure of the factory. I guess that would do already.

All consumbers that accept workers from a certain town will stimulate growth of those cities. Also supplying a power plant will generate jobs and thus attract people to living in this area.
Both concepts are very nice indeed.  :) But these stimuli on town growth are from the angle of employment, not consumption. As I have said above, if a town has sufficient supply of many goods, it should be able to attract more people to reside in it. Off-topic : does the employment effect on town growth exist only when the factories are engaged in production?

And imagine power as a lighted parking lot, neon advertizements, and air conditioning: More customer will come and shop here ...
You are right in that.  ;) But I guess that is just one of the less important factors that determine demand. If the population is low or if no transportation brings people to the consumer stores, what use is of extra power supply? Besides, the power-supply concept has nothing to do with transportation which is the main theme of this game.

My travel-buy-return suggestion above is transportation-centric :

If you are able to bring more people to shop at the consumer stores, you have higher demand and higher sales, which in turn allows you to expand your goods transportation and boosts your profits on it as you have more goods to deliver.

On the other way round, if you manage to maintain sufficient supply of various goods, more people will board your buses or trains for shopping and you will have room to expand your p****enger transport and you can earn more (Maybe we can give each consumer store a grade based on goods availability so that p****engers can choose which stores to visit?).

This is what I refer to as positive interactions between p****enger transportation and goods transportation.

I suppose the travel-buy-return suggestion would be more in line with the philosophy of this transportation game, one that works well with and extends Hajo's initial design of giving p****engers a destination, one that bridges the gap between p****enger transportation and goods transportation, and one that IMHO is worthwhile to explore further.

Edit 1 :

Another possible interaction between p****enger transportation and goods transportation is that, if a player successfully brings workers to a factory, there can be a production boost of certain percentage, so that goods transports can benefit by having more goods to deliver. I believe this is better than supplying electricity, which is outside the scope of transportation.

Edit 2 :

As a final comment, currently p****enger transport and goods transport seem like 2 isolated, independent systems which have little or no relation to one another. But I believe that some interesting interactions between the 2 are not only reasonable but can also make Simutrans more playable and more interesting.

Look forward to comments from all of you.  ;)

Edit 3 : Topic renamed to better reflect coverage

Re: Interactions between P****enger Transport and Goods Transport

Reply #4
I have a short discussion with Isidoro. And I have his authorization to reproduce the relevant parts here :



Quote from: isidoro

Many people ask ST to evolve to a more city-building simulation game or to make all different parts of it more connected (so that several subsystems influence each other).  There are two problems: first, ST already has a steep learning curve as it is.  If you complicate it more, new users would be overwhelmed.  Veteran users, however, push for more features or a more consistent game.  Second, many ST players really want a pure transportation game:  you have some stuff here that wants to go there.  Your job is to transport it, no matter how that stuff appears there at the beginning.  My opinion is that they may be right: if we move far apart from that, we may be talking about a different game.

Technically speaking, as ST is now, having p****engers with "routes" (i.e. go to that shop, then to job, then back home) is not feasible.  Only convoys have routes.  P****engers and goods have destinations and, in present version, they don't even know where they came from.  If that were added, more city-like events could be simulated: day-night, workdays-weekend, etc. patterns.  But the game would be "heavier" (slower, requiring more memory, etc.)




Quote from: Knightly

Quote from: isidoro
ST already has a steep learning curve as it is.  If you complicate it more, new users would be overwhelmed. 

I also have this concern. I would suggest giving each consumer store a smaller service area (like 2 x 2) in addition to my travel-buy-return suggestion. In that way, as long as there are some civilian residences around the store, there should be some basic level of demand and consumption to make each store functional.


Quote from: isidoro
many ST players really want a pure transportation game:  you have some stuff here that wants to go there.  Your job is to transport it, no matter how that stuff appears there at the beginning. 

First of all, I think my suggestions can be made as a customizable option.

Secondly, while there are players who just want to transport goods/people regardless of how they arise in the first place, I guess this kind of players is rare nowadays. Simutrans is not a transportation simulation utility program -- it is a transportation simulation game.

Thirdly, my suggestions make the game more intuitive than it currently is -- it would be bizarre to see automatic consumption of goods if the consumer store is situated in the middle of a desert which is void of any population or transportation link.

Fourthly, I don't think my suggestions are really complicated to players (maybe complicated to coders though), as they are just common sense. One has to go to the shop to buy, and if more people buy the goods, the shopkeeper will order more goods, simple as that. I guess it is more a matter of expectation -- a new player has no predetermined expectations but play with common sense. If common sense works, I don't think they will complain.


Quote from: isidoro
Technically speaking, as ST is now, having p****engers with "routes" (i.e. go to that shop, then to job, then back home) is not feasible.  Only convoys have routes.  P****engers and goods have destinations and, in present version, they don't even know where they came from.

You are right. But I am not suggesting giving people routes. As far as I can recall from one of Hajo's posts, once p****engers arrive at a certain destination, a return trip will be automatically generated. In short, travel-return is already in place. What I now suggest is, before the p****engers embark on the return trip, they can buy something from the store they have arrived at. It would be ideal if the goods they intend to buy is determined before the journey starts and is remembered as they travel, but if that can't be done easily, it is still good enough that they choose what they buy on spot when they arrive at the store.




Quote from: isidoro

Talking about the technical part: making the consumption of end-factories (shops, etc.) dependent on population around + people transported there would be easy. Each time a p****enger arrives, some goods are consumed.  Your idea of making the p****engers and goods network interact would be fulfilled this way and it's nice, in my opinion.

But you got it wrong about the return ticket issue.  When a new p****enger is generated, another one is generated with the opposite route.  It doesn't work the way you understood.  The p****enger is not generated when the first reaches destination, among other reasons because origins in transported "packets" is not kept.




Now, my feedback to Isidoro's 2nd reply :

Quote from: isidoro
But you got it wrong about the return ticket issue.  When a new p****enger is generated, another one is generated with the opposite route.  It doesn't work the way you understood.  The p****enger is not generated when the first reaches destination, among other reasons because origins in transported "packets" is not kept.

Even if that is the case, it doesn't matter. As long as p****engers arriving at a store can buy something (just reduce the available goods quantity), that will do. We don't need to simulate their bringing the purchased goods back home  ;)

Re: Interactions between P****enger Transport and Goods Transport

Reply #5
That sounds very interesting to me.  It would connect the two subsystems in an easy way.

Re: Interactions between P****enger Transport and Goods Transport

Reply #6
Thanks for your interest in this, Isidoro.  :D

I mention above that stores with stable and sufficient supply of goods should attract more consumers. To set up a Customer Satisfaction Index (a non-negative figure) per store based on successful or unsuccessful purchases should not be difficult to code, I guess ;).

To change the level of customer patronage, I would suggest making the P****enger Level of the store dependent on its Customer Satisfaction Index. Of course there would be a base level of P****enger Level as well as a ceiling. When the index rises, so is the P****enger Level; and vice versa. In that way, increased patronage can be simulated to reward stable supply of goods by well-developed goods transport.

Of course, this suggestion depends very much on whether P****enger Level can be adjusted during runtime. Do you think that can be done :D?

Besides, the Customer Satisfaction Indices of the in-city stores can be added up, and the resulting sum would be a factor determining town growth. I hope this would be technically feasible too.



On the other hand, can we adjust the Monthly Production Unit figure whenever workers from designated towns arrive at the factories, and whenever the factory has been steadily engaged in production?

The latter case seems to be easier; but for the former case, in what way should a newly arrived worker affect production rate? Increase certain percentage of production for a certain duration per worker? It's difficult to set, as there will be workers arriving from time to time. Any idea?

Re: Interactions between P****enger Transport and Goods Transport

Reply #7
Your ideas are similar to James Pett's ones.  Perhaps you can convince him to try some of them in ST Experimental.

I would only be for the most simple one: p****enger arrived, product consumed.

Now, the technical part, afaik:
  • You can increase factory production at runtime.  Now, it is done with electricity.  A similar approach can be followed for p****age arriving at a factory
  • Looking at the code, I'm sorry to inform you that p****enger level is a property of a "type of factory", i.e., if you modify it, you modify for all factories of the same kind.  In fact, it is the same quantity for pax level and mail level.  Of course that everything can be changed, but it is not direct.

Re: Interactions between P****enger Transport and Goods Transport

Reply #8
Your ideas are similar to James Pett's ones.  Perhaps you can convince him to try some of them in ST Experimental.

Oh, really? Is there a thread by James Pett which discusses it?

I would only be for the most simple one: p****enger arrived, product consumed.

It's already very good that you support the key component of my suggestions. Though I do hope that you can reconsider the proposal of increasing P****enger Level based on Customer Satisfaction Index : it is the way Goods Transport has impact on P****enger Transport. Implementing the customer purchase suggestion alone will only give unilateral impact on Goods Transport by P****enger Transport. I think it is worthwhile to have bilateral interactions.

Looking at the code, I'm sorry to inform you that p****enger level is a property of a "type of factory", i.e., if you modify it, you modify for all factories of the same kind.  In fact, it is the same quantity for pax level and mail level.  Of course that everything can be changed, but it is not direct.

Thanks for your info. I guess changing cl**** properties into an instance properties would not be difficult.



A clarification : The base level and ceiling of P****enger Level can be computed based on the existing P****enger Level figure store in the DAT files. So, no need to change existing DAT files.

Re: Interactions between P****enger Transport and Goods Transport

Reply #9
Knightly,

I am not currently planning to code this specific feature, but the thread discussing Simutrans-Experimental is 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.

Re: Interactions between P****enger Transport and Goods Transport

Reply #10
Thanks, James. I guess your modified p****enger generation which biases more towards local travels will work pretty well with my customer purchase suggestion.



Here, my proposal for worker-factory relationship. It's a bit complicated, I admit. But I am not smart enough to come up with a simpler and better model which is also reasonable :P

Firstly, concepts. I think that the factory scale should depend on goods demand only, and it will in turn affect the maximum number of workers that can be hired. Worker availability should not affect factory scale, though it can affect the actual production level.

Secondly, some algebra to illustrate my model.

  • Let P be the production level stored in DAT files.
  • B = base level of factory scale = a function of P (e.g. B = 0.4P)
  • C = ceiling of factory scale = a function of P (e.g. C = 2P)
  • E = expansion of factory scale 
    • If a factory has been engaging in steady production, E will rise gradually
    • If a factory remains idle for a long time, E will fall gradually
    • current factory scale = (B + E) <= C
  • A = actual production level = a function of (B + E) and W, where W refers to worker availability
    • e.g. ( (0.4)(B + E) + ((1-0.4)(B + E) x W) )
    • 0.4 is an arbitrary ratio to ensure that the factory will produce goods even without any supply of workers. This ratio can be customized for different difficulty levels.
    • If W = 1 (or 100%), factory will be working at its current maximum production level allowed by the current factory scale
  • W = worker availability = number of workers in effect / expected total number of workers
    • A linked-list will be created to store in its nodes
      • the number of workers in each worker packet, and
      • the expiry time of the packet's effect on production level (= arrival time + predefined Expiry Interval)
    • When a packet of workers arrive at the factory, the above data will be extracted/computed and added as a node to the linked-list. A separate count variable would also be incremented to avoid traversing the linked-list. This count variable actually stores "the number of workers in effect".
    • Expiry checking is done on the "oldest" packets and when certain packets of workers expire, the count variable will be decremented and the corresponding node will be removed from the linked-list in FIFO fashion.
    • "Expected total number of workers" is a function of P****enger Level of the factory as well as Expiry Interval of worker packets. This figure should estimate the total number of workers arrived within the Expiry Interval given the current P****enger Level. Since I don't know how p****enger generation actually works with the P****enger Level figure, I leave it to any interested coder to decide the proper forumla.
  • P****enger Level, in my model, behaves like the factory's demand for workers. It will again have a base level and a ceiling, both of which will be a function of the level stated in DAT files. The actual P****enger Level will be dependent on (B + E), the current factory scale. The larger the current factory scale, the higher the P****enger Level; and vice versa.
  • Mail Level can behave similarly as P****enger Level too



Mail Level can also vary with Customer Satisfaction Index at consumer stores, just like P****enger Level.



These are all the ideas I can offer on this topic. While these suggestions apparently require some changes and additions to existing code, I have tried to make them work within the existing paradigm as much as possible.

Any comments and suggestions are most welcome. :D I will wait till the end of this week before summarizing my ideas into an extension request.

Re: Interactions between P****enger Transport and Goods Transport

Reply #11
Thanks for your info. I guess changing cl**** properties into an instance properties would not be difficult.

It's not a cl**** property.  It's a separate cl****.  Every actual factory has another cl****; its factory type.  In that factory type instance, the pas level is stored.  But it's not difficult, as you say.


  • W = worker availability = number of workers in effect / expected total number of workers
    • A linked-list will be created to store in its nodes

I wouldn't go for a linked list for such a simple thing...  Simply declare a variable "task force" or something like that.   Decrease that variable with time and increase it each time workers arrive.


Re: Interactions between P****enger Transport and Goods Transport

Reply #12
@Knightly
 
  Does this model influences growth?
  Increased sales result of bigger demand given by p****engers ****isted facotries and shops impacts how cities grow?
  I want more detail of your model.

Re: Interactions between P****enger Transport and Goods Transport

Reply #13
@Colonyan

  Does this model influences growth?

Yes, it does influence city growth. As mentioned above, a customer satisfaction index (CSI) will be calculated per month based on customer purchase successes and failures (fail if desired goods are out of stock). This index will be a determinant of city growth. It is on per month basis to average out the short term shortages.

Actual monthly consumption (AMC) will also be considered in determining city growth.

To illustrate how the 2 act together to influence city growth, please see the following example below :
    Case 1 :  CSI = 100% & AMC = 200
    Case 2 :  CSI = 40% & AMC = 200
Boost on city growth should be higher in Case 1 than in Case 2. The reason is that, while the same quantity of goods is supplied in both cases, the quantity in Case 2 is far from sufficient to meet demand and will generate discontentment.

 

Re: Interactions between P****enger Transport and Goods Transport

Reply #14
Thank you for your secification. :)