Myślę, że już czas na małe podsumowanie, a dalsze ewentualne głosy nie zmienią nic w sposób znaczący. W ankiecie wzięło udział ponad dwukrotnie więcej użytkowników, niż rok temu, co jest zapewne zasługą zorganizowanej promocji. Niemniej potencjał użytkowników jest znacznie większy (ponad 1000 pobrań EU07.EXE w wersji 355, prawie 3500 użytkowników zarejestrowanych na forum, prawie 27000 pobrań PC2011 z torrenta). Można było oddać 3 głosy, średnia wychodzi 2.62 (1574). W trakcie trwania ankiety wypadło z niej kilka pozycji, ponieważ były proste do realizacji i zostały zrobione przed jej zakończeniem.
Przede wszystkim cieszę się, że moje zmiany w zakresie prędkości wczytywania spełniły oczekiwania użytkowników na tyle, że w ogóle się taka propozycja nie pojawiła. Trochę żałuję, bo miałem jeszcze parę pomysłów w tym zakresie... Ale zostaną na później. Podobnie w przypadku zachowania AI, chociaż tu znaczenie może mieć fakt, że prace nadal trwają (moim zdaniem AI się już precyzyjnie stosuje do sygnałów, chociaż samo hamowanie i rozpędzanie pozostawiają jeszcze wiele do życzenia). W zasadzie pierwsze 10 najczęściej wybieranych pozycji w ankiecie dotyczy zrobienia czegoś, czego wcześniej nie było, dopiero 11. odnosi się do poprawienia czegoś, co już jest.
Do poszczególnych pozycji w ankiecie odnosiłem się już wcześniej, odpowiadając na pytanie Benka, być może się powtórzę.
1. Rozświetlanie scenerii światłami pojazdów
Rozświetlanie scenerii składa się z dwóch elementów, jeden to smuga własnej lokomotywy, a drugi to światła innych pojazdów. Trzeba je raczej rozpatrywać oddzielnie. Są wstępnie przygotowane trzy koncepcje do przetestowania. Jedna to przyczepienie światła OpenGL do pojazdu - nie spowoduje spadku wydajności, ale efekt może być mizerny, albo nawet nieakceptowalny. Druga to rozświetlenie przez prowadzoną lokomotywę, co prezentował kiedyś youBy, i co powodowało znaczne spadki FPS. Nie załatwia to sprawy oświetlania przez inne pojazdy. Trzecia to użycie shaderow, co wymaga lepszego sprzętu (przynajmniej ja się muszę przesiąść na coś innego). Raczej pomoc ze strony użytkowników nie jest potrzebna, no chyba że ktoś zna gotowe koncepcje, które można by zastosować. Pozostaje kwestia czasu i testowania.
2. Rozruch impulsowy
Jakiś czas temu youBy przygotował algorytm rozruchu impulsowego jako osobny program. Jest to takie małe okienko z liczbami i suwakami. Trzeba by to teraz zintegrować z resztą kodu, żeby móc użyć w lokomotywie. Myślę, że w najbliższym czasie coś się z tego wykluje. Na razie chyba nie potrzebujemy pomocy w tym zakresie, gdy pojawi się jakaś wersja testowa, trzeba będzie porównywać do rzeczywistego rozruchu i ewentualnie robić jakieś korekty.
3. Zapis aktualnego stanu symulacji
Koncepcja moja jest taka, aby do pliku binarnego zrzucać wewnętrzne struktury, bez silenia się na jakąś uniwersalność i przydatność plików do innych celów. Jedynie wskaźniki będą zamieniane na indeksy. Najprawdopodobniej pliki zapisane jedną wersją EXE nie będą mogły być wczytane przez inną. Zapisane pliki nie będą się raczej nadawały do publikacji, chociaż nie wiadomo, w którą stronę się to rozwinie. Zamierzam bazować na formacie E3D, tzn. zostaną dodane definicje kolejnych kromek, a wewnętrzna organizacja danych zostanie przystosowana do wczytania wszystkiego na raz z jednego pliku, podobnie jak to jest w przypadku modeli. Jedynie tekstury i modele będą doczytywane przed uruchomieniem symulacji. Być może przy okazji da się zrobić wczytywanie tekstur i modeli w osobnym wątku, być może coś się wyklaruje w zakresie wczytywania jedynie niezbędnych komórek scenerii, zamiast całej na raz.
4. Spadki napięć na sieci trakcyjnej
Obecnie jest tak, że każde przęsło sieci trakcyjnej jest niezależnym obiektem. Konieczne jest łączenie przęseł, jak ma to miejsce w przypadku torów. Ponieważ dla torów udało się zrobić znaczne przyspieszenie wyszukiwania poprzez użycie mapy, podejrzewam że łączenie przęseł nie będzie znacząco spowalniać wczytywania. Większym problemem może być rozmieszczenie podstacji zasilających i kabin sekcyjnych na sceneriach (trzeba będzie je poprawiać). Oprócz tego trzeba będzie połączyć logicznie druty z torami, aby nie były one wyszukiwane w każdej klatce, co też raczej będzie dosyć proste i w miarę szybkie. Przy okazji będzie można wprowadzić sieci o innym napięciu, np. 600/750V dla tramwajów, czy 25kV 50Hz dla lokomotyw węgierskich.
5. Obwody lokomotyw (program w LD)
Moja koncepcja sprowadza się do użycia schematów Ladder Diagram jako programów symulujących obwody sterowania lokomotyw. Ale również da się je wykorzystać do programowania algorytmu sterującego lokomotywą (AI mechanika) oraz zależności na stacjach, czy symulacji dyżurnego (AI stacji). Celem jest umożliwienie tworzenia programów osobom umiejącym czytać schematy, a także możliwość ingerencji w schemat dla zaawansowanych użytkowników (podpieranie styczników, omijanie awarii). Nie jest moim celem symulacja działania PLC, aczkolwiek zapoznanie użytkowników z koncepcją programowania w Ladder Diagram będzie dodatkową wartością edukacyjną. Schematy będą wewnętrznie kompilowane do języka zbliżonego do Forth, składnia języka będzie również dostępna na poziomie plików tekstowych scenerii.
6. Zewnętrzny dźwięk ruchu wagonów
W zakresie dźwięków nie planuję nic robić w najbliższym czasie (między innymi z przyczyn sprzętowych). Być może ktoś inny coś przygotuje i będzie się to nadawało do użytku. Z drugiej strony wiem, że cały system dźwięków jest do przerobienia...
7. Multiplayer - usunięcie niestabilności
Aktualnie pracuję nad scenerią Quark, żeby przygotować głowice do obsługi na wyższym poziomie (sprawdzanie zajętości, utwierdzanie i zwalnianie przebiegów). Myślę, że po takim przygotowaniu będzie można uruchomić sensowny multiplayer i wtedy będzie sens przeznaczyć czas na szukanie błędów. Ponadto w ostatnich wersjach EU07.EXE zostało wprowadzone drzewko do wyszukiwania torów oraz eventów, podobną strukturę trzeba będzie uruchomić w Rainsted.
8. Płynna regulacja kranu hamulca
Zrobione, będzie dostępna w kolejnej wydanej wersji. W pliku EU07.INI można sobie zdefiniować krok na pojedyncze naciśnięcie [Num3]/[Num9]. Aczkolwiek płynna regulacja powinna dotyczyć tylko Oerlikona, aktualnie będzie działać również na inne krany, co może nie być zbyt realistyczne.
9. Wnętrza widoczne z zewnątrz
Poprawione zostało wyświetlanie lowpolyinterior w fazie przezroczystych. Być może potrzebne będą jeszcze jakieś dodatkowe zmiany (sortowanie trójkątów wewnątrz submodelu albo oddzielne submodele np. szyb do oglądania z różnych stron). Jednak w pierwszej kolejności trzeba przejrzeć wszystkie modele i poprzesuwać większość submodeli do fazy nieprzezroczystych, wpisując Opacity: 0. Osobną sprawą będzie oświetlenie wnętrz, które w dzień nie może być zbyt jasne, a w nocy musi funkcjonować wybiórcze zapalanie (np. niezależnie każdy przedział w wagonie), co może wymagać wcześniejszego uruchomienia schematów LD.
10. Zapalanie światła (w kabine, w EZT)
Zapalanie światła w kabinie zostało już zrobione. Zapalanie światła w przedsionkach EZT jest bardziej skomplikowaną sprawą, ponieważ istnieją dwa rodzaje oświetlenia (świetlówkowe oraz awaryjne żarowe). Myślę, że zostanie to dodane, gdy ktoś się zdecyduje dostosować model (świetlówka oraz żarówka w przedsionku muszą być osobnymi submodelami, aby można było im ustawić świecenie). Jest też kwestia wnętrz przedziałów oraz schematów LD.
11. Fizyka ET22
Podejrzewam, że bez schematów LD nie ma sensu się za to zabierać. Równie istotne jest uruchomienie spadków napięć na sieci trakcyjnej. Obecnie sieć zapewnia 3.4kV, a np. przy 2.2kV lokomotywa straci 60% mocy, przez co również jazda będzie inna.
12. Komunikaty, np. wykolejenie, koniec misji
To wymaga dopracowania w zakresie koncepcji. W pierwszej kolejności chciałbym wprowadzić pliki językowe, przynajmniej dla polskiego i angielskiego oraz możliwość wyboru języka. Należało by się też od razu zastanowić nad listą dialogową do dźwięków. Aktualnie zostało wprowadzone "pełnoekranowe" wyświetlanie rozkładu jazdy, jednym z istotnych problemów jest zestaw znaków i brak w nim polskich liter.
13. Bujanie kamery, odsprężynowanie
Odłożone na później (brak modelu oraz inne rzeczy do zrobienia wcześniej).
14. Przekładnia hydrauliczna
Odłożone na później.
15. Wybór kanału radiowego +/-
Obecnie istnieje możliwość wyboru kanału z klawiatury. Niezależnie od tego, kanał radiowy jest ustawiany na poziomie AI, została również wprowadzona komenda Radio_channel dla wskaźnika W28. Będzie to dopracowywane i rozwijane w miarę potrzeb autorów scenariuszy.
Pozostałe tematy zostają odłożone na później i będą ewentualnie realizowane, gdy zgłosi się ktoś z gotowymi rozwiązaniami, które będą mogły być w prosty sposób zintegrowane z EXE. Parę osób się zapowiedziało, że pracuje nad konkretnymi rozwiązaniami i być może coś z tego wyjdzie.