Hm, to jak już robisz konwersję (czyli w zasadzie przepisujesz od nowa?) może warto pomyśleć o oddzieleniu grafiki od reszty? Właśnie na tym polega główne ograniczenie: napisanie własnego silnika graficznego to wyzwanie niemożliwe do wykonania, a nawet gdyby znalazło się kilka genialnych osób dysponujących nieograniczonym czasem - to i tak silnik nie będzie odporny na starzenie, dodawanie nowych możliwości będzie trwało wieki i będzie to mogła zrobić tylko garstka najgenialniejszych developerów, prawdopodobnie - sami autorzy. Pisanie silników graficznych czy robienie grafiki 3D od zera kojarzy mi się z pisaniem własnych systemów operacyjnych (vide TempleOS). MaSzyna ma własny silnik. Odpowiednik TempleOS-a. Nawet nieskończenie ulepszony oryginalny silnik będzie nadal tak samo oporny w dalszym rozwoju. Ba - w pewnym momencie ten rozwój musi się zatrzymać bo rozbije się o niekompatybilność z nowym sprzętem.
Tak już jest. Jak ktoś ma zacząć pracę od "narysuj trójkąt" - to masz tyle chętnych do pracy ile masz. Czyli mija kilka lat, wychodzą kolejne generacje komputerów i kart graficznych, a w MaSzynie dalej to samo. Z gotowym silnikiem zaczynasz od "wgraj modele i tekstury, ustaw oświetlenie...", kończysz na "przesuń punkt lub bryłę". Światła? Nie musisz robić, są. Szyby, lustra? Nie musisz robić, są. Chcesz deszcz i śnieg? Masz. Chcesz zderzenia i uszkodzenia? Masz PhysX (albo odpowiednik). Chętnych do pracy więcej. Po roku pracy (oczywiście po godzinach) masz coś co wygląda lepiej od Trainza. Nie widziałem Trainza na żywo, tylko recenzje. Z tego co widziałem i słyszałem - fizyka maszynowa jest lepsza. Gdyby dało się ją wydzielić do osobnych, najlepiej wysokopoziomowych modułów - to byłby początek MaSzyny 2.0. Do tego masz rozwój silnika graficznego przez lata gratis. Duże silniki graficzne są darmowe dla projektów niekomercyjnych. Gdyby myśleć o wersji komercyjnej - to byłaby wystarczająco mocna rzecz żeby opłacało się nawet zapłacić za silnik. Pisząc "mocna" mam na myśli możliwości szybkiego, dynamicznego rozwoju przez dużą bazę developerów. Przy okazji - mając silnik i moduł zdolny po prostu wyświetlać scenerie - zrobienie edytora 3D byłoby w zasadzie "przy okazji" tworzenia samego symka. Podstawowe funkcje "gratis", zaawansowane robią już ludzie, którzy mogą nie mieć bladego pojęcia o shaderach i grafice, za to pojęcie o budowie torowisk, trakcji, SRK itd. To jest IMHO możliwe do zrobienia. Taki POC do upgradu grafiki wyglądałby tak: wgraj T3D/E3D, wgraj tekstury od dowolnego obiektu i wyświetl. Od tego punktu już z górki. Z tego co wiem to kwestia konwersji formatów, do zrobienia właściwie przez każdego programistę, bez względu na specjalizację. Każdy silnik ma jakiś format modeli i tekstur. Kolejny etap to zbudowanie 2 warstw i API pomiędzy nimi. Tą drugą, na razie malutką jest dziś Python. Ja bym tam wolał C# (dużo szybszy, lepsza współpraca z kodem natywnym), ale może wystarczy. Jeśli możesz z wysokiego poziomu dać "przesuń obiekt nr xxy do x, y, z" - to w zasadzie pozamiatane. Cała fizyka mogłaby działać na wysokim poziomie. Przede wszystkim - całe sterowanie - w stylu ten przycisk czy gałka zmieniają tę lub inną zmienną. Rzeczy w stylu otwieranie drzwi, czy nawet wyjeżdżające schody w ED250 byłyby trywialne do napisania z wysokiego poziomu. Problem świateł peronowych czy pojazdów po prostu by zniknął. Kwestie pogody i pory dnia by zniknęły. Światło i cień gratis. Jeśli model miałby ruchomą część - animujesz z wysokiego poziomu. Dodatki powstawałyby w takim tempie, że trudno byłoby nadążyć.
Rozumiesz o co mi chodzi? Jest tysiące developerów ogarniających game-dev, ale takich, co ogarniają techniczne aspekty kolejowe w stopniu wystarczającym - na palcach jednej ręki. Dodatkowo wiedza magików tworzących modele i scenerie trafia na ścianę siermiężnych narzędzi, przez którą muszą włożyć ogrom mrówczej pracy żeby zrealizować swoją wizję. To co opisałem to trudny, wymagający scenariusz, ale chyba jedyny zdolny reanimować MaSzynę tak, żeby nie stała się na wpół opuszczonym zabytkiem w ciągu najbliższych kilku lat. Wiem, popłynąłem w fantazję ;)