Frage zu einer dll- Datei !!

Forum zum Thema Modding, um dort über "Neue Einheiten", Neue Objekte", "Modding Tools" usw zu diskutieren.
Antworten
Benutzeravatar
Leutnant Triebisch
Oberleutnant
Oberleutnant
Beiträge: 649
Registriert: 18.01.2006, 19:02

Frage zu einer dll- Datei !!

Beitrag von Leutnant Triebisch »

Hallo everybody,

Weiß jemand zufällig was genau die im Screen unten erwähnte
n2game_dll.dll darstellt und welche genaue Funktion diese Datei für das Spiel hat ?!!


Schönen Gruß von
Leutnant Triebisch
Dateianhänge
Ereignisanzeige_HSI_Match am 21.01.12.jpg
Ereignisanzeige_HSI_Match am 21.01.12.jpg (83.44 KiB) 7175 mal betrachtet
Was willst du denn mit der Axt ? - Oh, da muss ich etwas weiter ausholen...
Benutzeravatar
Tovarish
Oberst
Oberst
Beiträge: 1084
Registriert: 01.01.2003, 01:13

Re: Frage zu einer dll- Datei !!

Beitrag von Tovarish »

Die Datei ist ein Teil des Source Codes und regelt In-Game die Abläufe und Berechnungen der dazugehörigen C++ Befehle.
Deshalb ist sie auch die größte .dll-Datei im "code"-Ordner.

Das ist die Datei, die man als Modder gerne verändern würde, aber wer hat schon großartig Ahnung von Disassembling?
Das macht man ja nicht einmal während eines Informatik-Studiums.


Ein kleiner Einblick:
Dateianhänge
sourcecodesust.jpg
sourcecodesust.jpg (147.66 KiB) 6891 mal betrachtet
Benutzeravatar
Leutnant Triebisch
Oberleutnant
Oberleutnant
Beiträge: 649
Registriert: 18.01.2006, 19:02

Re: Frage zu einer dll- Datei !!

Beitrag von Leutnant Triebisch »

Servus Tovarish,

ist ein sehr interessante Sache zumal ja darin wie du schon sagtest der "Schlüssel" zum Glück für alle Sudden Strike-Fans liegt.
Ein Bekannter von mir (der leider wenig Zeit hat) hatte mir auch schon einmal die game.dll mit einem Viewer-Programm geöffnet und verschiedenes dazu erklärt. Auf meine Frage ob man da Änderungen machen könnte, meinte er auch dass auf jeden Fall kleine Änderungen eigentlich mit entsprechenden Hintergrundwissen umsetzbar sein müssten. Man muss dann halt nur wissen an welcher Stelle und den dazugehörigen anderen Stellen im Code man einen Eintrag/Wert ändert. Die Auswirkung der Änderung muss natürlich bekannt sein. So ungefähr hatte er sich ausgedrückt.

=> Entscheidend und ungemein wichtig dabei sind die Kommentierungen - die sind ja von den Programmierern (Fireglow) geschrieben worden um den Code besser zu strukturieren und spätere Änderungen/Ergänzungen einfacher durchführen zu können bzw. bestimmte Stellen im Code leichter auffinden zu können.
Allerdings weiß ich nicht ob die erst nach dem Dissamblieren sichtbar werden, denn dein Screen oben ist sicher eie Art von Hex-Editor. Weiterhin meinte er auch dass man auch auf andere Weise den Code "verbessern" kann - z.B. durch DLL-Injektion (eine Art von Codeergänzung). Andere Alternativen gibt es auch noch.

Kleine Änderungen wären ja z.B. dass gewisse Ressourcenlimits oder auch die zulässige Kartengröße (> 512 x 512) man ausdehnt und damit erweitert, konkret wären das Anzahl von setzbaren Häusern, Brücken und Einheiten => absoluter Traum dass man endlich diese Hürden beseitigt und auch die Anpassung der im Code hinterlegten Grafikanforderungen und DDR-Speichermöglichkeiten.
=> Man merkt dies ja daran dass bei viel Bewegung und Explosionen/Avtion auf dem Bildschirm das Game trotz neuester Hardware (die im Jahre 2001 bis 2003 noch nicht auf dem Markt war) leicht bis stärker zu laggen anfangen kann. Es fehlt eben im Sourcecode die Abstimmung auf die heutigen Hardwarestandarts und schon könnte ein manchmal noch auftretendes Ruckeln der Vergangeheit angehören und es können zeitlich mehr und größere Animationen gleichzeitig berechnet werden.

Das wäre auch sicher der einzige Weg (bis auf eine gänzliche Neuschreibung des Codes) das beliebte Sudden Strike & Co. den heutigen Wünschen und Bedürfnissen anzupassen. Außer natürlich die Russen oder andere Inhaber von Kopien des Codes rücken irgenwann diesen für die freie Entwicklergemeinde raus - dies ist durchaus üblich und keine Ausnahme und wird in vielen Fällen gemacht wenn ein Programm oder Spiel längst die kommerzielle Phase weit hinter sich gelassen hat und keine weiteren Neuerscheinungen in Aussicht sind. Außerdem wird in Russland gerade solche Rechtsfragen rund um Copyrigts/Urheberrecht/Verbreitung von geistigen Eigentum Dritter usw. nicht annähernd so streng gehandhabt wie in Westeuropa. Das Regelwerk für solche Sachen ist dort in keienr Weise so ausgearbeitet bis in den kleinsten Winkel wie bspw. bei uns oder den Staaten.


Schönen Gruß von
Leutnant Triebisch


P.S. Kannst du nochmal zu meiner PN vom 14.02. etwas schreiben. Danke dir im Voraus.
Was willst du denn mit der Axt ? - Oh, da muss ich etwas weiter ausholen...
Benutzeravatar
Gareth
Hauptfeldwebel
Hauptfeldwebel
Beiträge: 458
Registriert: 31.07.2006, 01:40
Wohnort: nicht mehr Dortmund
Kontaktdaten:

Re: Frage zu einer dll- Datei !!

Beitrag von Gareth »

Leutnant Triebisch hat geschrieben:Entscheidend und ungemein wichtig dabei sind die Kommentierungen - die sind ja von den Programmierern (Fireglow) geschrieben worden um den Code besser zu strukturieren und spätere Änderungen/Ergänzungen einfacher durchführen zu können bzw. bestimmte Stellen im Code leichter auffinden zu können.
Allerdings weiß ich nicht ob die erst nach dem Dissamblieren sichtbar werden, denn dein Screen oben ist sicher eie Art von Hex-Editor.
Ich zerstöre ja ungern Träume, aber wie schon oft festgestellt wurde: Ohne Zugriff auf den Quelltext von SuSt wird es wohl keine Änderungen und Ergänzungen geben. Dazu vielleicht kurz eine Erläuterung für Nicht-Programmierer.
Ein Programm wie SuSt wird i.d.R. in einer sogenannten höheren Programmiersprache geschrieben (z.B. C++). Das in dieser Sprache geschriebene Programm ist allerdings nicht unmittelbar lauffähig und muss daher von einem Übersetzungsprogramm (sog. Compiler) in die Maschinensprache des verwendeten Prozessors (in unserem Fall also x86-CPUs) übersetzt werden. Grob vereinfacht ist das Programm in Maschinensprache nur noch eine Wüste aus Nullen und Einsen, wobei jeweils eine bestimmte Kombination aus Nullen und Einsen für einen Maschinenbefehl oder, was die Sache zusätzlich verkompliziert, für einen Datenwert steht. Ob es sich um Befehl oder Daten handelt, ist nicht immer eindeutig feststellbar, denn die gleiche Kombination kann je nach Zusammenhang mal das eine, mal das andere darstellen.
Mit einem Disassemblierer kann man aus der Null-Eins-Wüste des Maschinenprogramms leider nicht den ursprünglichen Quelltext in z.B. C++ rekonstruieren, da man hierfür noch viele weitere Informationen über den Compiler kennen müsste. Möglich ist maximal das, was man in Tovarishs Screenie sieht: Eine Rückübersetzung in die sog. Assemblersprache. Vereinfacht gesagt ist Assembler einfach eine 1:1-Zuordnung zwischen den Maschinenbefehlen und den entsprechenden 0-1-Kombinationen. So wird z.B. in der ersten Zeile des Screenshots die Hexadezimalzahl 51 (in Binärdarstellung wäre das 01010001) in den Maschinenbefehl PUSH ECX übersetzt. Ich kenne mich mit der Maschinensprache der aktuellen Prozessoren nicht wirklich aus, aber ich vermute mal, dass der Inhalt des Registers ECX (ein prozessorinterner Zwischenspeicher) auf den Stack geschoben wird. Was aber gerade in ECX für ein Wert steht und was dieser Wert repräsentiert, das ist nicht ohne weiteres zu erkennen. Dazu müsste man den gesamten Assemblertext Schritt für Schritt abarbeiten und analysieren, was mal definitv keine Arbeit ist, die ich irgendwem empfehlen würde. Ich zitiere mal einen Artikel über Assembler: "Assembler ist eine notdürftig als Programmiersprache getarnte Löttechnik."
Erschwert wird die Analyse noch dadurch, dass - wie auch in dem Screenshot zu sehen ist - keine vernünftig interpretierbaren Variablennamen, sondern nur die Adressen von Speicherzellen rekonstruiert werden. Wo dann z.B. im Quelltext vielleicht so etwas wie maxNumOfHouses stand, findet man in dem Ergebnis des Disassemblers nur eine Adresse im Speicher wie DS:[EBX+25]. Ähnliches gilt für die von dir angesprochenen Kommentare. Vielleicht stand im ursprünglichen Quelltext der Kommentar "this is maximum number of buildings in game" neben der entsprechenden Programmzeile. Beim Übersetzen werden Kommantare vom Compiler aber ignoriert. Sie tauchen daher im Maschinenprogramm und folglich auch im Ergebnis des Disassemblers nicht mehr auf.
Im Endeffekt hat man dann Tausende und Abertausende von Assemblerzeilen ohne jeden Kommentar. Da die richtige Stelle für die Erhöhung von Einheiten- oder Gebäudelimits zu finden, dürfte die sprichwörtliche Suche im Heuhaufen sein.
Zuletzt geändert von Gareth am 01.07.2013, 11:01, insgesamt 1-mal geändert.
Free Ukraine from russian aggression!
Benutzeravatar
Leutnant Triebisch
Oberleutnant
Oberleutnant
Beiträge: 649
Registriert: 18.01.2006, 19:02

Re: Frage zu einer dll- Datei !!

Beitrag von Leutnant Triebisch »

Sei mir herzlich gegrüßt Gareth !

Besten Dank für deinen überaus hochinteressanten aber natürlich leider auch für mich ernüchternden Kommentar. Also kann man quasi doch nicht wenigstens einzelne Komponenten "verbessern bzw. erweitern" - sehr schade das ! :(

Allerdings müßte man doch nach sooo vielen Jahren seit Bestehen des Spieles "Sudden Strike" davon ausgehen können, dass man an entscheidente Teile des Quellcodes oder des vollständigen Hardcodes irgendwie herankommen müßte - theoretisch werden sicher viele Kopien dieses Codes "herumoxidieren", gerade im Hinblick darauf, dass in Rußland es mit vielen Dingen nicht so genau genommen wird. Dort bekommt man ja auch - so skurill das klingen mag - kaum Originale von Programmen oder Betriebssystemen. Ein früherer Bekannter von mir mußte immer mal wegen seines Russischsprachenstudiums in regelmäßigen Abständen u.a. auch nach Moskau bzw. auch in andere Gegenden des Landes. Er hat jedesmal reichlich für seinen Bedarf Software etc. von diversen Händlern mitgebracht, die es dort an jeder Ecke gibt - Auf die Frage von mir ob das denn Originale wären, kam nur ein müdes Lächeln. "Das wäre dort so normal und Originale kauft eh dort keiner" meinte er. Bei uns in Deutschland in jedem Fall undenkbar. Aber diese kleine Episode nur am Rande.

Bin deswegen weiterhin leicht optimistisch, da es doch irgendwie möglich sein müßte an eine Kopie des Quellcode dieses alten 2-D-Spieles heranzukommen. Wenn selbst heutzutage Staatsgeheimnisse und andere brisante Dinge an das Licht der Öffentlichkeit gelangen, die wirklich von viel höherer, immenser Bedeutung und teils sogar äußerst gefährlich für den Enthüllenden sind, dann sollte doch so eine kleine Sache wie ein unbedeutender Sourcecode zu bekommen sein. Dies ist ja auch schon mit anderen Programmen geschehen, welche dann nach Erscheinen aif dem Markt und dem Ende der sogenannten "Verwertungsphase" (welche bei 'Sudden Strike' schon lange Vergangenheit ist) von den ursprünglichen Entwicklern der freien Entwicklergemeinde zur Verfügung gestellt wird.

Menschenskind, das wär wirklich ein absoluter Traum... : :wink:


Beste Grüße von
Leutnant Triebisch
Zuletzt geändert von Leutnant Triebisch am 02.07.2013, 18:10, insgesamt 1-mal geändert.
Was willst du denn mit der Axt ? - Oh, da muss ich etwas weiter ausholen...
Benutzeravatar
Gareth
Hauptfeldwebel
Hauptfeldwebel
Beiträge: 458
Registriert: 31.07.2006, 01:40
Wohnort: nicht mehr Dortmund
Kontaktdaten:

Re: Frage zu einer dll- Datei !!

Beitrag von Gareth »

Leutnant Triebisch hat geschrieben: Bin deswegen weiterhion leicht optimistisch, da es doch irgendwie möglich sein müßte an eine Kopie des Quellcode dieses alten 2-D-Spieles heranzukommen. Wenn selbst heutzutage Staatsgeheimnisse und andere brisante Dinge an das Licht der Öffentlichkeit gelangen, die wirklich von viel höherer, immenser Bedeutung und teils sogar äußerst gefährlich für den Enthüllenden sind, dann sollte doch so eine kleine Sache wie ein unbedeutender Sourcecode zu bekommen sein. Dies ist ja auch schon mit anderen Programmen geschehen, welche dann nach Erscheinen aif dem Markt und dem Ende der sogenannten "Verwertungsphase" (welche bei 'Sudden Strike' schon lange Vergangenheit ist) von den ursprünglichen Entwicklern der freien Entwicklergemeinde zur Verfügung gestellt wird.

Menschenskind, das wär wirklich ein absoluter Traum... : :wink:
Auch wenn der Sourcecode noch so "unbedeutend" ist: Hierzulande würde man mit der Nutzung und Überarbeitung gegen geltendes Recht verstoßen, so dass der Traum schnell zu einem Alptraum werden könnte. Anders sieht das natürlich aus, wenn der Code von den Entwicklern selbst freigegeben würde. Das wäre in der Tat ein Traum! Aber ist es wahrscheinlich, dass das passiert? Der Anteil der Spiele, bei denen der Code tatsächlich irgendwann offiziell freigegeben wurde, dürfte sich eher im Promille- als im Prozentbereich bewegen. Bei Fireglow ist außerdem völlig unklar, wie der Zustand der Firma und des Dev-Teams ist. Womöglich existiert der Quelltext gar nicht mehr...
Free Ukraine from russian aggression!
Blado
Gefreiter
Gefreiter
Beiträge: 60
Registriert: 25.11.2011, 19:19

Re: Frage zu einer dll- Datei !!

Beitrag von Blado »

Hi Leutnant Triebisch.

Also ich habe auch schon nach dem Code gesucht. Weil ich gerne mal eine sehr große map machen wollen würde.
Ich bin der Meinung das man den Kontakt suchen sollte mit den damaligen Mitarbeitern von Fireglow!
"Magic Touch" scheint wohl so jemand zu sein. Nur bin ich kein Hacker oder NSA Mitarbeiter der seinen Realname geschweige denn Telefonnummer raus bekommen könnte.
Aber ich denke wenn ir uns mal zusammen setzen via TS dann könnte man doch einige in Erfahrung bringen.

Gruß Blado
Benutzeravatar
Fäby
Hauptfeldwebel
Hauptfeldwebel
Beiträge: 472
Registriert: 27.08.2009, 03:49
Wohnort: Golfsburg, Germany

Re: Frage zu einer dll- Datei !!

Beitrag von Fäby »

Blado hat geschrieben:...Ich bin der Meinung das man den Kontakt suchen sollte mit den damaligen Mitarbeitern von Fireglow!
"Magic Touch" scheint wohl so jemand zu sein. Nur bin ich kein Hacker oder NSA Mitarbeiter der seinen Realname geschweige denn Telefonnummer raus bekommen könnte....
Ein Blick in die Credits div. Sust Handbücher. Und schon hat man ein paar Namen von Fireglow. Vom Projektleiter, Programmierer, Grafiker etc....alles dabei.

Hier die Credits von SuSt2

Ausführender Produzent
Victor Vinokurov

Projektleiter
Vladimir Medeiko

Leitender Programmierer
Denis Konovalov

Programmierer
Alexey "Cupper" Naumov
Nick Kotlyarov
Oleg Semenov
Victor "BukTop" Bargachev
Victor Streltsov
Yuri "KilleR" Belotserkovsky

Grafiker
Alexey Bykov
Alexey Goussev
Alexey "Losidze" Krivorot`ko
Dmitry "Plastilin" Jempala
Ekaterina Krivorot`ko
Gleb "troublemaker" Kuznetsov
Gram Polupadlo
Roman "Popan" Barinov

So ein paar Namen (Szenario-Designer, Musik, Sound, Historische Beratung, Handbuch) fehlen noch, Sind aber glaube ich auch nicht so wichtig.
Einige davon waren auch schon bei SuSt1 und Forever dabei. Wie z.B. der Ausführende Produzent.
Hab mal ein paar Namen suchen lassen....welche wohl bei Facebook zufinden sind. :wink:
Bin selber bloß nicht bei Facebook angemeldet!


Grüße
Fäb
Antworten

Zurück zu „Alles zum Thema Modding“