Symulator EU07 (i nie tylko) > Na warsztacie

 Opis logiczny scenerii - VD prace koncepcyjne

(1/4) > >>

firleju:
Cześć wszystkim,

Od 8 lat mam na dysku działającą betę czegoś co można nazwać VirtualDispatcherem. Niestety ten kawałek kodu, który wtedy napisałem ma pewne braki, którymi jest nieprzystosowanie do potrzeb maszyny oraz nieprzenaszalność na inne platformy (obecnie .NET 2.0 ale napisane w VisualC++ w związku z czym niekompilowalne pod Mono). Stwierdziłem więc, że przepiszę to na C# (pracę z innymi frameworkami skończyłem na etapie zabaw, jednak pisanie w C++ wykracza poza moje umiejętności i dostępny czas - pewnie mógłbym napisać, że poświęcam go dla rodziny aczkolwiek bardziej chodzi o pewną dwulatkę ;) ). W tej chwili najbardziej zawieszam się na etapie przeniesienia tego co jest w scn na coś co jest trawialne dla VD w temacie sterowania. Powstał więc w mojej głowie pomysł rozdzielenia struktury "twardej" scenerii od jej części logicznej. Wyglądałoby to mniej więcej tak:

1. Wydzielenie przypisania eventów do torów do osobnych wpisów - w tej chwili cała praca AI jeśli chodzi o interakcję ze sterowaniem odbywa się poprzez eventy. Mają one jednak tą wadę, że praktycznie każdy scenariusz musi mieć własny układ torowy nawet jeśli wszystkie tory są identyczne w swoich właściwościach fizycznych. Żeby takie coś zastosować trzeba niestety zmodewrnizować parser na poziomie exe. Plusem jest zunifikowanie scenariuiszy do jednego układu torowego z różniącymi się tylko plikami sterującymi. W dalszej kolejności być może uda się w ten sposób doprowadzić też do tego, że AI będzie jeździło zgodnie z ograniczeniami przypisanymi przez te eventy (szczególnie wskaźniki w27).
2. Wydzielenie opisów odcinków izolowanych dla osobnych wpisów z możliwością przypisania toru do więcej niż jednego odcinka - praca VD odbywa się głównie na odcinkach izolowanych, choć tworzenie przebiegów działa u mnie na elementach fizycznych.
3. Ze względu na coś takiego jak blokada liniowa potrzebny jest rozdział na stacje, co można zrobić na poziomie odcinków izolowanych. Jednak taki opis jest potrzebny lecz nie ma konieczności trzymania go w plikach scenerii.
4. Aby VD działał poprawnie na podstawie otrzymanego rozkładu jazdy potrzebny jest opis połączeń pomiędzy kolejnymi posterunkami ruchu, w tym także typ blokady liniowej (to akurat na potrzeby części do prowadzenia ruchu) oraz typ urządzeń zamontowanych na danej stacji (sposób generacji przebiegów, opóźnienia w tworzeniu przebiegu i takie tam). Tą część i tak będzie trzeba tworzyć osobno, prawdopodobnie będzie trzeba napisać dedykowany edytor chyba, że Paul zechce dostosować swój własny.

To co tworzę jest w architekturze klient-serwer także na potrzeby przyszłego multiplayera. W tym miejscu proszę gości od exe i twórców scenariuszy i scenerii o informację czy to co proponuję ma ręce i nogi i czy w ogóle chcieliby stosować/zaimplementować takie narzędzie.

Jeśli ktoś chce napisać, że trzeba będzie znowu przerabiać wszystkie scenerie to informuję, że nie mam zamiaru zrywać wstecznej kompatybilności z obecnymi rozwiązaniami. To co jest i tak będzie działać.

Pozdrawiam

Ra:

--- Cytat: gfirlejczyk w 21 Grudnia 2014, 07:36:32 ---1. Wydzielenie przypisania eventów do torów do osobnych wpisów
--- Koniec cytatu ---
Bez sensu.


--- Cytat: gfirlejczyk w 21 Grudnia 2014, 07:36:32 ---Mają one jednak tą wadę, że praktycznie każdy scenariusz musi mieć własny układ torowy
--- Koniec cytatu ---
Mit.


--- Cytat: gfirlejczyk w 21 Grudnia 2014, 07:36:32 ---W dalszej kolejności być może uda się w ten sposób doprowadzić też do tego, że AI będzie jeździło zgodnie z ograniczeniami przypisanymi przez te eventy (szczególnie wskaźniki w27).
--- Koniec cytatu ---
AI jeździ zgodnie z ograniczeniami i nie ma z tym większych problemów. Oczywiście jeśli sceneria jest zrobiona z sensem, bo trudno żeby AI wykorzystywało informacje, które nigdy nie zostały podane.


--- Cytat: gfirlejczyk w 21 Grudnia 2014, 07:36:32 ---2. Wydzielenie opisów odcinków izolowanych dla osobnych wpisów z możliwością przypisania toru do więcej niż jednego odcinka
--- Koniec cytatu ---
Bez sensu. Sprowadzasz w ten sposób kwestię istnienia odcinków izolowanych do obecnych eventów "obsługi misji". W efekcie bałagan zostaje, tylko nieco inaczej działa.


--- Cytat: gfirlejczyk w 21 Grudnia 2014, 07:36:32 ---3. Ze względu na coś takiego jak blokada liniowa potrzebny jest rozdział na stacje, co można zrobić na poziomie odcinków izolowanych.
--- Koniec cytatu ---
Na Quarku to działa od 2 lat.

firleju:

--- Cytat: Ra w 22 Grudnia 2014, 03:22:24 ---
--- Cytat: gfirlejczyk w 21 Grudnia 2014, 07:36:32 ---1. Wydzielenie przypisania eventów do torów do osobnych wpisów
--- Koniec cytatu ---
Bez sensu.

--- Koniec cytatu ---
VD nie jest w stanie pracować jednocześnie z eventami sterującymi przebiegiem misji. Jeśli jeszcze eventy wpływające na odczyt danych przez AI pociągu są jak najbardziej ok to już takie typu rozłącz, podłącz nie. A już zupełnie odpadają takie sterujące jakimikolwiek urządzeniami srk. Jeśli exe zacznie współpracować z VD to wolisz filtrować na poziomie exe te eventy czy po prostu nie wczytać pliku z nimi?

--- Cytat: Ra w 22 Grudnia 2014, 03:22:24 ---
--- Cytat: gfirlejczyk w 21 Grudnia 2014, 07:36:32 ---Mają one jednak tą wadę, że praktycznie każdy scenariusz musi mieć własny układ torowy
--- Koniec cytatu ---
Mit.

--- Koniec cytatu ---
Ja się bardzo cieszę, że obalasz moje mity. Owszem da się to zrobić wszystko na jednym układzie torowym. Do czasu w którym nie chcesz postawić ograniczenia prędkości w innym miejscu niż zaplanował to sobie autor scenerii.

--- Cytat: Ra w 22 Grudnia 2014, 03:22:24 ---
--- Cytat: gfirlejczyk w 21 Grudnia 2014, 07:36:32 ---W dalszej kolejności być może uda się w ten sposób doprowadzić też do tego, że AI będzie jeździło zgodnie z ograniczeniami przypisanymi przez te eventy (szczególnie wskaźniki w27).
--- Koniec cytatu ---
AI jeździ zgodnie z ograniczeniami i nie ma z tym większych problemów. Oczywiście jeśli sceneria jest zrobiona z sensem, bo trudno żeby AI wykorzystywało informacje, które nigdy nie zostały podane.

--- Koniec cytatu ---
To w takim razie po co jest wpisywanie ograniczeń w tory?


--- Cytat: Ra w 22 Grudnia 2014, 03:22:24 ---
--- Cytat: gfirlejczyk w 21 Grudnia 2014, 07:36:32 ---2. Wydzielenie opisów odcinków izolowanych dla osobnych wpisów z możliwością przypisania toru do więcej niż jednego odcinka
--- Koniec cytatu ---
Bez sensu. Sprowadzasz w ten sposób kwestię istnienia odcinków izolowanych do obecnych eventów "obsługi misji". W efekcie bałagan zostaje, tylko nieco inaczej działa.

--- Koniec cytatu ---
Nie, nie sprowadzam. Ja wiem, że na OI można zrobić wiele fajnych rzeczy. Nawet zaprogramować całą obsługę głowicy stacyjnej za pomocą dostępnych narzędzi. Tylko to jest ręczne rzeźbienie każdej stacji osobno. VD jest po to, żeby nie musieć tego robić.

--- Cytat: Ra w 22 Grudnia 2014, 03:22:24 ---
--- Cytat: gfirlejczyk w 21 Grudnia 2014, 07:36:32 ---3. Ze względu na coś takiego jak blokada liniowa potrzebny jest rozdział na stacje, co można zrobić na poziomie odcinków izolowanych.
--- Koniec cytatu ---
Na Quarku to działa od 2 lat.

--- Koniec cytatu ---
Czy to oznacza, że na poziomie wpisów jestem w stanie stworzyć sobie obiekt "stacja"? Bo to co chcę zrobić nie jest symulowaniem istnienia blokady liniowej tylko symulowaniem jej działania (z podziałem na różne typy).

Ra:

--- Cytat: gfirlejczyk w 23 Grudnia 2014, 07:56:43 ---VD nie jest w stanie pracować jednocześnie z eventami sterującymi przebiegiem misji. Jeśli jeszcze eventy wpływające na odczyt danych przez AI pociągu są jak najbardziej ok to już takie typu rozłącz, podłącz nie. A już zupełnie odpadają takie sterujące jakimikolwiek urządzeniami srk. Jeśli exe zacznie współpracować z VD to wolisz filtrować na poziomie exe te eventy czy po prostu nie wczytać pliku z nimi?
--- Koniec cytatu ---
Sceneria (w sensie bazowej infrastruktury) nie powinna mieć żadnych eventów do obsługi przebiegu misji. Powinny być tylko eventy odczytu semaforów, ewentualnie wygaszanie (najlepiej zajętością odcinka izolowanego, a nie toru). Komendy typu rozłącz/podłącz można wpisywać w komórki sygnalizatorów, a w zasadzie AI powinno mieć jakiś ("uzgodniony") plan manewrów. Po prostu sceneria powinna mieć osobne pliki na infrastrukturę i osobne na sterowanie misją, tak aby można było modyfikować misje bez jakiejkolwiek ingerencji w tory, ewentualnie zastąpić plik obsługujący misje oddzielnym programem.


--- Cytat: gfirlejczyk w 23 Grudnia 2014, 07:56:43 ---Ja się bardzo cieszę, że obalasz moje mity. Owszem da się to zrobić wszystko na jednym układzie torowym. Do czasu w którym nie chcesz postawić ograniczenia prędkości w innym miejscu niż zaplanował to sobie autor scenerii.
--- Koniec cytatu ---
W przestrzeni kolejowej istnieje coś takiego jak znajomość szlaku. Dlatego ja jestem przeciwny wprowadzaniem modyfikacji scenerii pod scenariusz, typu przesuwanie ograniczenia prędkości. Jeśli gdzieś mają być ograniczenia, to powinny być wpisane "na stałe" i ewentualnie "ukrywane". Jeśli obecne rozwiązanie z wpisaniem ograniczenia w tory się nie sprawdza, trzeba zrobić inne. Ewentualnie można np. chować poszczególne wskaźniki symulując kradzież, ale nie może to wymagać klonowania plików infrastruktury.


--- Cytat: gfirlejczyk w 23 Grudnia 2014, 07:56:43 ---To w takim razie po co jest wpisywanie ograniczeń w tory?
--- Koniec cytatu ---
W wielu miejscach nie jest to zrobione. Oprócz scenerii dostępnych publicznie testujemy też symulację na scenerii obejmującej okolice Wrocławia, gdzie składy jeżdżą z rzeczywistymi rozkładami. Jest to dla mnie bardziej miarodajne niż scenerie, co do których nie wiadomo, czy mają przypisane semafory, wskaźniki, prędkości oraz czy w torach nie są porobione jakieś cudactwa (typu odczyt semafora znajdującego się na innej stacji).


--- Cytat: gfirlejczyk w 23 Grudnia 2014, 07:56:43 ---Nie, nie sprowadzam. Ja wiem, że na OI można zrobić wiele fajnych rzeczy. Nawet zaprogramować całą obsługę głowicy stacyjnej za pomocą dostępnych narzędzi. Tylko to jest ręczne rzeźbienie każdej stacji osobno. VD jest po to, żeby nie musieć tego robić.
--- Koniec cytatu ---
Jakoś to trzeba zrobić. Ja jestem na etapie szukania rozwiązania. Jakieś w miarę działające znalazłem, ale nie jestem z niego zadowolony. Sceneria (w sensie infrastruktury) powinna być jedna. Jak się zmienia rozkłady pociągów w rzeczywistości, to nie powoduje to przerabiania odcinków izolowanych na stacjach.


--- Cytat: gfirlejczyk w 23 Grudnia 2014, 07:56:43 ---Czy to oznacza, że na poziomie wpisów jestem w stanie stworzyć sobie obiekt "stacja"? Bo to co chcę zrobić nie jest symulowaniem istnienia blokady liniowej tylko symulowaniem jej działania (z podziałem na różne typy).
--- Koniec cytatu ---
Mam wrażenie (może mylne), że proponujesz rozwiązanie dla sytuacji, jaka była w zakresie sterowania ruchem w 2006 roku. Większość scenariuszy nadal jest w ten sposób zorganizowanych. Natomiast obecnie da się sterowanie ruchem zrobić zupełnie inaczej. Moim zdaniem scenerie powinny mieć dobrze zorganizowaną "infrastrukturę" oraz opis techniczny. Wtedy generowanie scenariusza sprowadzi się do określenia początkowej i końcowej stacji oraz ustawienia prawdopodobieństwa nietypowych zdarzeń i pozostałego ruchu.

firleju:

--- Cytuj ---Dlatego ja jestem przeciwny wprowadzaniem modyfikacji scenerii pod scenariusz, typu przesuwanie ograniczenia prędkości. Jeśli gdzieś mają być ograniczenia, to powinny być wpisane "na stałe" i ewentualnie "ukrywane".
--- Koniec cytatu ---
Tutaj bardziej chodzi mi o elementy scenariusza jak ograniczenia czasowe, zamknięcia szlaków czy wychlapy (najczęściej ograniczenia stałe). Niestety keśli zamknięcie torowe można zrobić na etapie tworzenia przebiegu misji to już pozostałe niespecjalnie.

--- Cytuj ---Sceneria (w sensie bazowej infrastruktury) nie powinna mieć żadnych eventów do obsługi przebiegu misji.
--- Koniec cytatu ---
Tutaj się zgadzam bardzo. Problemem jest to, że w każdym przypadku korzystamy z mechaniki, która nie została przewidziana do tak zaawansowanego sterowania przebiegiem scenariusza jaki twórcy chcą implementować nie mówiąc już o jakiejkolwiek próbie wprowadzenia multiplayera.

--- Cytuj ---Mam wrażenie (może mylne), że proponujesz rozwiązanie dla sytuacji, jaka była w zakresie sterowania ruchem w 2006 roku. Większość scenariuszy nadal jest w ten sposób zorganizowanych. Natomiast obecnie da się sterowanie ruchem zrobić zupełnie inaczej. Moim zdaniem scenerie powinny mieć dobrze zorganizowaną "infrastrukturę" oraz opis techniczny. Wtedy generowanie scenariusza sprowadzi się do określenia początkowej i końcowej stacji oraz ustawienia prawdopodobieństwa nietypowych zdarzeń i pozostałego ruchu.
--- Koniec cytatu ---
Narzędzie, które chciałbym stworzyć służyłoby także do prowadzenia misji, a więc zawierałoby także wszelkie narzędzia, które teraz realizuje się za pomocą eventów tylko w prostszy sposób. Nie da się zrobić w zasadzie VD bez posiadania rozkładu jazdy, a jak już i tak to trzeba zrobić to samą mechanikę można zdecydowanie rozbudować. Do tego byłoby to przygotowanie do zrobienia multiplayera z prawdziwego zdarzenia, który obsługiwałby nie tylko samą kwestię prowadzenia pociągu przez poszczególne osoby ale także może być połączony z symulacją sterowania ruchem.

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Likes Pro Mod