[ciach beziery]
W takim razie zaimplementuję
Czy równolegle do symulatora rozwijasz jakiś edytor scenerii?
Tak, z tym, że jeszcze nie jestem pewny, w jakim dokładnie kierunku powinienem iść.
Aktualnie wszystko edytowane jest w samym edytorze unity. Na bieżąco piszę do niego skrypty, które ułatwiają tworzenie typowo kolejowych rzeczy, np. tory czy zwrotnice podczas edycji przyciągają się (snap) końcówkami (pozycja i orientacja), jest narzędzie do wstawiania trakcji, które automatycznie wstawia odpowiedni słup/wieszak (naprzemiennie długi/krótki lub seria takich samych) i łączy z poprzednim drutami odpowiedniego typu, semafory z automatu 'podłączają' się do najbliższego toru, czy też skrypt, który napisałem wczoraj, który wyznacza i odpowiednio nazywa wszystkie potencjalnie możliwe przebiegi spod zadanych semaforów.
Przykładowy screen:
https://www.dropbox.com/s/smyk8t0q90wb33z/editing.png?dl=0Zaletą edycji w edytorze unity jest to, że można zrobić praktycznie wszystko, bo to bardziej podchodzi pod tworzenie 'moda', niż prostej scenerii (masz nawet normalny debugger dostępny do skryptów). Kolejna zaleta to otwartość, tzn. jak choć trochę znasz c# albo nawet javascripta, to możesz samemu pisać rozszerzenia, łącznie np. z eksportem do innego formatu, chociażby MaSzynowego. Wadą znowu jest ogrom opcji zupełnie zbędnych, jeśli jedyne, co chcemy zrobić, to stworzyć nową stacyjkę, no i możliwość popsucia czegoś przez przypadek, jak np. wstawimy semafor i przypadkowo wywalimy z niego skrypt, który go obsługuje. Musiałbym pogadać i poeksperymentować z ludźmi, którzy zajmują się tworzeniem poważnych scenerii, czego tak na prawdę potrzebują.
Unity ma tę fajną właściwość, że skrypty, które działają w jego edytorze, mogą również działać w programie wynikowym, więc te wszystkie rzeczy będę mógł również wykorzystać w edytorze dedykowanym, jeśli będzie na coś takiego realne zapotrzebowanie.
Myślę nad opcją, która mogłaby zadowolić zarówno laików jak i 'power userów', że wypasione scenerie robiłoby się za pomocą edytora unity, zaś prostsze stacyjki czy posterunki (jak np. ta aktualna) robiłoby się w prostym, dedykowanym edytorku wbudowanym w grę, który może nie pozwoli na odwzorowanie jakiś skomplikowanych węzłów, za to przypilnuje, aby to, co robimy, było zgodne z przepisami.
Ale to ewentualna przyszłość
Komunikat może być potwierdzony, ale czy to oznacza, że zwrotnica/sygnalizator się przestawił? Jeżeli tak, nie ma problemu. Ale tak jak pisałem, wystarczy że ktoś pomyli nazwę obiektu edytując dane dla nastawni i mimo że komunikat zostanie odebrany, to założenie że rozkaz został wykonany będzie błędne, a efektem będzie katastrofa w symulatorze. Ja bym projektował interfejsy czy komunikację tak, żeby była odporna na takie błędy, bez sterowania na ślepo.
Zgadzam się, niemniej jeśli klient dostanie rozkaz, którego wykonać nie może, to to oznacza fatalny błąd na który i tak nic nie poradzimy, więc taki klient powinien się chyba rozłączyć z odpowiednim komunikatem?
A jeszcze co do aparatu blokowego, jaka jest procedura zwalniania przebiegu? Dyżurny sam zwalnia kiedy wie, że można to zrobić bezpiecznie, czy też jest to od czegoś uzależnione?