Zod Engine

Bild des Benutzers meldrian

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.

Installation

Vorweg: Relativ einfach.

Das Paket herunterladen und die Abhängigkeiten erfüllen. Für Benutzer von Ubuntu sollte folgender Befehl, eingegeben auf der Konsole, Wunder bewirken:

sudo apt-get install libsdl-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libmysqlclient-dev libwxgtk2.8-dev

Im Anschluss sollte man das Spiel über "zod-launcher" starten können.

Wer unzufrieden mit der kompilierten Version ist, kann sich eigene binarys durch Kompilierung erstellen. Zusätzlich zu den im obigen Befehl genannten Abhängigkeiten werden hinzukommend die zugehörigen Developementpakete benötigt. Außerdem noch

sudo apt-get install build-essential

Zum Kompilieren der zod-engine wechselt man auf der Konsole in den Ordner zod_src und führt "make" aus.
Zum Kompilieren des zod-launchers wechselt man auf der Konsole in den Ordner zod_launcher_src und führt ebenfalls "make" aus.
Die dadurch entstehenden Dateien "zod" bzw. "zod-launcher" müssen im Anschluss aus den src-ordnern in das Hauptverzeichnis der zod-engine hineinkopiert werden.

Bei Fragen rund um die Zod-Engine wird der Gang zum Forum auf zod.sourceforge.net nahe gelegt.

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.

Anleitung für kranken Spaß

Ö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? Frei nach Gabba-Gandalf: "Geht voll ab Alter".
Achtung1: Sichert die default_settings.txt vorher.
Achtung2: Der kranke Spaß verliert schnell an Reiz, ist für den Moment aber sehr erheiternd.

Screenshots und Videos
manuel
Bild des Benutzers manuel
Offline
Beigetreten: 19.05.2008
Beiträge: 245

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 ?

meldrian
Bild des Benutzers meldrian
Offline
Beigetreten: 12.05.2009
Beiträge: 1538

Hi manuel,

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.

Edit: Ging schneller als erwartet.

manuel
Bild des Benutzers manuel
Offline
Beigetreten: 19.05.2008
Beiträge: 245

Hi Meldrian,

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

Any help appreciated

meldrian
Bild des Benutzers meldrian
Offline
Beigetreten: 12.05.2009
Beiträge: 1538

Ehm...

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.

manuel
Bild des Benutzers manuel
Offline
Beigetreten: 19.05.2008
Beiträge: 245

Hi

Nee die nomusic und nosound sind auf 0.

Die KI ist ja echt schwer....

meldrian
Bild des Benutzers meldrian
Offline
Beigetreten: 12.05.2009
Beiträge: 1538

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).

cubic23
Bild des Benutzers cubic23
Offline
Beigetreten: 07.03.2017
Beiträge: 1

Hallo,

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