- Symulator MaSzyna -
Symulator EU07 (i nie tylko) => Bieżące Symulatorowe => Wątek zaczęty przez: jacek_leszczynski w 07 Marca 2018, 16:23:40
-
Hej, witam wszystkich.
To pierwszy mój wpis na tym forum.
Mam pytanie do was, ludzi rozwijających ten niesamowity symulator.
Czy myśleliście, by wydać wersję natywną działającą pod Linux-em?
Pozdrawiam ciepło.
-
Aktualną paczkę w zipie możesz pobrać stąd, co by nie składać paczek 15.04 wzwyż ręcznie: http://eu07.pl/svnpak/maszyna-r2337.zip
Budowanie uniwersalnych binarek na linux to jest tragedia, więc trzeba sobie skompilować samemu: https://github.com/eu07/maszyna
Do tego przygotować katalog z pythonem (tu przykład z virtualenv dla 64bit)
virtualenv2 linuxpython64
source linuxpython64/bin/activate
pip2 install pillow
Mam zamiar to jakoś ładniej opisać i wstawić na główną, ale to jeszcze chwilę poczeka.
-
Będzie wtedy pole do dyskusji. Na razie ostatnia wersja nie działa.
-
Ale co nie działa?
-
Ostatnia wersja symulatora nie działa pod WINE. A jak widzę wersji linuksowej za bardzo nie ma.
-
Działa działa, wczoraj zainstalowałem najnowszą wersję wygenerowaną z repo i na ubuntu działa bez problemu.
-
Dzięki bardzo za linki, spróbuję sobie to skompilować.
(wersja pod wine działa i u mnie)
Dzięki, pozdrawiam.
-
Jeszcze co prawda nie próbowałem kompilować (z chęcią spróbuję :)), ale ponieważ niespecjalnie siedzę w kompilowaniu paczek - jak już uda mi się skompilować paczkę pod konkretną wersję systemu oraz architekturę (przykładowo Ubuntu 18.04 64-bit), to wtedy jest sens udostępniać tutaj na forum gotową paczkę, żeby ludzie mogli sobie pobierać? A jak np. bym miał czas i puścił kompilację pod kolejnym OS i architekturą (np. OpenSUSE Leap 42.3 32-bit), to też wrzucić jako kolejną dostępną wersję? ;)
-
Zwykle odpisujemy, że jak już będziesz miał ten materiał, to wtedy pytaj czy wrzucić na forum o ile chcesz się podzielić. Jeśli uzalezniasz swoją działalność od decyzji użytkowników forum, to nie ma sensu pytać. Nie wiadomo jaka wartość i efekt będzie miał efekt końcowy Twojej pracy.
-
Jeszcze co prawda nie próbowałem kompilować (z chęcią spróbuję :)), ale ponieważ niespecjalnie siedzę w kompilowaniu paczek - jak już uda mi się skompilować paczkę pod konkretną wersję systemu oraz architekturę (przykładowo Ubuntu 18.04 64-bit), to wtedy jest sens udostępniać tutaj na forum gotową paczkę, żeby ludzie mogli sobie pobierać? A jak np. bym miał czas i puścił kompilację pod kolejnym OS i architekturą (np. OpenSUSE Leap 42.3 32-bit), to też wrzucić jako kolejną dostępną wersję? ;)
Możesz wrzucić, może ktoś skorzysta.
Gotowe binareki to co jakiś czas buduję, tu ostatnia https://milek7.pl/.stuff/eu07exe/eu07_180401
zbudowane dla X11, wymaga pakietów ubuntu: freeglut3 libpython2.7 libpng16-16 libopenal1 libsndfile1 libluajit-5.1 libserialport0. (na innych dystrybucjach też zadziała, tylko trzeba znaleźć odpowiednie nazwy pakietów)
-
Dobra, dzięki za rzucenie tematu. To są same binarki (tak jak exe), a reszta symulatora jest wspólna z tego co rozumiem? Jeśli tak, to możnaby w sumie pomyśleć o dorzucaniu kiedyś do paczki różnych binarek, a sam download ze strony byłby uniwersalny w tym momencie na kilka platform. Ewentualnie, czy myślał ktoś w ogóle o sensowności repozytorium dla Linuxa, żeby szary zjadacz chleba mógł zrobić "sudo apt install maszyna" i niech się dzieje? Mogłoby to pozytywnie wpłynąć na rozpoznawalność symulatora, gdyby instalacja była tak prosta, a sam symek promowany jako OpenSource i w wersjach linuksowych :)
-
Jeszcze co prawda nie próbowałem kompilować (z chęcią spróbuję :)), ale ponieważ niespecjalnie siedzę w kompilowaniu paczek - jak już uda mi się skompilować paczkę pod konkretną wersję systemu oraz architekturę (przykładowo Ubuntu 18.04 64-bit), to wtedy jest sens udostępniać tutaj na forum gotową paczkę, żeby ludzie mogli sobie pobierać?
Ja se wtedy to Ubuntu postawię.
W sensie jestem za.
-
Dobra, dzięki za rzucenie tematu. To są same binarki (tak jak exe), a reszta symulatora jest wspólna z tego co rozumiem
Tak (a, no jeszcze trzeba wygenerować virtualenv z pythonem i pillow)
Ewentualnie, czy myślał ktoś w ogóle o sensowności repozytorium dla Linuxa, żeby szary zjadacz chleba mógł zrobić "sudo apt install maszyna" i niech się dzieje? Mogłoby to pozytywnie wpłynąć na rozpoznawalność symulatora, gdyby instalacja była tak prosta, a sam symek promowany jako OpenSource i w wersjach linuksowych :)
Jak ktoś zajmie się pakowaniem paczek na różne distra, to jak najbardziej. Tylko to też poczeka na autoupdater, bo przecież nie wepchniemy na repozytoria systemów paczki 2GB. (a opensource to jest główny kod, a content nie jest opensource w znaczeniu OSI)
-
To możesz zrobić nakładką. W sensie ściągasz sobie zwykła wersję a w repozytorium są tylko pliki właściwe dla Linuksa.
-
Próbuję skompilować MaSzynę pobraną z gita, zarówno na OpenSUSE Leap 42.3, jak i Ubuntu 17.10. Wiadomo - różnych paczek z "dev" w nazwie brakowało, ale do tej pory wszystkie brakujące składniki systemu udało się namierzyć i doinstalować. Ale z ustrojstwem poniżej mam bardzo duży problem - kilka paczek związanych z GLFW3 doinstalowywałem, ale dalej bez skutku i nie jestem w stanie skompilować MaSzyny ;) Macie może jakieś sugestie lub doświadczenia, co należy konkretnie zainstalować i jak? ;) Poniżej wyciąg z terminala:
czatowiec@czatowiec-E4310:~$ cmake maszyna
CMake Error at /usr/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find GLFW3 (missing: GLFW3_LIBRARIES)
Call Stack (most recent call first):
/usr/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE)
CMake_modules/FindGLFW3.cmake:74 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:159 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/czatowiec/CMakeFiles/CMakeOutput.log".
-
To co widać w komunikacie, FindGLFW3.cmake jest popsuty. Nie chciało mi się w tym grzebać. Albo go popraw albo wstaw bezpośrednio ścieżkę, np. -DGLFW3_LIBRARIES=/usr/lib64/libglfw.so (oczywiście z odpowiednią ścieżką)
-
Udalo mi sie skompilowac binarke, ktora zdaje sie dzialac, pod Debianem 9 x86_64. Instrukcja kompilacji i uzytkowania dla tego systemu, po mojemu:
1. Instalujemy CMake i inne potrzebne pakiety*:# apt-get install cmake-gui git libglew-dev libglfw3-dev freeglut3-dev libxmu-dev libxi-dev libpython-all-dev libglm-dev libopenal-dev libsndfile-dev libluajit-5.1-dev libserialport-dev freeglut3 libpython2.7 libpng16-16 libopenal1 libsndfile1 libluajit-5.1-2 libserialport0 virtualenv
2. Sciagamy zrodla:$ git clone https://github.com/eu07/maszyna.git
W biezacym katalogu zostanie utworzony katalog maszyna.
3. Odpalamy CMake (cmake-gui), jako lokalizacje zrodla podajemy utworzony w poprzednim kroku katalog maszyna, lokalizacja budowania binarek w zasadzie dowolna. Klikamy Configure, wywali blad, ze nie moze znalezc bibliotek GLFW3. W utworzonej przez CMake pozycji GLFW3_LIBRARIES wklejamy wartosc /usr/lib/x86_64-linux-gnu/libglfw.so, klikamy Configure jeszcze raz, a nastepnie Generate.
4. Zamykamy CMake. W lokalizacji budowy binarek wykonujemy:$ make
Utworzony zostanie katalog bin z binarka, nalezy umiescic ja w katalogu symulatora i upewnic sie, ze ma uprawnienia pliku wykonywalnego.
5. W katalogu symulatora nalezy utworzyc katalog linuxpython64:$ virtualenv linuxpython64
$ source linuxpython64/bin/activate
$ pip2 install pillow
EDIT 20190325: virtualenv odnosi sie do wersji Python 2.
6. Aby binarka linuksowa byla kompatybilna z Rainsted, nalezy pobrac wrapper: https://milek7.pl/.stuff/eu07exe/eu07.exe (https://milek7.pl/.stuff/eu07exe/eu07.exe), umiescic go w katalogu symulatora, nadac uprawnienia pliku wykonywalnego, zmienic nazwe na nazwe binarki.exe, czyli jesli nazwa binarki to eu07_180430, wrapper powinien nazywac sie eu07_180430.exe.
* jak czegos brakuje albo jest niepotrzebnie, krzyczec. ;)
POPRAWKA 20180618: Opisane akcje dotyczace CMake odnosza sie do cmake-gui.
-
Jeszcze tylko nie zapomnieć o -DCMAKE_BUILD_TYPE=Release, bo zbuduje bez optymalizacji.
-
Witam (bo jestem tu nowy),
Pamiętam Maszynę jeszcze z czasów, w których sporadycznie używałem Windy (lata temu). Ponieważ zauważyłem możliwość instalacji na pingwinie, pokusiłem się o takową. Niestety, wywala mi się konfigurowanie na " Policy "CMP0072" is not known to this version of CMake". Co nie dziwi, bo używam cmake 3.5.1, a wspomniana policy jest deprecated od 3.2 zdaje się. Dotyczy ona FindOpenGL. No, i teraz nie bardzo wiem co mam zrobić.
System ElementaryOS (taki wykastrowane i uładnione Ubuntu, które dzięki dodatkowym moim modyfikacjom niewiele odbiega od Debiana 9). Karta Nvidia 1080Ti z driverem nvidia390 (na wolnych nie chce chodzić).
Jak mogę sobie poradzić z tym problemem?
-
Właściwie z pierwszym krokiem sobie poradziłem szybko - w CMakeLists.txt zmieniłem cmake_policy(SET CMP0072 NEW) na cmake_policy(VERSION 3.0). I wszystko się skonfigurowało i zbudowało. Problem jest dalej z make. Sieje błędami, ale pierwszy z brzegu to
c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options
i pewnie powoduje kaskadę pozostałych. Gdzie i w ilu miejscach powinienem wrzucić "-std=gnu++11", może się ktoś orientuje?
-
Wymagany jest kompilator obsługujący c++14.
-
Mam gcc 5.4.0 . Od 5.2.0 jest wsparcie dla 14. Więc nie powinno być problemu.
Make protestuje, bo cmake z jakiegoś powodu nie dołączył gdzieś dyrektywy wymuszenia zgodności. Chciałbym wiedzieć, jak sobie z tym poradzić bez grzebania w bebechach. Na mój miałki rozum, to powinno być wymuszone na etapie konfiguracji (pewnie dyrektywą), ale cpp to nie moja bajka i nie znam biegle jego toolchaina.
-
Dodałem CMAKELISTS.txt:
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
ale błąd pozostaje ten sam.
Pierwszy błąd (który prawdopodobnie pociąga za sobą pozostałe) odwołuje się do /usr/include
In file included from /usr/include/c++/5/cstdint:35:0,
from /home/mark/apps/games/maszyna-build-new/eu07_pch/stdafx.h:39:
/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support \
Co robić, jak żyć.
-
Spróbuj wyłączyć pch (wyal #include(PrecompiledHeader) i add_precompiled_header(${PROJECT_NAME} stdafx.h FORCEINCLUDE SOURCE_CXX stdafx.cpp)).
-
Zmieniło się coś, ale nie na lepsze :) (próbowałem zarówno z poprzednio włączonymi opcjami, jak i bez nich). Wywala inne błędy. Detale w załączniku.
-
za stary kompilator i za stare libpng
-
Ok, właśnie instaluję nowsze (choć te powinny wspierać 14) i dam znać. Którą wersję libpng powinienem mieć?
-
Ok, zainstalowałem gcc/g++ 8.1 i dodałem do alternatyw jako domyślne. Zainstalowałem libpng16-dev. Dało to efekt - nie wywala błędów poprzednich, za to wywala nowe związane z GLFW:
/home/mark/apps/games/maszyna/Console.h:54:42: note: suggested alternative: ‘GL_TRUE’
if (glfwGetKey(Global.window, x) == GLFW_TRUE)
^~~~~~~~~
GL_TRUE
Wersja GLFW: libglfw3 (3.1.2-3)
-
No dziwne. Wstawiaj błędy razem z drzewkiem ścieżek na górze i jednostką kompilacji w której występuje.
-
To tradycyjnie daję w pliku, bo długie.
-
A z wyłączonym pch tak jak pisałem wcześniej to samo?
-
Identycznie.
EDIT: Jedyna opcja, której nie przywróciłem to cmake_policy(SET CMP0072 NEW), bo po jej przywróceniu wywala się tak jak poprzednio (dlatego zostawiłem statyczne cmake_policy(VERSION 3.0) ).
-
No tak, nie zauważyłem. glfw też masz za stare :) Potrzeba przynajmniej 3.2
-
Mam już 3.2.1. Poprawa - kompilacja doszła dalej niż poprzednio. Zwiecha na uart. Zainstalowałem libserialport z najnowszych źródeł. Poszło dalej aż do linkowania. I teraz jestem bez pomysłu. Zwiecha na "World.cpp:(.text+0x2505): undefined reference to `glfwGetKeyName'"
Detale w załączniku.
-
Chyba chce zalinkować ze starszą wersją niż masz nagłówki. Podaj mu ręcznie ścieżkę do .so w cmake w -DGLFW3_LIBRARIES=ścieżka/libglfw.so
-
Sprawdziłem to już wcześniej. Z nieznanych mi przyczyn, pomimo poprawnej instalacji libglfw kompilowane ze źródeł nie zapisuje biblioteki libglfw.so . Zadałem już pytanie na IRC i forum GLFW o co biega.
-
Poradziłem sobie instalując z deb wziętego z repo wyższej dystrybucji (EOS to stabilna Ubuntu 16.04, glfw 3.2.1 jest od 18.04). Niby nieładnie ale działa. Kompiluje się bezboleśnie.
Następne moje pytanie - skąd wezmę katalog gry? Próbowałem linku tego wątku, ale nic tam nie ma.
-
pobrać i wypakować w kolejności:
http://eu07.pl/theme/MaSzyna1803.zip.torrent
http://eu07.pl/theme/MaSzynaP1805.zip.torrent
http://eu07.pl/theme/MaSzynaP1806.zip.torrent
No i do tego katalog pythona tak jak opisany wyżej w tym wątku.
-
Dzięki za pomoc, wreszcie działa. No może nie do końca, ale siedzę już w środku lokomotywy. Sceneria się nie wyświetla, tzn. tor i mechaniczne gadżety tak, ale już drzewa nie (a w lusterku je widzę). Ale poza tym już działa, co oznacza, że się da. Na weekend jak znalazł. Jeśli mógłbym pomóc w czymś, to z pingwinem radzę sobie od dawna, w bash'u i make'ach mogę pogrzebać, z programowania py, różne ml, do cpp też mogę wrócić po latach, w blenderze mogę coś wymodelować. Oczywiście czas mam ograniczony, ale w wolnym, z sentymentu chętnie się czymś zajmę.
-
No to następna dziwna sprawa, bo powinno działać wszystko :/
Może kwestia starych sterowników do grafiki. (masz nvidia/nouvenau/amdgpu/radeon/intel?)
Możesz sobie znaleźć coś do roboty w exe, chętnie przyjmę pull requesty. Z pytaniami najlepiej przyjdź na #dev na czacie.
-
Mam nvidia 1080ti z własnościowymi sterownikami (nvidia390). Zwykle wszystko chodzi.
Dev z chęcią, ale tylko pod linuksem. Nie dotykam windy od dawna i mamdo tego lepsze powody niż pingwinowy fanatyzm :) . Gdzie ów czat znajdę, bo dopiero zaczynam się rozglądać?
-
Główne menu Forum, po prawej, przed "Wyloguj się". Albo: https://milek7.pl:8065/eu07/channels/town-square
-
Dzięki, robiłem ^F na głównej, a tutaj już na to nie wpadłem :)