Advertisement

Modelling passenger flow in space transport game

Started by August 09, 2017 12:46 PM
9 comments, last by Dramolion 7 years, 2 months ago

Hi all,

I've had ( what I think is ) an interesting idea for game about passenger transport in space. However, I'm trying to come up with a model for passenger traffic, meaning, how to generate passengers in the different locations in a way that each passenger wants to go somewhere.

The old TTD just assumed passengers just wanted to go anywhere and you would get the most money just based on how far and fast you would transport them. I don't want that. I want them to have specific destinations in mind, because the whole mechanic revolves around that.

Other games like TrainFever, generates industrial, residential and commercial areas and plays with that. I don't dislike that, but that is basically about commute and doesn't translate well into space transport.

I've tried modelling something considering tourism & migration, but it just ended up being overly complex. I'm trying to simplify the mechanics.

Any ideas?

People travel for business - to sell goods or services to other businesses, to find/purchase raw materials, to form business partnerships and alliances, and to facilitate processes and solve production problems.

People travel to see family - to look for missing family members - to find a potential spouse.

People travel for education, to broaden their horizons by studying outside the sphere of one's upbringing.

People travel for scientific research, for political alliances, for espionage.

It's not all just tourism and migration.

-- Tom Sloper -- sloperama.com

Advertisement

Assuming there are fixed routes and you're looking for something simple:

Each star is connected to a finite set of other stars, each link has a weight (randomly or based on factors like distance, relative wealth, scientific interest, etc.)

Each star has a base number of travelers based on local conditions, and a bonus % based on the links (quantity, quality, variety). Essentially each month a fixed number of people will definitely travel and some additional might travel if there's a convenient, cheap option. From a gameplay perspective, adding more routes grows the travel pool creating an inherent profit instead of just dividing the pool.

A fixed percentage of travelers are divided up based on the link weights (so more people are going to Earth than a backwater). The rest are put in a general "going somewhere pool", approximating an averaging out of people with multiple choices (It'll take multiple hops to get to my destination, I don't care where I stop in the interim, or I'm going on vacation and any of these 3 planets would be fine).

When a ship is leaving, you first draw from the fixed travelers going there, then from the general pool (possibly to an upper limit, like 50% over baseline). If it's turn-based-y, these are monthly travelers or whatever, if this is realtime use the total to calculate the interval to add a new traveler.

Thanks for the answers.

Sometimes a solution is terribly simple. The gameplay is supposed to be more focused on players making plays and counter-plays, than the simulation of traffic itself. As such, the idea of just randomly attributing weights to the links seems perfect.

 

Thanks

You might want to refine random link weights with some variations and additions, for example:

  • The length of the stay of the travellers before leaving could be modelled (with some easily integrated PDF); apart from in-fiction marketing utility for your airlines you'd be able to compute how many transient visitors are on each planet, and consider their transition from and to permanent residence.
  • Different statistics for different traveler types, who correspond to different transport types: rich people in first class go to luxury vacation planets and stay for weekends or several weeks, white collars make mostly quick business class visits to economically developed locations, forced labor travels one-way to mining penal colonies, aquatic aliens travel in special water-filled pool ships between a handful of ocean planets, and so on.
  • Statistics can vary temporarily and seasonally: for example tourists or pilgrims attending some ceremony are going to arrive just before it starts and leave just after it ends, wherever they come from, or there could be large flows of refugees leaving some place (steadily increasing if there's an ongoing ecological collapse, sudden after a war or coup, etc.)

Omae Wa Mou Shindeiru

A tip. In such cases it's good to think in terms of interface. Let's assume you got it and you have passengers going to different planets. How do you convey this information to the player? Will you display a list of passengers and destinations? It will be messy...

I think most/all games do not make specific destination for passengers due to interface considerations rather than due to the problem with the traver algorithm... I recommend to start with the interface here.

Another tip: maybe make "hubs"? Airlines use this system.

Yet another advice: try Aerobiz, maybe you will get some ideas from it.

 

A quick solution (not perfect):

- mark some passengers as local and they want to travel to any planet in the sector

- arbitrarily select a few planets as "important", mark like half of passengers as wanting to travel to those destinations. Once they arrive turn them into local passengers there.

 

Stellar Monarch (4X, turn based, released): GDN forum topic - Twitter - Facebook - YouTube

Advertisement

I agree the UI is important and I'm already building around that concept, where the user can see the 3d space and see a graphical representation of traffic intensity between planets. 

For now I'm trying the random approach factoring in distance. The player doesn't really need to have a justification. He just needs to know there is a demand for this or that. The local and important mechanics could be useful to fine tune it.

 

Thanks

5 minutes ago, erebrus said:

I agree the UI is important and I'm already building around that concept, where the user can see the 3d space and see a graphical representation of traffic intensity between planets. 

For now I'm trying the random approach factoring in distance. The player doesn't really need to have a justification. He just needs to know there is a demand for this or that. The local and important mechanics could be useful to fine tune it.

I partially disagree :) It's nice if the players knows the lore of traffic. For example it Aeorbiz the players instantly knew that tourists will want to travel to Athens or that traffic between New York, London, Paris and Berlin will be significant. I think you should make around 12 planets like that and so those are clearly marked on the map as important. Don't make it equal, it will kill the game. There must be special locations you want to connect.

 

 

Stellar Monarch (4X, turn based, released): GDN forum topic - Twitter - Facebook - YouTube

4 minutes ago, Acharis said:

I partially disagree :) It's nice if the players knows the lore of traffic. For example it Aeorbiz the players instantly knew that tourists will want to travel to Athens or that traffic between New York, London, Paris and Berlin will be significant. I think you should make around 12 planets like that and so those are clearly marked on the map as important. Don't make it equal, it will kill the game. There must be special locations you want to connect.

 

 

The concept (and goal) of the game is significantly different from something like aerobiz. The mechanic is more about route optimisation and competing/collaborating with a high number of players/npcs, almost in a "boardgame-like" way if it makes sense.

The concept also relies on a very large number of systems, which makes them individually less important. Their position and distance to other planets (influenced by galaxy shape) together with the random weights creates very diverse conditions, in which hubs are naturally occurring and easily identified graphically.

I might review passenger generation later if it proves to be required, but the conclusion I'm arriving is that for the gameplay I aiming for, it might become irrelevant for most players.

Here's how i would do it:

things would work differently for each "good" according to 3 differences:

1) The planet/tradepost deciding whether a route is used or not:

It's either the destination or the departure-point/colony;

some goods would use both but honestly these would be more realistic then fun.

2)Distance allowed and price-bias.

Preferably this is done so that the player can easily see distances on the map and therefor i 've kept it out of the formula,

i also assume an economy that grows or at least changes over time.

Most goods would be divided into 3 rangecategories (short-range, med-range, long range),

and tradeposts would sell(or buy) the first X of a good only short-range, but above X they would try to sell a certain percentage med-range and only if there is no-one transporting med-range sell short-range.

(Cheaper/shorter routes are considered cheaper only compared to other routes in the same range-cateory.)

3) The way of deciding which route and competitor is used.

(first the route is decided, and only with multiple competitors on that route is there the a likewise check for them)

This should be decided by a (combining up to 100%-)formula combining up to three main considerations and (influenced)random:

  a) Who brought the resources required to build the goods in the first place ?

      The competitor who brought the goods should only get a modest reward(like 10%) since this reward would accumulate        over            time(see point 2)    (for example iron ore to build steel or steel to build tanks)

bThe route or competitor who brought the goods the settlement required/used last turn.

  For example teddybears who have no other requirements, however most goods would have their formulas filled up with this value, so it would take some time to push a competitor out of a route.

c)The route end-products went last turn, this would go for for example for for the destination-route of gold being used by (only the) departure-colony of jewelry to decide which route(or competitor) would be used to transport/sell jewlery.

I suppose passengers should be a specific case here as they could go both ways on a route and thus mechanically can be used as a marketing-tool for themselves

d)random and quality/pricing:There should be a small percentage of tranportable goods that will just look at all the the available routes and make a decision based on randomness, advertising could increase this percentage at the expense of other competitors, however this randomness is modified by quality(if your game has something like that) and which route is cheaper.(at the same range-distance)
 

That was it, i 've btw only assumed that trade-posts want to buy or sell a good, and not that they're actually offering a price,

which would complicate things a lot and maybe for some more sophistication.

Additionally i would allow players to use multi-usable or refittable cargo-ships that can transport different goods so they don't get stuck in a short 1-good-route.

 

This topic is closed to new replies.

Advertisement