OldProf wrote:1) In my experience, the marker arrival times listed in the player train's timetable view box are based on ideal conditions as calculated by the game engine (what many of us refer to as "the dispatcher", but as scenario writers the one variable that we cannot control is the player. I doubt that any two players will accelerate to full line speed at the same rate; in fact, some players will never drive at that speed and many will at least occasionally speed above it; uneven terrain will add to this problem. So, how can any scenario writer ever feel certain that a meet such as the one you've so thoroughly illustrated will happen?
You are absolutely right. The player is the wild card, with every game player, and every session being different.
A trick I employ to prevent the player train from falling too far 'behind schedule' and throwing off meets and events based primarily on timing, is to put a 'stop at destination' instruction with a time duration at the junction, or siding where a meet is occuring. I will then run a few test sessions with the player train first going as quickly as I can (run 8 with sand right away, and slight speeding if possible) and note the arrival time at the 'stop at destination' marker. Next I will retest using the player train, but running very slowly (taking the slack out of the couplers before notching up, etc...) and again note the arrival time at the 'stop at destination' marker. I will then adjust the duration of the 'stop at' instruction so that the faster players are held for a minute or so by the instruction. I like to put these 'catch up' type of meets in situations where the player train is meeting a higher priority train. I'll place the higher priority train a block away, but set its speed or % quite low. Then I set its 'start time' to be about the earliest that a 'fast player' train would be arriving at the siding for the meet. That way, the opposing AI train rolls into the main block and throws up a red signal for our opposing player train on the siding. The fast players will sit through the duration of the 'stop at' instruction, then have to wait for our slow moving AI train to clear the block before it gets a clear signal. A slow player will likely arrive at the stop instruction while the AI train is passing, and will only have to wait for the duration of the 'stop at' instruction before proceeding. I don't like making players wait at green signals just for an instruction to time out, so the AI train is a great way of letting the 'slow' players catch up to the 'instruction schedule' for the remainder of the scenario.
To take the worry about timing out of a meet, you can simply set the AI train to have a lower priority than the player train. That way, the worst thing that can happen is that slower players will miss the AI train in motion, and will simply meet a stationary AI train waiting for their arrival.
OldProf wrote:2) Again in my experience, the player engine usually (but not always) is given the right of way over an AI train with the same priority and sometimes even over one with a higher priority, which also places a meet -- or an overtake, for that matter, at risk. Have you encountered this and, if so, how do you deal with it?
I agree, when the player train and AI train are of the same priority, the AI or dispatcher will sometimes behave differently in the scenario than they did in the 'trial run' in the scenario editor.
It is for this reason that I always make the player train (in freight scenarios) a 'standard freight' priority. This way you have higher and lower priorities available for AI trains to help force the AI dispatcher in routing its trains as you want around the player train. The AI trains are certainly fickle sometimes, but I have yet to have an instance where a lower priority AI train will enter a block routed for a higher priority player train.
OldProf wrote:The image shows a Stop At instruction open in the timetable editor, in which a specific speed -- 20 mph -- has been entered. In my experience, this is a great way to ask for trouble. Only two numbers should ever be entered in this box: "0", the default, which will cause a train to stop at the designated marker, or "1", which will cause or allow it to pass through the marker, thus changing the Stop At instruction to a Go Via. To attempt to control an AI train's speed, vary the number in the text box labeled "%". The default is 75%; increasing that number will make the train run faster, while decreasing it makes the train run slower, but setting an exact speed with these percentages is impossible. If the train being edited is the player train, entering a percentage will make no difference, since the player controls the train's speed, not the game engine. In this case, entering anything other than a 1 or a 0 in the "speed" text box really invites disaster.
As I think I wrote in an earlier post to this thread, the player engine's speed can only be controlled by the player/driver. Again, this is based on my scenario writing experience, which is considerable.
I haven't experienced any issues with entering a specific speed in the 'speed' box. After reading your post though, I have been playing around in the editor and it doesn't seem to make much, if any of a time difference in the 'instruction timetable' whether I input a specific speed, or the 1mph that you suggest. What 'trouble' have you noticed with using a value other than 1?
When changing the '%' or 'speed' inputs for the player train for an instruction, all it seems to do is run the player trains 'expected' schedule past the AI dispatcher, and see if it triggers an error or fault with the pathing of the AI trains around it. Once the scenario 'test runs' cleanly in the scenario editor, it doesn't seem to matter to the dispatcher if the actual player deviates from their projected schedule in the scenario. Much of what I have learned about scenario writing is from trial and error, so I will definitely defer to any one else's firsthand experience.