No dobra ludzie i ludziska, po miesiącach walki z trainzami, gmaxami i skryptami. Po zarwanych nocach, setkach litrów kawy. Po godzinach dyskusji i narad z Erniem Souchakiem. 10 czerwca 2012, godzina 19:20: Jest publicznie udostępniona pierwsza kompletna paczka najnowszej wersji sygnalizacji. Póki co wersja 2009+, bo jej najbardziej brakowało. Kompletne opisy są na stronie, nie będę tu tego przepisywał. Krótko: nowe meshe, nowe skrypty, nowe możliwości. Zachowana kompatybilność do poziomu odczytu sesji. Poprawione co się dało. Testujcie i dajcie znak co nie gra. Ale proszę - przeczytajcie instrukcje i opisy, bo parę rzeczy się po prostu nie dało.
Nie jest to oczywiście jeszcze wszystko, lista ToDo jest całkiem spora. Ale to, co wyszło - to zestaw w pełni skompletowany i działający, zawierający wszystkie "czynne" semafory.
Pomógł: 125 razy Dołączył: 06 Mar 2009 Posty: 3921 Skąd: Opole
Wysłany: 10-06-2012, 21:59
Całkowicie nowa jakość. Jestem w trakcie czytania semaforologii stosowanej w Twoim wydaniu. Multum roboty odwaliłeś, a jak doczytałem co ma być jeszcze, to daj Bozia zdrówko Radkowi co by dokończył resztę. Oczywista oczywistość należy życzyć lepszej połowie cierpliwości i zrozumienia dla produkcji tak wiekopomnego projektu.
Pomógł: 336 razy Wiek: 54 Dołączył: 03 Gru 2008 Posty: 6691 Skąd: Warszawa
Wysłany: 10-06-2012, 23:08
Radek dwie sprawy, albo nawet trzy
1) Czy dałoby radę poprawić promień wyzwalacza do 500m, nie mówię, że domyślnie ale dać taką możliwość?
2) Rurki semaforów są trochę kanciaste, włączyłeś wygładzanie w modelu?
3) Czy nie można było zrobić sygnalizacji w wersji dla TS2009+, czyli numerek wersji w configu 2.9? Dzięki temu można by wykorzystać mesh_library, czyli wszystkie tekstury w jednym miejscu.
Radek dwie sprawy, albo nawet trzy
1) Czy dałoby radę poprawić promień wyzwalacza do 500m, nie mówię, że domyślnie ale dać taką możliwość?
Nie. To jest ograniczenie gry, zmienna pozwala do +-255. To było pierwsze co próbowałem poprawić
drstrach napisał/a:
2) Rurki semaforów są trochę kanciaste, włączyłeś wygładzanie w modelu?
Tak. Nie wiem czemu tak wygląda, najwyżej wymodeluję je od nowa.
drstrach napisał/a:
3) Czy nie można było zrobić sygnalizacji w wersji dla TS2009+, czyli numerek wersji w configu 2.9? Dzięki temu można by wykorzystać mesh_library, czyli wszystkie tekstury w jednym miejscu.
jak na moje to pewnie można. I tak to jest osobna wersja 2009+ (skrypt), więc jak ogarnę resztę to się pomyśli Muszę zobaczyć, o co chodzi w tym mesh library - że meshe są w jednym dodatku i mają wspólną teksturę, tak? Chodzi o to, żeby nie było 500 kopii tej samej grafiki, dobrze myślę?
Pomógł: 336 razy Wiek: 54 Dołączył: 03 Gru 2008 Posty: 6691 Skąd: Warszawa
Wysłany: 11-06-2012, 00:14
RBach napisał/a:
Nie. To jest ograniczenie gry, zmienna pozwala do +-255. To było pierwsze co próbowałem poprawić
No właśnie w TS2009+ to ograniczenie jest większe, tylko teraz nie pamiętam, czy 500m, czy więcej (na pewno nie mniej).
RBach napisał/a:
Tak. Nie wiem czemu tak wygląda, najwyżej wymodeluję je od nowa.
Może wystarczy ruch w teksturze (bardziej powtarzalna na krawędziach).[/quote]
RBach napisał/a:
Muszę zobaczyć, o co chodzi w tym mesh library - że meshe są w jednym dodatku i mają wspólną teksturę, tak? Chodzi o to, żeby nie było 500 kopii tej samej grafiki, dobrze myślę?
Dokładnie, mimo że te tekstury nie są duże, to może być jednak jakiś przyrost wydajności.
Hm..... czyżbym nie zaczaił? W opisie na stronie jest napisane że są osobne pliki dla 2006 i TC oraz dla 2009+ a ja widzę tylko jedną paczkę a w niej jeden plik. To on jest dla 2006 czy dla 2009 ?
Mesh library ma jeszcze jedną zaletę, wymienia się tekstury (jeśli chcesz coś odświeżyć lub poprawić) w jednym folderze, co znacznie przyspiesza robotę i zmniejsza ryzyko błędu
No właśnie w TS2009+ to ograniczenie jest większe, tylko teraz nie pamiętam, czy 500m, czy więcej (na pewno nie mniej).
Nie chodzi o grę. Funkcja szukania jako zakres ma zmienną typu Integer, a ta może przyjąć wartości 8-bitowe (0-255). W "normalnych" środowiskach typu C++ na pecetach jest to zakres do nieco ponad miliona (20 bitów), w TRSach niestety jest tylko 8. Czyli pisząc "gra" miałem na myśli środowisko programistyczne (GameScript)
Jeszcze w to dobrze popatrzę, może coś wymyślę. Najwyżej spróbuję przepisać szukajkę.
drstrach napisał/a:
Może wystarczy ruch w teksturze (bardziej powtarzalna na krawędziach).
A fakt, spojrzę.
drstrach napisał/a:
RBach napisał/a:
Muszę zobaczyć, o co chodzi w tym mesh library - że meshe są w jednym dodatku i mają wspólną teksturę, tak? Chodzi o to, żeby nie było 500 kopii tej samej grafiki, dobrze myślę?
Dokładnie, mimo że te tekstury nie są duże, to może być jednak jakiś przyrost wydajności.
Żebyś widział wersje robocze. głupi daszek był 1024x1024 i całość 50MB :P
Samplaire napisał/a:
Mesh library ma jeszcze jedną zaletę, wymienia się tekstury (jeśli chcesz coś odświeżyć lub poprawić) w jednym folderze, co znacznie przyspiesza robotę i zmniejsza ryzyko błędu
Brzmi nieźle A co z dodatkami, które różnią się jedną teksturą? Np Tz/Tm - inna praktycznie jest tylko tekstura słupa. Jak to się rozwiązuje? I rozumiem, że dalej jest tak, że ilość meshy=ilość semaforków? Meshe się nie powtarzają, każdy jest inny (chodzi o punkty a.costam)
OK. Prace sprawczo-poprawcze dla TS2009+ chwilowo wstrzymane - wyjeżdżam na dłużej, w laptopie mam tylko 06, więc postaram się przygotować i wydać tą wersję.
Bazler i wszyscy: Przeprasza, mea culpa, nie dopisałem Albo się schowało: na dzień dzisiejszy wisi paczka TYLKO DLA 2009+!!! dla 06 robi się, powinna być na dniach. Kwestia poskładania do kupy dodatków z wersją skryptu dla 06 i wgrania na serwer.
Nie chodzi o grę. Funkcja szukania jako zakres ma zmienną typu Integer, a ta może przyjąć wartości 8-bitowe (0-255). W "normalnych" środowiskach typu C++ na pecetach jest to zakres do nieco ponad miliona (20 bitów), w TRSach niestety jest tylko 8. Czyli pisząc "gra" miałem na myśli środowisko programistyczne (GameScript)
Jeszcze w to dobrze popatrzę, może coś wymyślę. Najwyżej spróbuję przepisać szukajkę.
long int w GameScripcie nie ma. Ale sprawdzałem właśnie na TrainzDevWiki, i tam nie ma nic o ograniczeniu inta do 8 bitów. Wręcz przeciwnie, jest napisane, że int jest 32-bitowy.
long int w GameScripcie nie ma. Ale sprawdzałem właśnie na TrainzDevWiki, i tam nie ma nic o ograniczeniu inta do 8 bitów. Wręcz przeciwnie, jest napisane, że int jest 32-bitowy.
Bzdury piszą, ten opis typu ktoś po prostu żywcem zerżnął z jakiegoś opisu C/C++ zresztą GS znasz, sam sprawdź. Też kombinowałem, dopiero Ernie mnie wyprowadził z błędu. Integer w trainzach ma 8 bitów i koniec
Aha No to zostaje chyba float. Albo para zmiennych, int starszy i int młodszy, jeżeli musi to być int. Tylko wtedy tak czy inaczej wymaga to przeróbki kodu...
Dziwię się, że w takim wypadku nazwali to int. Byte było by bardziej odpowiednie i nie mylące.
Ostatnio zmieniony przez adamstan 11-06-2012, 12:18, w całości zmieniany 1 raz
Aha No to zostaje chyba float. Albo para zmiennych, int starszy i int młodszy, jeżeli musi to być int. Tylko wtedy tak czy inaczej wymaga to przeróbki kodu...
Musi być jedna. Przerobię na float, jak wrócę za jakiś tydzień do domu. Zobaczymy co z tego wyjdzie, najwyżej w menu będzie 5 miejsc po przecinku
adamstan napisał/a:
Dziwię się, że w takim wypadku nazwali to int. Byte było by bardziej odpowiednie i nie mylące.
W sumie prawie dobrze nazwali. Int może przyjmować wartości ujemne (-255;0;255), a Byte tylko bezwzględne 0-255. Optymalna nazwa tej zmiennej to ShortInt.
W sumie prawie dobrze nazwali. Int może przyjmować wartości ujemne (-255;0;255), a Byte tylko bezwzględne 0-255. Optymalna nazwa tej zmiennej to ShortInt.
VeryShort Dziwne - na znak i tak włazi się już na drugi bajt, liczba jest 9-bitowa, to co by im szkodziło dać 16... No ale kto kangura zrozumie...
Rozumiem, że napisaliście z Ernim całkiem nowy skrypt. Pomysł z autorouterm bardzo przyśpiesza konfigurowanie całej sygnalizacji na mapie i jest super. Nie myśleliście aby pójść jeszcze krok dalej i "zautomatyzować" też następstwo samych sygnałów? (Semafor na końcu toru na który chcemy wjechać podaje S1, wjazd jest z Vmax=40, więc semafor spod którego ruszamy, po ułożeniu przebiegu i wyszukaniu jaki sygnał jest na następnym semku podaje automatycznie S13). Wiem, że to nie kocert życzeń, ale gdyby udało się coś takiego zrobić, to mielibyśmy sygnalizację prawie idealną, która zaoszczędziłaby multum czasu pracy wkładanej w układanie przebiegów, co jest chyba największą udreką w przypadku dużych stacji i map. Coś takiego mają Węgrzy (do ściągnięcia na trainz.hu), więc jest to możliwe.
Pozdrawiam
Rozumiem, że napisaliście z Ernim całkiem nowy skrypt. Pomysł z autorouterm bardzo przyśpiesza konfigurowanie całej sygnalizacji na mapie i jest super. Nie myśleliście aby pójść jeszcze krok dalej i "zautomatyzować" też następstwo samych sygnałów?
Autorouter też samoczynnie wykrywa następny semafor w układanym przebiegu, w trakcie szukania, wystarczy go zatwierdzić. Wtedy ten semafor oczywiście wpływa na obraz sygnałowy. Nie daliśmy wpisywania całkowicie automatycznie, bo czasem można chcieć podać co innego jako "następny"
Trochę szkoda, że z tego zrezygnowaliście, bo w sumie jak z jednego toru można się dostać na jakiejś większej stacji na 10 innych, to i tak trzeba te 10 przebiegów ułożyć. A dla tych szczególnych przypadków, jak sam napisałeś pozostałaby opcja ręcznej konfiguracji. A tak wystarczyłoby w zależności od sytuacji 1,2 przebiegi i byłoby po sprawie.
Trochę szkoda, że z tego zrezygnowaliście, bo w sumie jak z jednego toru można się dostać na jakiejś większej stacji na 10 innych, to i tak trzeba te 10 przebiegów ułożyć. A dla tych szczególnych przypadków, jak sam napisałeś pozostałaby opcja ręcznej konfiguracji. A tak wystarczyłoby w zależności od sytuacji 1,2 przebiegi i byłoby po sprawie.
Przyjmuję jako request do wersji 6 I tak autorouterem ułożenie 10 przebiegów to 5 minut
Pomógł: 336 razy Wiek: 54 Dołączył: 03 Gru 2008 Posty: 6691 Skąd: Warszawa
Wysłany: 11-06-2012, 15:53
To jak mamy koncert życzeń
Dałoby radę tarcze ostrzegawcze zrobić jako sygnalizatory z dwoma światłami żółtym i zielonym, dzięki temu AI będzie wcześniej reagować na wskazania na następnym semaforze. Rozumiem, że nasze sygnały znacząco różnią się od tych z UK, czy USA ale IMO nic nie stoi na przeszkodzie żeby w przypadku jazdy w bok na semaforze AI otrzymywała żółte (oczywiście wyświetlane będzie Os3, czy Os4).
Aha, nawet nie marzę o reakcji na semafory powtarzające, to już zbędny drobiazg
To jak mamy koncert życzeń
Dałoby radę tarcze ostrzegawcze zrobić jako sygnalizatory z dwoma światłami żółtym i zielonym, dzięki temu AI będzie wcześniej reagować na wskazania na następnym semaforze.
Pewnie i dałoby. Ale głównym założeniem przeróbki tarcz było uczynienie ich "niewidzialnymi dla AI". I tak ma być - tarcza jest niezauważalna dla AI. W TS2010 maszyniści mi zwalniają odpowiednio wcześniej :)
Pomysł na całość sygnalizacji (od wczesnych wersji 2.0) była taka, że tarcze mają być scenery. Tak było do TC, potem w 2009 zmieniła się hierarchia klas i zaczęły się błędy "class nie pasuje do kind" i wszystkie protezy z nadawaniem KIND MOsignal. Ale były to tylko próby uruchomienia wersji 3 w 2009, z braku źródeł. Po to pisałem im osobny skrypt, po to mają nowe KUID-y. Nie że mi się nie chce, ale jakichś założeń trzeba się trzymać, nie? :)
drstrach napisał/a:
Rozumiem, że nasze sygnały znacząco różnią się od tych z UK, czy USA ale IMO nic nie stoi na przeszkodzie żeby w przypadku jazdy w bok na semaforze AI otrzymywała żółte (oczywiście wyświetlane będzie Os3, czy Os4).
Technicznie i programistycznie nic. Ale OIDP odwzorowujemy polską srk Ja rozumiem, że w USA jest inaczej, ale ja optuję za polskimi realiami.
Pomógł: 31 razy Wiek: 40 Dołączył: 24 Mar 2008 Posty: 808 Skąd: Poznań/Kołobrzeg
Wysłany: 11-06-2012, 17:03
Moze pare slow ode mnie na te okolicznosc. Po pierwsze - skrypt ni hu hu nie jest nowy, to nadal nasz przewspanialy, przecudnej urody HLSignal, ktoremu Radek zastosowal kuracje botoxem w celu:
a) zalatania dziur w cerze
b) dolozeniu paru dodatkow coby lepiej wygladal.
Moja rola to dostarczenie jedynie autoroutera, co by ludzie nie pouciekali od razu, a jedynie po dluzszej chwili.
Po drugie - a to wynika z pierwszego - wszelakie nowe features and bugs (badz odwrotnie) to domena Radka, ja jestem zbyt leniwy na wymyslanie prochu na nowo.
Podsumowujac - wszystko jest do zrobienia. Ale nie w ramach HLSignal. To jest juz dead-end.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach