Die Zod Engine ist ein Remake des Echtzeitstrategieklassikers Z der Bitmap Brothers aus dem Jahr 1996. Man muss mit seiner mehr oder weniger kompetenten Roboterarmee Flaggen und damit Gebiete einnehmen, die dann Einheiten produzieren können. Ziel ist die Zerstörung des Forts des feindlichen Generals.
Das Remake funktioniert unter Windows und Linux. Es ist als Multiplayer-Spiel ausgelegt und erfordert einen lokalen oder Remote-Server. Man kann gegen menschliche Gegner als auch KI-Gegner spielen.
Status
Zod Engines letztes Release für Linux stammt von 2011. ZED Online, welches auf der Zod Engine basiert, wird dagegen aktiv Betreut.
Installation
Vorweg: Etwas umständlich, jedoch prinzipiell einfach.
Leider wird das Projekt nicht mehr aktiv gepflegt, man kann sich allerdings eine funktionierende Version selbst basteln. Dies ist allerdings mit den Jahren immer schwerer geworden.
Um die ausführbare Datei zu bauen, greift man auf einen etwas aktuelleren Fork der Engine zurück oder muss den letzten Snapshot des Zod Engine HG Repo laden. Die binary aus dem fertigen Paket zum Download lässt sich, Stand Mai 2020, unter aktuellen Distributionen weder ausführen noch aus den darin enthaltenen Quelldateien ohne weiteres bauen. Das fertige Paket sollte man aber trotzdem laden um den Launcher zu haben. Dieser ist im Fork und dem Snapshot nicht enthalten.
Für den grafischen Launcher, der den Spielstart sehr vereinfacht, sollte man die letzten Quellen der originalen Portierung Paket herunterladen und die Abhängigkeiten zum selbst kompilieren erfüllen.
Nach dem Laden und Entpacken obiger Dateien besitzt man also mindestens 2 Ordner. Einen der "zod_launcher_src" für den Bau von "zod_launcher" enthält und einen mit "src" der alles wichtige für den Bau der "zod"-binary enthält.
Für Benutzer von Ubuntu sollte folgender Befehl, eingegeben auf der Konsole, Wunder bewirken und alle Abhängigkeiten zum Bau beschaffen:
Um den "zod_launcher" selbst bauen zu können, muss man zuvor die in die Jahre gekommene Datei zod_launcherFrm.cpp im Ordner "zod_launcher_src" anpassen. Die dort bereits existierende Textzeile 251 mit dem Inhalt "check.replace(i,1,1,'_');" muss gegen nachfolgenden Abschnitt ersetzt werden:
check.replace(i,1,1, (wxUniChar)'_');
Dies funktioniert ohne weiteres mit jedem herkömmlichen Texteditor und bedarf keiner höheren Berechtigung.
Auf einem Terminal navigiert man in den Ordner "zod_launcher_src" hinein ...
cd /pfad/zu/zod_engine/zod_launcher_src
und setzt dort den Befehl make ab.
make
Bei erfolgreicher Kompilierung erhält man eine neue Datei "zod_launcher" die man später aus dem Ordner zod_launcher_src heraus kopieren sollte um sie mit der Datei "zod" zusammen zu führen.
Um den "zod" zu bauen navigiert man in den weiter oben genannten "src" Ordner ...
cd /pfad/zu/zod_engine/zod_src
und führt den ebenfalls den Befehl zum Bau der ausführbaren Datei aus.
make
Die aus diesem Prozess entstandene Datei "zod" kopiert oder verschiebt man in das darüber liegende Verzeichnis.
Wechselt man auf dem Terminal ebenfalls eine Ebene nach oben, befindet sich also auf der Ebene in der "zod" liegt, kann man das Spiel bereits aus dem Terminal heraus über
./zod
starten.
Minimalisten können auf den Launcher verzichten und ./zod direkt unter Angabe von Optionen aus dem Terminal heraus starten. So startet ...
./zod -l map_list.txt -t red -r 800x484 -b blue
Das Spiel mit der Levelliste des Originals von damals, der Spieler hat die Teamfarbe rot, das Spiel wird in 800x484 Pixeln in einem Fenster ausgeführt und der einzig gesetzte Gegenspieler ist die A.I. (Bot) mit der Farbe blau.
Wer auf Komfort nicht verzichten möchte, der kopiert den weiter oben genannten "zod-launcher" in das gleiche Verzeichnis wie die Datei "zod" und startet seine Gefechte über diese grafische Oberfläche.
Vielen Dank für den heilbringenden Hinweis geht an den User cubic23, der sich scheinbar extra hier auf Holarse angemeldet hat um uns diesen Hinweis in Kommentarform zu hinterlassen Ebenfalls vielen Dank an @Le_bottin_des_jeux_linux@mastodon.social aus dem Fediverse, der uns im Mai 2020 den entscheidenden Hinweis gegeben hat um diese Anleitung erneut so anzupassen, dass Zod-Engine erneut auf aktuellen Systemen ausführbar wird.
Single Player starten
Wenn der zod-launcher gestartet wurde, klickt man unter "preset settings" auf "Local Game". Dadurch werden alle Einstellungen zum Starten der Einzelspielermissionen angewendet. Enzig den Wert für die Auflösung (Resolution) sowie die darunterliegenden Einstellungen sollte man eines weiteren Blickes würdigen.
Wer seine favorisierten Einstellungen angelegt hat, wirft vor dem Start noch einen letzten Blick auf den Punkt "Launch Game" bzw. "---Command Arguments---". Wenn man den jetzt dort hinterlegten Befehl kopiert und in ein Script oder eine Desktop-Starter verpackt, kann man zukünftig für Singleplayerspiele den Launcher außen vor lassen.
So startet der Befehl
./zod -l map_list.txt -n zlover -t red -r 1024x768 -b blue
den Singleplayer in der Auflösung 1024x768. Der Spieler heisst "zlover" und geladen werden alle Maps der Singleplayerkampagne. über "-b blue" wird der blaue Computergegner hinzugefügt. Das hinzufügen eines andersfarbigen Gegners oder das wechseln der eigenen Farbe ist nicht möglich. Wählt man für sich selbst die Farbe gelb, ist man im anschließenden Spiel nur noch Zuschauer.
Leider ist Speichern, Laden oder das Aufrufen des Menüs noch nicht verfügbar.
K.I.
Ungelogen, Spiele gegen die künstliche Intelligenz sind Knüppelschwer. Ich kann mich noch daran erinnern, dass Z vor langer Zeit nicht wirklich einfach war. Spiele ich die Level heute mit der Zod-Engine nochmal kommen mir die Spiele von damals wie ein Kinderspiel vor. Die Frage ist: Liegt das jetzt an mir oder an der Zod-Engine?
Abzüge gibt es leider auch für die eigenen Einheiten. Zu oft bleiben die Robots neben Granatenboxen, Fahrzeugen oder Flaggen stehen ohne sie aufzunehmen oder zu besetzen. Die Konsequenz: Spielt man unachtsam laufen die eigenen Einheiten an wichtigen Schlüsselpositionen vorbei damit sich Sekunden später der (Computer-)Gegner daran bereichert.
Auffallend anders
Nicht nur die Auflösung hat sich geändert. Im Moment scheint es, gewollt oder nicht, so zu sein das Einheiten an einigen Stellen durch/über Berge und Gebäude schießen können. Ein im Originalspiel von 1996 geschickt platziertes Geschütz hinter einer Steinmauer stellt in der Neuauflage bisher keinen taktischen Vorteil dar. Panzer und Granaten der Fußeinheiten werden einfach durch/über die Wand geworfen. Was bei den Granaten nachvollziehbar ist, widersetzt sich bei geradeaus schießenden Panzern und Flammenwerfer-Bots der Physik.
Spielinhalte verändern
Öffnet die Datei default_settings.txt und verändert die Bauzeit, die Angriffsstärke, die Reichweite, ja sogar die Gruppengröße eurer Einheiten beliebig ab. Schonmal eine schnelle Party mit 10 Mann großen Grunt-Gruppen gespielt?
Achtung1: Sichert die default_settings.txt vorher.
Achtung2: Variablen sollten mit Bedacht angepasst werden. Extreme Werte liefern interessante Ergebnisse, verlieren aber schnell ihren Reiz.
alle erforderlichen Abhängigkeiten installiert & in geeigneter Version?
Ich weiß, ist wie unter Win-Systemen die "neuste Treiber?" Frage, meistens überflüssig.
Trotzdem.
Wenn ich die Zeit finde ergänze ich den Artikel heute noch um die gewünschten Infos.
Also ruhig im Laufe des Tages nochmal vorbei schauen.
Danke für die infos. Klar alle libs sind drauf und ich hab auch den neuesten Treiber drauf der in debian sid verfügbar ist.
Ich hab keinen Sound beim spielen und keine Musik. Auserdem geht kein menu auf wenn ich da drauf klicke.
Fehler:
could not load:assets/sounds/music_arctic.ogg
could not load:assets/sounds/music_city.ogg
ZTeam::Could not load palette for the null team:'assets/teams/null_palette.bmp'
map_data_size:14934
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
graphics loaded
NextInMapList::returning 0 'level_orig1.map'
socket connected:127.0.0.1
socket connected:127.0.0.1
socket connected:127.0.0.1
ServerSocket::CheckConnects:client connected:127.0.0.1
socket connected:127.0.0.1
ServerSocket::CheckConnects:client connected:127.0.0.1
map_data_size:14934
could not load:assets/sounds/music_arctic.ogg
could not load:assets/sounds/music_city.ogg
ZTeam::Could not load palette for the null team:'assets/teams/null_palette.bmp'
map_data_size:14934
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
could not load:assets/units/vehicles/medium/top_pop_n180.png
graphics loaded
Glaub die Meldungen haben nicht soviel zu sagen.
Ich hab Ton. Die Buttons sind, bis auf die unten links, alle noch funktionslos im Moment.
Check mal deine zod_launcher_settings.txt ist da nomusic und nosound auf 1? Nichts für ungut, ich rate nur.
Die mitgelieferten ausführbaren Dateien "zod" und "zod_launcher" funktionieren unter aktuellen Distributionen (Ubuntu 14.04+) nicht mehr, da sie gegen mittlerweile nicht mehr vorhandene Bibliotheken gebaut wurden.
Navigiert man in den Ordner "zod_src" bzw. "zod_launcher_src" kann man dort via "make" neue ausführbare Dateien erstellen, welche gegen die installierten neueren Bibliotheken gelinkt werden.
In einem Testfall funktioniert dies mit dem Quellcode unter "zod_src", jedoch nicht mit dem unter "zod_launcher_src". Meldung
michael@Ubuntu1604v:~/projekte/zod_engine/zod_launcher_src$ make
g++ -g -o zod_launcher *.cpp `wx-config --cppflags` `wx-config --libs`
common.cpp: In function ‘void COMMON::print_dump(char*, int, char*)’:
common.cpp:145:30: warning: '0' flag ignored with precision and ‘%x’ gnu_printf format [-Wformat=]
printf("%0.2x ", message[i]);
^
zod_launcherFrm.cpp: In member function ‘void zod_launcherFrm::ResetCommandLine()’:
zod_launcherFrm.cpp:251:33: error: call of overloaded ‘replace(unsigned int&, int, int, char)’ is ambiguous
check.replace(i,1,1,'_');
^
In file included from /usr/include/wx-3.0/wx/memory.h:15:0,
from /usr/include/wx-3.0/wx/object.h:19,
from /usr/include/wx-3.0/wx/wx.h:15,
from zod_launcherFrm.h:19,
from zod_launcherFrm.cpp:11:
/usr/include/wx-3.0/wx/string.h:2913:13: note: candidate: wxString& wxString::replace(size_t, size_t, size_t, wxUniChar)
wxString& replace(size_t nStart, size_t nLen, size_t nCount, wxUniChar ch)
^
/usr/include/wx-3.0/wx/string.h:2977:13: note: candidate: wxString& wxString::replace(size_t, size_t, const wxString&, size_t)
wxString& replace(size_t nStart, size_t nLen,
^
makefile:2: die Regel für Ziel „default“ scheiterte
make: *** [default] Fehler 1
Schade. Ich vermute, dass es mit dem Umstieg von wx28 auf wx30 zu tun hat (habe aber diesbezüglich wenig bis keine Ahnung).
das Problem ist in der Tat durch die neue Version wx3.0 entstanden, kann aber sehr einfach behoben werden:
Zeile 251 der Datei zod_launcherFrm.cpp mit check.replace(i,1,1, (wxUniChar)'_'); ersetzen, dann kompiliert der Launcher wieder.
Die Pakete (z.B. für Ubuntu 16.04) sind nun über den folgenden Befehl zu installieren: sudo apt-get install libsdl-image1.2-dev libsdl1.2-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libmysqlclient-dev libwxgtk3.0-dev
Hallo, das Kompilieren klappt leider nicht. Ich bekomme die gleiche Fehlermeldung trotz ersetzen der Zeile 251 in der Datei zod_launcherFrm.cpp mit check.replace(i,1,1, (wxUniChar)'_');
Das anschließende make gibt folgendes aus:
g++ -g -o zod_launcher *.cpp `wx-config --cppflags` `wx-config --libs`
common.cpp: In function ‘void COMMON::print_dump(char*, int, char*)’:
common.cpp:145:30: warning: '0' flag ignored with precision and ‘%x’ gnu_printf format [-Wformat=]
printf("%0.2x ", message[i]);
^
Auch die oben genannten Pakete habe ich installiert (sudo apt-get install libsdl-image1.2-dev libsdl1.2-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libmysqlclient-dev libwxgtk3.0-dev)
Mein System: Kubuntu 18.04 Linux 4.15.0-34-generic #37-Ubuntu SMP Mon Aug 27 15:21:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Schade, ich hatte gehofft alte Erinnerungen wiederaufleben zu können ;-)
Vielleicht kann jemand helfen (der sich mit Kompilieren auskennt)
Welches Release hast du genau genommen? Ich hab den Quellcode aus dem Repository ausgecheckt und es lässt sich damit kompilieren, der Launcher scheint da aber nicht bei zu sein.
In diesem Wiki kann jeder registrierte Benutzer alle Artikel bearbeiten und/oder neue Artikel anlegen. So könnt ihr über euer Lieblings-Linuxspiel berichten, oder anderen eure Tricks zukommen lassen, wie ihr ein Spiel unter Wine zum Laufen bekommen habt.
Hi
Wie kann man den lokal (gegen bots) spielen ? Ein howto wäre nett. Danke
Bei mir hat der launcher immer nix angezeigt (Text) woran liegt das ?