Level-/Karteneditor für Historyline 1914-18

  • Hey,

    ein super Thema! Programieren ist zwar nicht mein Ding, aber wenn Du/Ihr vielleicht noch Unterstüzung gebrauchen könnt, z.b. Beta Testen oder so, gerne melden.

    Viel Erfolg, das Ergebnis würde mich sehr interessieren.

    Schönen Gruß

  • Am Wochenende hatte ich wieder ein bisschen Zeit mit HL rumzuprobieren. Also, die Reihenfolge der Gebäude in der .shp Datei scheint einfach ganz stumpf dem Aufbau der Karte zu folgen.

    Das erste Feld in den Kartendaten ist ja die linke ober Ecke der Karte, das zweite ein Feld weiter rechts usw. und so ergibt sich auch die Reihenfolge der Gebäude. Ausnahme sind nur die beiden HQs die meist als erste Gebäude gespeichert sind. Bei Fabriken/Depots scheint das Spiel einfach, wenn es beim Einlesen der Karte auf ein Feld mit einem entsprechenden Gebäudeeingang stößt, den jeweils nächsten Gebäudedatensatz aus der .shp einzulesen.

    Habe jetzt mit einem Hex-Editor mehere mini-Karten mit vielen Gebäuden erstellt und so funktioniert die Zuweisung der Datensätze in der .shp zu den Gebäuden reibungslos.


    Damit sind jetzt eigentlich alle wichtigen Punkte zum Aufbau der Kartendateien geklärt :)


    Jetzt müssen wir nur noch die Gelände- und Einheitengrafiken aus den Spieldateien bekommen und dann kann es losgehen mit dem Editor.


    Vielleicht sind das keine echten IFF Dateien, sondern nur die ILBM Chunks aneinandergereiht?

    So scheint es zu sein und das macht ja auch Sinn. Für einen Haufen identischer Grafiken braucht es ja nicht jedes Mal Header und Palette.

    Ich habe mir schon etwas Code zum Anzeigen von LBM/IFF Dateien zusammengesucht und werde bei nächster Gelegenheit damit mal ein bisschen rumprobieren.

    die HL.EXE ist auf jeden Fall (laut IDA) ein ungepacktes Borland (Turbo) C++ Kompilat mit 123 Segmenten - also Medium-Memory model oder höher

    der Copyright string "Borland C++ - Copyright 1991" in der Exe weisst auf auf Borland C++ 3.x hin

    Ja, die EXE scheint unproblematisch zu sein. Vielleicht hat ja jemand von euch etwas Zeit übrig und einen Dissassember/Debugger zur Hand und findet die Stelle, wo die .lib Dateien eingelesen werden?

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • Wäre es denkbar auch Grafiken und Werte der Einheiten anzupassen?

    Ich versuche ja gerade rauszubekommen, wie genau die Bibliotheksdateien mit den Grafiken aufgebaut sind. Wenn wir das wissen, sollte es kein Problem sein, Grafiken auch austauschen/verändern zu können.

    Gespeichert sind die Grafiken der Einheiten wohl in der UNIT.LIB im Unterverzeichnis LIB vom Spiel. Die Datei ist auch mit dem Turbo Packer gepackt, ich stelle nachher mal eine angepasste Version von meinem Entpacker hier ein, mit dem man auch so große Dateien entpacken kann. Die Grafiken vom Spiel scheinen alle mit Deluxe Paint am Amiga erstellt worden zu sein, bzw. liegen in dem Format vor.

    Die Schwierigkeit liegt darin, dass in der LIB Datei nur die relevanten Bildinformationen und nicht komplette Grafikdateien abgelegt sind. Man müsste sich also ein Tool schreiben, dass aus den Daten in den LIB-Dateien wieder komplette Bilddateien erstellt, die in einem Grafikprogramm (unter DOS z.B. Deluxe Paint IIe) bearbeitet werden können und das aus den gespeicherten Bilddateien dann auch wieder .LIB Dateien für History Line zusammenstellen kann. Das sollte machbar sein, aber erstmal der Leveleditor :)



    Wo die Werte der Einheiten abgelegt sind, weiß ich nicht. Da habe ich auch noch nicht nach gesucht. Vielleicht gibt es dafür sogar eine Datei, die (nach dem Entpacken) einfach mit einem Hexeditor angepasst werden kann. Oder die stehen als Konstanten in der EXE, könnte auch sein.

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • Auf ein HL39-45 habe ich auch immer gewartet, aber selbst wenn die Reihe von Blue Byte fortgesetzt worden wäre, hätte es das wohl nie gegeben.

    Im Handbuch zu HL 14-18 ist ja schon ein ganzer Abschnitt dazu, ob es vertretbar ist, dass ein deutsches Entwicklerstudio ein Spiel zum ersten Weltkrieg veröffentlicht und wo sie immer wieder betonen, wie sehr sie sich von Krieg und Gewalt distanzieren. Die hätten daher wohl nie das Thema zweiter Weltkrieg angefasst!


    Ich erinnere mich dazu auch an ein Interview mit Thomas Hertzler (Gründer von Blue Byte), das ich vor Jahren mal gelesen habe, wo er sagte, dass die darüber nachdachten die Reihe History Line mit den Kriegen Napoleons oder dem Dreißigjährigen Krieg fortzusetzen. Also mit Themen/Konflikten, die die großen amerikanischen Studios nicht so auf dem Schirm hatten und wo Blue Byte hätte eine Nische besetzen können. Hat man dann alles zu Gunsten von Battle Isle 2 verworfen, da das bessere Verkaufszahlen versprach.


    Kleiner Funfact als Edit hinterher:


    Bei TRSI war man sich anscheinend auch sehr sicher, dass ein zweites History Line kommt. Da wurde schon mal ein Cracktro vorbereitet :D

    https://www.youtube.com/watch?v=UD_qg0M1lUc

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • Hier eine schnelle quick'n dirty Version des Entpackers, um auch Dateien über 64 KB (z.B. die LIB-Dateien) entpacken zu können.

    Da ich zu faul war mit mehreren Buffern zu hantieren oder gar xms zu beanspruchen, läuft das Entpacken direkt in eine Ausgabedatei. Nicht komfortabel, verdammt langsam mit hohem Laufwerkszugriff, aber es funktioniert und zum Testen in DOSBox reichte es mir jetzt erstmal.

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • Zitat

    Hier eine schnelle quick'n dirty Version des Entpackers, um auch Dateien über 64 KB (z.B. die LIB-Dateien) entpacken zu können.

    Da ich zu faul war mit mehreren Buffern zu hantieren oder gar xms zu beanspruchen,

    warum keine native Win(Linux) Variante? muss die Entwicklung durch DOS Einschränkungen zusätzlich erschwert werden?

  • Zitat

    Hier eine schnelle quick'n dirty Version des Entpackers, um auch Dateien über 64 KB (z.B. die LIB-Dateien) entpacken zu können.

    Da ich zu faul war mit mehreren Buffern zu hantieren oder gar xms zu beanspruchen,

    warum keine native Win(Linux) Variante? muss die Entwicklung durch DOS Einschränkungen zusätzlich erschwert werden?

    Hmm.. Eigentlich einfach nur weil ich unter DOS angefangen habe, mir die Spieldateien anzusehen, damit rumzuprobieren und mir Tools dafür zu schreiben.:D Ich bin dann gedanklich irgendwie unter DOS geblieben.


    Bringt mich auch zu der Frage: Soll der Leveleditor ein DOS- oder Windowsprogramm werden? Also quasi als Tool, dass man auch auf 'nem 386er unter echtem DOS und direkt mit dem Spiel nutzen kann, oder als Windowsprogramm, was sich dann (auch für große Karten) natürlich sehr schön übersichtlich gestalten ließe?



    Wie seht ihr das?

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • Ich würde empfehlen es portabel zu halten, wenn möglich. So dass es auch unter Linux und macOS laufen KÖNNTE.


    Da würden sich ja verschiedene Sprachen anbieten. :)


    Selbst .net geht, da es ja auch runtimes für andere OS gibt...

    root42 auf YouTube


    80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, GUSar Lite & TNDY & SnarkBarker, PC MIDI Card + SC55 + MT-32, XT CF Lite, OSSC 1.6

  • Bringt mich auch zu der Frage: Soll der Leveleditor ein DOS- oder Windowsprogramm werden? Also quasi als Tool, dass man auch auf 'nem 386er unter echtem DOS und direkt mit dem Spiel nutzen kann, oder als Windowsprogramm, was sich dann (auch für große Karten) natürlich sehr schön übersichtlich gestalten ließe?

    Übliche Methode, wenn man keine spezifischen Systemfunktionen benutzt: Ein Kommandozeilenprogramm mit den Standard-Libraryfunktionen, das man sowohl unter Unix, AmigaOS, DOS oder Windows kompilieren kann – wozu künstliche Abhängigkeit. ;)


    Retro-Tip: Eine lustige altmodische Hilfe beim Portieren ist die Microsoft C Bible, die vergleicht die stdlibs von MS C, Turbo C unter DOS und altmodischen Unix-Compilern. Und sagt auch, wenn es etwas nicht gibt.

  • Ehrlich? Ein Hack der Spielebedienung wäre nice. Sieht aus wie das Spiel, ist aber der Level Editor. Space+Cursortaste greift halt nicht an, sondern verändert terrain, erstellt Gebäude oder placiert Einheiten.

    Das war in etwa mein usprünglicher Gedanke. Den Split-Screen vom Spiel nehmen, auf der rechten Seite können die Felder/Einheiten gewählt und dann links platziert werden. Und miit F1 wird nicht der Spielmodus, sondern zwischen Gelände une Einheiten umgeschaltet :D

    Da kommen dann nur so Fragen auf, wie denn der Wechsel von der Karte zur Feldauswahl gehen soll, wie man die Eigenschaften von Gebäuden festlegt und das ganze wird halt bei großen Karten mit dem kleinen Bildausschnitt schnell sehr mühsam.

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

  • So, habe gestern Abend schnell den Code noch ein klein bisschen angepasst und nun kompiliert auch alles ganz wunderbar mit Microsoft Visual Studio Community 2022 :D

    Anbei noch eine ZIP mit dem TPWM Entpacker als Konsoleanwendung für Windows (64 und 32 Bit) und den beiden Versionen für DOS. Quellcode ist natürlich auch mit dabei.

    Dateien

    Meine DOS-Rechner:

    Kleiner Industrie-486er mit 100 MHz (Intel 80486DX-4), 32 MB SD-RAM, Diamond SpeedSTAR 24 und SB 16 ( CT2770 ) + TNDY

    "Frankenstein" Pentium II mit 266 MHz, Elsa Winner 1000 TrioV + Voodoo I, SB 16 (CT2290) + Yamaha DB50XG


    Von mir geschriebene DOS-Programme gibt es hier.

    Einmal editiert, zuletzt von Dragonsphere () aus folgendem Grund: Leider hatte sich noch ein kleiner Bug eingeschlichen, daher Datei noch mal aktualisiert.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!