Cześć i czołem. Jestem tu nowy i "jeszcze nie wiem, że się nie da" ;) Korzystając z tego, że nie wiem, zapraszam wszystkich trasopisarzy MaSzyny do współpracy.
Pomimo tego, że GitHub, ani tym bardziej GIT nie jest niczym nowym, dla mnie to nowinka i współpraca ma polegać na użyciu właśnie GIT huba do synchronizacji plików i backupu. Jeśli byłem w stanie go ogarnąć w parę godzin, też możesz, a warto.
Co ja mogą zrobić dla MaSzyny i dla Was? Coś co umiem, a stale się uczę, więc lista będzie się wydłużać.
Moja specjalność zawodowa to informatyka (głównie programowanie), moja pasja (jedna z wielu) to kolej i jazda MaSzyną :) Te 2 rzeczy idealnie do siebie pasują, bo MaSzyna aż się prosi o modowanie, formaty danych są raczej otwarte, źródła scenerii na wyciągnięcie ręki itd. Do tego każdy dev się zgodzi, że to projekt w ciągłej budowie, który wymaga dopracowania praktycznie wszystkiego.
Na czym ma polegać współpraca? Na wspólnym tworzeniu misji. Jako, że spora część z Was jest hackerami jeśli chodzi o CAD, ja mogę pomóc we wszystkim innym wokół tego. Potrzeba rozkładów - proszę bardzo, nauczyłem się jeździć już na tyle dobrze, że mogę przejechać trasę na rozkład zgodnie z kolejową Biblią i Koranem :) Strukturę plików rozkładów znam, aktywnie rozwijam także program wspomagający edycję i tworzenie rozkładów. Co jeszcze? Rozkłady dynamiczne. Nauczyłem się je tworzyć, stale eksperymentuję z techniką do tego używaną, i tak samo rozwijam aktywnie narzędzie wspomagające tworzenie rozkładów dynamicznych. Co jeszcze? Wszystko związane z obsługą i tworzeniem niestandardowych zdarzeń na trasie. Tu się dopiero uczę, ale najlepiej uczyć się praktycznie, na żywym materiale, przy konkretnych zadaniach.
Czego potrzebuję? Współdzielenia plików rozwijanych scenerii via GitHub. Mój plan jest taki - dajemy wszędzie 2 gałęzie: dev i stable. W dev grzebie każdy, do stable wrzuca główny autor, albo umawiamy się kto wrzuca.
Dlaczego GitHub? Jest darmowy, szybki, ma całą masę narzędzi pod różne systemy, zarówno dla hackerów i programistów, jak i dla zupełnie zielonych. W wersji najprostszej jest o wiele prostszy w konfiguracji i użyciu niż praktycznie każda usługa współdzielenia plików. Jego ogromnym plusem jest to, że zachowuje on historię wszystkich zmian wprowadzanych przez ludzi, umożliwia ich łatwe śledzenie. Ktokolwiek bał się, że ktoś inny mu coś zepsuje w projekcie nie musi się bać, bo każdą zmianę będzie miał udokumentowaną i w każdej chwili może ją cofnąć, zaakceptować albo odrzucić. Dlaczego jeszcze GIT a nie coś innego? Bo nikt nie musi na nikogo czekać. Bo zawsze znamy obecny stan projektu, bo zawsze uwzględniamy zmiany wprowadzone przez innych developerów. Bo nie musimy się specjalnie umawiać, żeby coś zrobić, po prostu robimy, kiedy mamy czas. No i last but not least: zmiany nie giną. Prace nie giną. Ktoś coś zrobił - to jest. Inny plus: jedna bieżąca wersja. Graficzne drzewo projektu. Opcjonalnie wiele wersji. Możliwość dowolnej konfiguracji wersji finalnej. No i teamwork. Team zrobi więcej niż każdy sam sobie.
Na razie plan jest wąski - scenariusze. Rozkłady (dynamiczne, rzecz jasna). Drobne poprawki. A później się zobaczy.
Jak ktoś ma coś przeciwko umieszczaniu plików, które udostępnił w MaSzynie jako prywatnego forka na GitHub-ie niech pisze i zastrzega. W innym przypadku wrzucam forka. Nikt się nie pytał, czy może zrobić moda do Dooma, Quake-a, Stalkera czy Fallouta. Zapewne nie pytali się, czy mogą modować Trainz-a.
Pracuję nad edytorem tekstowym scenerii. Jak ktoś ma feature-requesty to proszę bardzo. Jaka funkcja przydałaby się w takim edytorze? Co pozwoliłoby oszczędzić masę czasu na grzebaniu w plikach? Myślę, że wyszukiwanie obiektów po współrzędnych i np sortowanie torów. Wyszukiwanie odcinków torów (od punktu A do B, znajdź wszystkie i wyświetl w kolejności). Automatyczne wstawianie konstrukcji składniowych - np makro "przypisz/zmień rozkład", "wstaw próbę hamulca". Np wstawianie "wycinków". Coś jak szablony kodu w niektórych edytorach. Ktoś ma swoje pomysły, proszę śmiało. Ktoś chce podłubać w moim kodzie (C#) - proszę bardzo, bieżąca wersja jest zawsze dostępna na GitHubie. Moduł związany z wyszukiwaniem po współrzędnych i sortowaniem torów jest zaplanowany na ten tydzień. 4h pracy dziennie. Po ukończeniu publikuję wersję 1.0.
Czego jeszcze potrzebuję? Motywacji. Uważam, że nie da się zrobić niczego sensownego w dużym projekcie bez poświęcenia ogromnych ilości czasu i energii. Każdy drobiazg tego wymaga. A niektóre rzeczy, jak wspomniany edytor wymagają wprost wariackiego zacięcia i uporu. Robię co robię dla siebie i dla projektu. Żeby było zrobione i po nic więcej. Jednym z najlepszych źródeł motywacji jest aktywna współpraca i feedback. To dlatego w muzyce ostatnich czasów całą sławę i legendę tworzą zespoły - jakby każdy grał sobie sam, nie byłoby rocka. Jazzu pewnie też by nie było, bo czym byłby jazz bez jam-ów?
Co robię od zaraz? Wrzucam wszystko co mam na GitHuba. Na razie nie udostępniam linków, w razie sprzeciwu usuwam repo, w razie zainteresowania upubliczniam linka. Co robię poza tym w tym tygodniu? Wrzucam dokumentację wszystkich rzeczy, które robiłem przez ostatnie miesiące. Szkoda czasu, jakby ktoś musiał jeszcze raz dochodzić do tego od zera.
Kto wchodzi palec do budki. Ustalmy kto ma tworzyć repo, domyślnie sam tworzę, ale wyłącznie dlatego, że żadnego repo nie ma, albo nie wiem że jest. Pytania odnośnie GIT-a? Służę pomocą. To jak, robimy jam-session? ;)
Tak na marginesie, ktoś jeszcze rozwija Moczniki? Ta sceneria nie jest zła, jakby jeszcze rozkłady dorobić, może dodać parę misji, a przede wszystkim nazwać przystanki jakoś zabawnie - można by ją jeszcze wykorzystać. Ileż można jeździć po 4 głównych trasach? :) A może by tak zrobić jakąś misję (albo kilka) w Tarniowie? Na razie to fajne demo techniczne, ale raczej nie do jeżdżenia.