Przejechałem właśnie Nowy Świat na SN61 razem z AI (EXE Dizelpack). Mam parę obserwacji.
1. Parametr velocity w torze działa tak, że AI hamuje nieco wcześniej, ale i tak nie daje rady wjechać z podaną prędkością na ten tor. Następnie ustawia sobie podaną prędkość jako obowiązującą do odwołania. Innymi słowy, od toru z velocity 50 AI pojedzie dalej 50km/h po torach bez velocity. Skądinąd STV pokazuje tory z velocity jako ograniczenie prędkości, tak jakby ograniczenie obowiązywało tylko na tym torze. Wg Scenery.doc: "Velocity (opcjonalny) - prędkość jakiej będzie się starał nie przekroczyć jadący przez ten tor obiekt dynamic jeśli jest sterowany przez AI". Nie ma mowy, że będzie tą prędkość utrzymywać dalej, po zjechaniu z tego toru. Czyli zgodnie z STV, a niezgodnie z EXE.
2. AI bardzo beztrosko używa hamulca. Hamując, w zasadzie co rusz zwiększa stopień hamowania (co ok. sekundę). Zupełnie "nie wie" o tym, że wystarczyło by ustawić którąś pozycję i poczekać na zadziałanie hamulca. Moim zdaniem hamuje tak, jakby jechało samochodem (o niewielkiej masie), czy też miało hamulce tarczowe - im bardziej wciśniemy hamulec, tym z większą siłą hamujemy. W pociągu jednak tak nie jest.
3. AI jest bardzo rygorystyczne. Jeśli jadąc 90km/h zobaczy tor z velocity 50, zacznie hamować, ale zbyt późno i zbyt słabo. Jeśli następnie wjedzie na ten tor z prędkością np. 53km/h, będzie nadal zwiększać siłę hamowania "bo przecież większa niż 50" - a już powinien odhamowywać. W efekcie zatrzyma się, bo gdy zwolni poniżej 50km/h, to ciśnienie będzie na tyle duże, że odhamowanie w tym momencie niewiele da. Żeby znów ruszyć, ustawi kran na odhamowanie, a nastawnik na maksimum, nie czekając z tym na spadek ciśnienia w cylindrach hamulcowych. Czyli "będzie się starał nie przekroczyć" oznacza tu, że jak przekroczy choćby o minimum, to zahamuje tak, że się zatrzyma.
4. Jeśli ktoś ustawi velocity 1, czy velocity 5, AI będzie wykonywać następującą procedurę: nastawnik na maksumum -> przekroczona prędkość -> hamulec na maksimum -> prędkość poniżej limitu -> odhamowanie -> zatrzymanie (bo hamulec działa z opóźnieniem) -> nastawnik na maksimum -> ruszenie po spadku ciśnienia w cylindrach hamulcowych -> przekroczona prędkość... W efekcie porusza się "żabimi skokami" i nie jest w stanie jechać z niewielką prędkością.
5. Moim zdaniem, zamiast kręcić regularnie kranem hamulca jak nastawnikiem w SN61, hamowanie powinno być zrobione inaczej. Powinien wyliczyć różnicę prędkości (między obecną a oczekiwaną) i w zależności od dostępnej drogi hamowania ustawić kran hamulca na parę sekund. Następnie np. co sekundę wyliczać uzyskane opóźnienie chwilowe (przyspieszenie ujemne) i wyliczać czas do uzyskania oczekiwanej prędkości. W zależności od tego czasu, albo zwiększyć siłę hamowania, albo ją zmniejszyć - ale po zmianie znów odczekać 5 sekund. No i więcej tolerancji. Jeśli aktualna prędkość jest większa od oczekiwanej o 10%, a już hamujemy, to nie ma potrzeby zaciskać bardziej szczęk i stanąć. Żeby zwolnić o 2% nie potrzeba od razu używać hamulca, który zadziała po 10 sekundach, wystarczy wyłączyć napęd i zdać się na opory ruchu. Zmiana położenia kranu hamulca powinna odbywać się w dłuższych odstępach czasu (5-10s), za to być bardziej przemyślana (wyliczana).
6. Wracając do velocity w torze, w obecnej sytuacji należałoby przed velocity 50 wstawić tor z velocity 75, żeby zdążył trochę zwolnić, a z kolei z drugiej strony wstawić tor z velocity 160, żeby nie jechał dalej ciągle 50km/h. Aby taki tor był przejezdny z sensem w obydwie strony, musiałoby być po kolei velocity 160, velocity 75, velocity 50, velocity 75, velocity 160. Być może musiałoby być więcej takich torów, z mniejszym skokiem prędkości. Trzeba by to sprawdzić doświadczalnie. To już się bez sensu robi, ale takie mamy AI.