One of the problems with the game at present is that there is a conflict between the time scale, time-tables, and customer satisfaction.
Time-tables are a nice idea to add a little realism, but the fact that a commute takes 3 days to get across the really screws up the timetable itself. If the customer arrives at the transfer in the middle of the night they will not benefit from the rush hour trains even though they left at rush hour. They sit there waiting for the morning train to arrive and satisfaction plummets, unless you schedule an unrealistic midnight train, or change the schedule to run trains continuously and put an upper bound on the disatisfaction.
My suggestion is:
For each station and for each line maintain a time offset to the depot. This offset would assume that there is no traffic to slow down a vehicle. So a bus on route X with no traffic and no passengers to pick up at other stations, would arrive at station Y, Z hours after leaving the depot. Scale satisfaction by the time of day modified by the offset.
So if an agent gets to station Y at time T compute the effective time at station Y to be T-Z. So noon for that station is effectively 9am because it takes 3 hours for a train to arrive from the depot. The rate of disatisfaction would then be scaled by the effective time. Satisfaction would fall quickly at rush hour, but would be almost unchanged at midnight.
When a multi-line trip across the map dumps the passenger at a station which in ideal traffic would not expect a train for hours (the effective time is midnight and the line is shutdown) the passenger waits patiently for the morning train. If they morning train doesn't arrive/is full they start to get a little angry. If rush hour comes and goes without a train they can get on they get very angry, but the player is not penalized while they wait from midnight to 3 am.
------------------------
Thoughts?
Time-tables are a nice idea to add a little realism, but the fact that a commute takes 3 days to get across the really screws up the timetable itself. If the customer arrives at the transfer in the middle of the night they will not benefit from the rush hour trains even though they left at rush hour. They sit there waiting for the morning train to arrive and satisfaction plummets, unless you schedule an unrealistic midnight train, or change the schedule to run trains continuously and put an upper bound on the disatisfaction.
My suggestion is:
For each station and for each line maintain a time offset to the depot. This offset would assume that there is no traffic to slow down a vehicle. So a bus on route X with no traffic and no passengers to pick up at other stations, would arrive at station Y, Z hours after leaving the depot. Scale satisfaction by the time of day modified by the offset.
So if an agent gets to station Y at time T compute the effective time at station Y to be T-Z. So noon for that station is effectively 9am because it takes 3 hours for a train to arrive from the depot. The rate of disatisfaction would then be scaled by the effective time. Satisfaction would fall quickly at rush hour, but would be almost unchanged at midnight.
When a multi-line trip across the map dumps the passenger at a station which in ideal traffic would not expect a train for hours (the effective time is midnight and the line is shutdown) the passenger waits patiently for the morning train. If they morning train doesn't arrive/is full they start to get a little angry. If rush hour comes and goes without a train they can get on they get very angry, but the player is not penalized while they wait from midnight to 3 am.
------------------------
Thoughts?