I'm developing a text based economy game in python, the idea is similiar to Transport Tycoon. Players can offer a passenger transport service between city pairs. Every service differ from each other at several attributes like price, quality of service, travel duration, company image, departure time/arrival (e.g. departure time at 2 am will have reduced attractiveness for customers) and so on. Passenger demand is specified in this way: [demand: 100, average price: 50$] This means that demand is 100 passengers per week, assuming a default base price and an average quality of service. Base price depends on distance between cities. On every city pairs can be any number of services from any number of players.

I'm looking for ideas, advice, how I can implement customers who will be buy tickets in a way described below. Here are example scenarios and expected results, if only price matters:

connection between A and B, demand 100, average (default) price 50

  • Player1: seats 100, price 50, sold tickets: 81
  • Player2: seats 100, price 67, sold tickets: 19

In this situation, if all (100) passengers will simply chose offer from Player1 (because this ofer is cheapest) this will be unrealistic because in real life some customers will buy ticket from Player2, even though this offer is more expensive than first offer. More examples:

  • Player1: seats 100, price 50, sold tickets: 63
  • Player2: seats 100, price 55, sold tickets: 37

  • Player1: seats 100, price 50, sold tickets: 90
  • Player2: seats 100, price 85, sold tickets: 8
  • Player3: seats 20, price 99, sold tickets: 2

In more complex model, passenger should considser also additional service attributes e.g. service quality 5/10 company image 71/100 travel duration time 3h 15min and more


put on hold as unclear what you're asking by David Richerby, Evil, Yuval Filmus, Discrete lizard, Juho 2 days ago

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 4
    $\begingroup$ Do you have a specific question? Open-ended design discussions don't work well on this platform. $\endgroup$ – Raphael Jan 6 at 15:23
  • $\begingroup$ It's really up to you how you model your situation. $\endgroup$ – Yuval Filmus Jan 9 at 19:34

Browse other questions tagged or ask your own question.