- Symulator MaSzyna -
Symulator EU07 (i nie tylko) => Pomoc doraźna => Wątek zaczęty przez: lisuml w 02 Kwietnia 2020, 20:34:41
-
Cześć,
Gdzie mogę znaleźć kod źródłowy aktualnej wersji 20.01? Binarka zbudowana z oficjalnego repo (https://github.com/eu07/maszyna) buduje wersję z sierpnia 2019. Przejrzałem forki i najbardziej aktualny jest (https://github.com/tmj-fstate/maszyna), ale niestety kompilacja z użyciem CMake wygląda na popsutą.
Swoją drogą, które repo Maszyny jest używane do budowania stabilnej wersji symulatora i kiedy oficjalne repo jest odświeżane?
Pozdrawiam,
Michal
-
CMake z mojej galazki bedzie raczej kopniety bo ja visuala uzywam ;/ Dolaczony do kodu .sln z przyleglosciami powinien dzialac, w najgorszym razie jest to kwestia wrzucenia do jednego garnka plikow zrodlowych i zawartosci foldera /ref
W normalnych warunkach tzn gdy Milek ma czas i chec by zrobic merge to oficjalny aktualny kod jest na oficjalnym repo, i dodatkowo na https://github.com/Milek7/maszyna
-
Dzięki za info. Oprócz lokacji plików istnieje jeszcze problem kompatybilności nazw plików oraz folderów. W obecnej formie, nie jestem w stanie zbudować binarki z Twojego forka pod Linuksem. Pozostaje mi poczekać na sync oficjalnego repo. Temat do zamknięcia.
-
Tak dla ścisłości to najnowsze exe dla linux jest tu: https://github.com/Milek7/maszyna/tree/master (zwykłe)
https://github.com/Milek7/maszyna/tree/sim (shaderowe+inne bzdety)
Pracują poprawnie z paczką 19.08, na nowszych mogą być problemy.
-
A będą kiedyś działać z 20.01?
Dlaczego o to męczę? Zależy mi na linuksowej wersji, ponieważ chciałbym binarkę móc sobie zbudować automatycznie z AUR na Arch Linux. W tym celu stworzyłem nową paczkę: https://aur.archlinux.org/packages/maszyna-git/, fajnie byłoby mieć możliwość budowy binarki, która jest kompatybilna z najnowszą paczką assetsów.
-
Ewentualnie poczekam na wersję steamową, jeśli w dalszym ciągu jest planowana.
-
Jak zrobię to będą.. :|
Tak to wygląda mniej więcej
youby -----------------------------------------------------------------------------------------------------------------\
| poprawki fizyki czasami zaciągane bezpośrednio do simkolu |
| |
| |
\/ \/
tmj -------------------------------------> milek7 (master) ------------------ milek7 (gfx-work) -------------------> milek7 (sim)
główne ficzery, bugfixy wieloplatformowy build cmake shadery ficzery dla simkolu
i zmiany wprowadzane przez tmj |
projekt tylko windows |
/\ |
| |
| jak tmj coś się spodoba to wyciąga wybrane ficzery z sim |
\--------------------------------------------------------------------------------------------------------------------/
Merge tego co pozmieniał tmj + wstecznie zaciągniętych ficzerów z sim jest dosyć nietrywialny. Nie mam ostatnio czasu się do tego zabrać, ale w końcu muszę ;p
-
O, bardzo fajnie rozrysowany schemat :-) Jak zacząłem w tym grzebać jakiś czas temu to próbowałem ogarnąć kto, od kogo i dlaczego, ale się poddałem. Stąd temat na forum. Dzięki za info, czekam na merge głównego repo. Chętnie bym pomógł, ale nie grzebałem jeszcze w kodzie Maszyny, więc pewnie tylko bym spowalniał ;-)
-
Ja sobie poprawiłem CMakeLists.txt i używałem vcpkg do zależności. Build sypie się twierdząc, że nie ma optional w std, czyli coś jeszcze tam jest nie tak. Jak w końcu się z tym uporam, to otworzę pull request do gałęzi tmj. Może to nie nastąpić szybko, bo jestem leniwą bułą.
-
Dobra, zmarnowałem dziś na to ze 4h, nie udało mi się tego ogarnąć. Za mało się znam jeszcze na cmake i visual studio. Bo maszyna.sln też mi się nie kompiluje.
-
Cześć.
Nie wiecie gdzie znajdę paczkę danych (assetów) do 19.08? Mam pobrać exe i rozpakować pod wine?
@lisuml nie myślałeś, żeby pkgbuild zasysał paczkę danych tak, żeby za jednym buildem mieć spójną całość?
Istnieje natywny/crossplatform Rainsted lub odpowiednik? Na swoje potrzeby zrobiłem prosty starter w py, więc jeśli nie ma niczego takiego, to można byłoby to pociągnąć.
pzdr,
m.
-
http://stuff.eu07.pl/MaSzyna1908.zip + http://stuff.eu07.pl/1908HF.zip
Launcher jest taki podstawowy w exe sim. (uruchomić bez skonfigurowanej scenerii/pojazdu w ini)
-
@lisuml nie myślałeś, żeby pkgbuild zasysał paczkę danych tak, żeby za jednym buildem mieć spójną całość?
Owszem, myślałem :-) Ale założyłem, że assetsy można tylko pociągnąć z torrentów, jak widać założenie błędne. Postaram się dodać assetsy do mojego PKGBUILD w tym tygodniu.
Istnieje natywny/crossplatform Rainsted lub odpowiednik? Na swoje potrzeby zrobiłem prosty starter w py, więc jeśli nie ma niczego takiego, to można byłoby to pociągnąć.
Nad starterem również myślałem. Z tego co widziałem jest nawet wątek na forum (https://eu07.pl/forum/index.php/topic,24985.0.html), w którym szczawik podsyła linki do swojego startera. Może warto tam podpytać, czy nie mógłby opensourcować swojego kodu. Chętnie bym dołączył starter to PKGBUILD, co ułatwiło by w znacznej mierze natywne odpalanie MaSzyny na Linuksie.
Swoją drogą, jak wygląda sprawa z licencją w przypadku assetsów? Można udostępniać w buildach linuksowych?
-
Licencja symulatora jest pod tym linkiem:
https://eu07.pl/theme/Maszyna/dokumentacja/inne/readme_pliki/licencja.html
-
Niestety są problemy z paczką assetsów. Przy probie wypakowania z poziomu PKGBUILD wywala:
dynamic/pkp/sa134_v1/screen/podklad.bmp: ZIP uncompressed data is wrong size (read 1572864, expected 1572918)\n
dynamic/pkp/sa134_v1/screen/podklad2.bmp: ZIP uncompressed data is wrong size (read 1572864, expected 1572918)\n
bsdtar: Error exit delayed from previous errors.
ale kiedy wypakować ręcznie, wszystko działa. Podejrzewam, że PKGBUILD dodatkowo sprawdza wielkość wypakowanych plików.
-
Udało mi się w końcu zpaczkować assetsy w PKGBUILD dla Archa.
Brakuje jeszcze konfiguracji virtualenv dla pythona, ale powinno udać mi się to ogarnąć do końca tygodnia.
-
Swoją drogą, to kiedyś odpalałem maszynę i Rainsteda na OS X z wine i działało dobrze. Dziś spróbuję z 20.04.
-
Ja również odpalam z wine pod Linuksem, ale chciałem mieć również możliwość odpalenia wersji natywnej.
-
No to sobie poczekasz/-my, bo z doświadczenia własnego wiem, że build Exe od Tmj'a nie kompiluję się bezproblemowo na Pingwinie, a build Milka, niestety bardzo przestarzały, już bez większych problemów. Chyba że wykombinowałeś tą górę problemów?
-
Potwierdzam, Milik zrobił kawał dobrej roboty w doprowadzeniu Maszyny do budowania, co więcej, to nawet działało. Niestety, przeszczepienie tego na gałąź tmj to robota dla kogoś, kto ogarnia CMake i tego typu rzeczy.
-
Sorki za wykop, ale próbowałem zbudować najświeższą binarkę z forka tmj-a. Niestety bez skutku. Wygląda na to, że ta wersja nie do końca lubi się z pingwinem, bo dołączane są nagłówki "ddraw.h". Dodatkowo wiele referencji do plików źródłowych jest przestarzałych. brak jest także ustawionej wersji standardu C++ (oczywiście wszytko dotyczy pliku CmakeLists.txt0. Próbowałem także konwertować cmake-converterem: SLN -> CMake, ale to też nie przyniosło efektów. poniżej wklejam CMakeLists.txt po kilku szybkich zmianach, ale jeszcze niedziałającego :)
cmake_minimum_required(VERSION 3.0)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake_modules/")
project("eu07++ng")
include_directories("." "Console" "McZapkie" "ref/glad/include" "ref/imgui")
file(GLOB HEADERS "*.h" "Console/*.h" "McZapkie/*.h")
set (CMAKE_CXX_STANDARD 20)
set(SOURCES
"Texture.cpp"
"old/TextureDDS.cpp"
"Timer.cpp"
"Track.cpp"
"Traction.cpp"
"TractionPower.cpp"
"Train.cpp"
"TrkFoll.cpp"
"old/VBO.cpp"
"old/wavread.cpp"
"old/World.cpp"
"old/AdvSound.cpp"
"AirCoupler.cpp"
"AnimModel.cpp"
"Button.cpp"
"Camera.cpp"
"Console.cpp"
"Console/LPT.cpp"
"old/MWD.cpp"
"Console/PoKeys55.cpp"
"Driver.cpp"
"dumb3d.cpp"
"DynObj.cpp"
"EU07.cpp"
"Event.cpp"
"EvLaunch.cpp"
"old/FadeSound.cpp"
"Float3d.cpp"
"Gauge.cpp"
"Globals.cpp"
"old/Ground.cpp"
"Logs.cpp"
"McZapkie/friction.cpp"
"McZapkie/hamulce.cpp"
"old/mctools.cpp"
"McZapkie/Mover.cpp"
"McZapkie/Oerlikon_ESt.cpp"
"MdlMngr.cpp"
"MemCell.cpp"
"Model3d.cpp"
"mtable.cpp"
"parser.cpp"
"renderer.cpp"
"PyInt.cpp"
"old/RealSound.cpp"
"ResourceManager.cpp"
"sn_utils.cpp"
"Segment.cpp"
"sky.cpp"
"sun.cpp"
"stars.cpp"
"lightarray.cpp"
"skydome.cpp"
"old/Sound.cpp"
"Spring.cpp"
"gl/shader.cpp"
)
if (WIN32)
add_definitions(-DHAVE_ROUND) # to make pymath to not redefine round
set(SOURCES ${SOURCES} "windows.cpp")
endif()
if (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
set(SOURCES ${SOURCES} "eu07.rc")
set(SOURCES ${SOURCES} "eu07.ico")
endif()
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})
if (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
# /wd4996: disable "deprecation" warnings
# /wd4244: disable warnings for conversion with possible loss of data
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/wd4996 /wd4244")
endif()
find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARIES})
find_package(GLEW REQUIRED)
include_directories(${GLEW_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${GLEW_LIBRARIES})
find_package(glfw3 REQUIRED)
include_directories(${glfw3_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} glfw)
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} ${GLUT_LIBRARIES})
find_package(PythonLibs 2 REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${PYTHON_LIBRARIES})
find_package(PNG REQUIRED)
include_directories(${PNG_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${PNG_LIBRARIES})
No i ogólnie nie łatwiej byłoby się trzymać standardu CMake i z tego generować solucje VSa? Ew. korzystać z projektu który obsługuje CMake'a, coby inni mogli też skorzystać ;) (https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=vs-2019 (https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=vs-2019))
-
Do końca miesiąca będzie zmergowany mój kod.
-
W sensie repo tmj-a do głównego?
-
Tak, do tego z buildem cmake dla win/osx/linux.
-
Jest zmergowane do stanu repo tmj sprzed dwóch tygodni
https://github.com/Milek7/maszyna/tree/sim
Tymczasowo nie działa tryb OpenGL ES.
Nie wygenerowałem jeszcze nowych plików językowych więc tłumaczenie exe będzie niekompletne.
Jak są inne bugi to krzyczcie.
-
Zmergowałem ostatnie zmiany tmj, powinno być aktualne.
Zaktualizowane pliki językowe w załączniku (do katalogu lang/)
-
Wreszcie udało mi się podbić PKGBUILD dla dystrybucji opartych na Arch Linux: https://aur.archlinux.org/packages/maszyna-git/.
Generalnie wszystko działa, brakuje tylko natywnego startera. No i po instalacji paczki trzeba uruchamiać z katalogu /opt/maszyna i do tego przez sudo, ale jest postęp. Dziękl.
-
Na dzień dzisiejszy udało mi się poczynić wrappera w bashu, który linkuje niezbędne pliki i katalogi w katalogu domowym użytkownika i poprzez wine odpala starter windowsowy. Wygląda na to, że wszystko działa!
-
Panowie, dwa dni temu przesiedziałem nad próbą kompilacji forka tmj na pingwinie i prawie miałem tu zapytać o parę detali, ale nie dostaję powiadomień z tego wątku i nie wiedziałem żeście przez rok zrobili taki postęp. No szanowni... działa to elegancko! Stare błędy usunięte, odpalają się scenariusze które mi wcześniej nie działały, zmiany w simie na same plusy. Jestem pod wrażeniem! Gdzie mam nadać alkohole dziękczynne? :)