Autor Wątek:  Sterowanie ruchem przez zewnętrzną aplikację  (Przeczytany 34209 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline tmj

  • Zasłużony dla Symulatora
  • Wiadomości: 3808
    • Zobacz profil
  • Otrzymane polubienia: 2351
Odp: Sterowanie ruchem przez zewnętrzną aplikację
« Odpowiedź #60 dnia: 09 Marca 2017, 12:32:08 »
Ty myślisz o czymś co liczy poruszanie się pojazdów, a ja myślę o czymś co przesyła policzone elementy na poszczególnych kompach do innych, żeby zwizualizować przemieszczenia jedynie. Druga wersja nie wymaga implementowania niczego oprócz odpowiedniego interfejsu TCP i ewentualnie sprawdzania czy wszystkie klienty mają uruchomioną tą samą wersję scenerii. Po co rozdzielać?
Wg mnie są tylko dwa tryby: pełny singiel, gdzie wszystko liczymy na exe a hub służy do komunikacji z jedną instancją SCS oraz pełny multi gdzie AI to może co najwyżej sterować scenariuszem ale nie ma składów AI.

To niezupelnie tak -- (niektorzy) klienci jak najbardziej moga sobie liczyc stan symulacji u siebie na podstawie przekazanych sygnalow, ale oprocz tego uwazam ze 'master' takze musi to robic, chocby dlatego ze symulacji nie policza sobie np stacje pod kontrola SCS, i ktos musi dla nich zdecydowac o zajetosci torow itp, i przekazac im te informacje. Biezacy stan calej trasy musi byc takze przekazany klientom ktorzy podlaczaja sie w trakcie sesji, i do tego celu trzeba go skads wziasc. No i wreszcie jest to raczej przydatne do zwyklej weryfikacji -- "nigdy nie wierz klientowi" to dosc podstawowa zasada dla aplikacji sieciowych, dlatego przyjmowac od nich informacje, jakie komendy wydaje sterujacy jak najbardziej, mozna, ale juz slepo przyjmowac dane w rodzaju "moj pociag jest teraz tutaj" to jest proszenie sie o klopoty, takie rzeczy serwer liczy u siebie i jesli klient ma inne zdanie, to rozstrzygniecie jest na 'korzysc' serwera, nie klienta.

Co do trybow natomiast, mysle ze tutaj jak najbardziej mozna laczyc AI i ludzi -- upraszczajac, z punktu widzenia symulacji nie ma roznicy, czy 'ludzki' kontroler pociagu siedzi przed klawiatura komputera ktory liczy ta symulacje, czy sterowanie odbywa sie poprzez wariant tej klasy zmieniony by otrzymywac instrukcje ze 'zdalnej' klawiatury, za posrednictwem tcp i serwera. Ani czy sklad zarzadzany przez AI zostaje przejety przez "lokalne F5", czy jego sieciowy odpowiednik? Odpada w ten sposob problem, ze wieksze scenariusze albo nie moga byc uzywane w trybie multiplayer dopoki nie znajdzie sie grupa kilku(nastu) osob chcacych jezdzic w tym samym czasie akurat po tej trasie, zeby obsadzic wszystkie zdefiniowane pociagi, albo sa okrawane ze wszystkich skladow oprocz tych, ktore obsadza operatorzy, i robi sie na nich zwyczajnie pusto gdy tych operatorow jest 2-3.

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 121
Odp: Sterowanie ruchem przez zewnętrzną aplikację
« Odpowiedź #61 dnia: 09 Marca 2017, 21:00:19 »
Trochę się chyba zagalopowaliśmy. Narazie chodzi o stworzenie architektury tylko dla singla bo nic więcej nie uda się zrobić w najbliższym czasie więcej. Jeśli założymy, ze całe AI loków ma być w przyszłości liczone na serwerze to w tej chwili to nie jest jakoś znacząco potrzebne do życia.
Chciałbym jednak ustalić jakąś architekturę, która docelowo będzie się nadawać do rozbudowy, ale nie zostanie zaimplementowana w pełni na obecnym etapie.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Sterowanie ruchem przez zewnętrzną aplikację
« Odpowiedź #62 dnia: 11 Marca 2017, 20:58:35 »
Ale w wersji multiplayer ready? ;)
Wszystko da się zrobić tylko jeszcze nie wiem jak.

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 121
Odp: Sterowanie ruchem przez zewnętrzną aplikację
« Odpowiedź #63 dnia: 14 Marca 2017, 11:58:16 »
Tak, w wersji multiplayer do wprowadzenia kiedyś w przyszłości.
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline AtapiCl

  • Zasłużony dla Symulatora
  • Wiadomości: 4426
    • Zobacz profil
    • O warszawskiej części linii kolejowej nr 7 Warszawa – Lublin i nie tylko ;)
  • Otrzymane polubienia: 212
Odp: Sterowanie ruchem przez zewnętrzną aplikację
« Odpowiedź #64 dnia: 09 Stycznia 2018, 00:29:12 »
Odkopując "trochę", fajnie by było gdyby SCS obsługiwał coraz częściej pojawiające się cuda w postaci rozsuniętych semaforów blokady lub miejscowo zagęszczonych jednokierunkowo odstępów, gdzie w drugim kierunku muszą być dwa odcinki osłaniane jednym semaforem. Bo obecnie przy próbie skonstruowania czegoś takiego, udać się uda żeby właściwie reagowały semafory podczas przejazdu przez oba odcinki, ale zrywa cały czas połączenie.
« Ostatnia zmiana: 09 Stycznia 2018, 00:46:04 wysłana przez AtapiCl »

Offline maciek001

  • Wiadomości: 136
    • Zobacz profil
    • FanPage symulatora ET22
  • Otrzymane polubienia: 33
Odp: Sterowanie ruchem przez zewnętrzną aplikację
« Odpowiedź #65 dnia: 24 Maja 2021, 10:02:41 »
Jak tam temat SCS i MaSzyny? Ktoś pracuje nad tym? Jeżeli tak, to warto byłoby przemyśleć zastąpienie komunikacji międzyprocesorowej komunikacją TCP/IP. Ciekaw jestem co Wy o tym sądzicie.
Wszystko da się zrobić tylko jeszcze nie wiem jak.