Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Reverse Engineering der NLT II
[English version]
Although this is a German forum, English comments are always welcome! That is why English comments also get English answers. For your acknowledgment: Each user sees when new posts appear in the English section of the forum. Just because this is very weakly frequented, a new comment is immediately noticeable. Anyone who is able will also try to answer there.

Your thoughts are clear and correct. I agree that there should be an "original" but based on the new code. But in several stages then more and more options and features should be switchable. That's what I would want, but what I want is not crucial. :D

[Deutsch Version]
Obwohl dies ein deutsches Forum ist, sind englische Kommentare immer willkommen! Deshalb bekommen englische Kommentare auch englische Antworten. For your acknowledgement: Jeder Nutzer sieht, wenn im englischen Teil des Forums neue Beiträge erscheinen. Gerade weil dieses sehr schwach frequentiert ist, fällt ein neuer Kommentar sofort auf. Jeder dem es möglich ist, wird dort auch versuchen, zu antworten.

Deine Gedanken sind klar und richtig. Auch ich bin der Meinung, es sollte ein "Original", aber auf Basis des neuen Codes, geben. Aber in mehreren Stufen sollten dann mehr und mehr Optionen und Features zuschaltbar sein. Das ist, was ich mir wünschen würde, aber was ich will, ist nicht entscheidend. :D
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Zitieren
Bin ja gerade dabei, die richtigen Texturdaten aus der Stadt-Definition zu laden. Dabei kam mir die Idee, einfach zwei Renderer zu basteln. Einen Vanilla-Renderer, der die Versatzstücke der Häuser einzeln und richtig in einem 2D-Fenster aufmalt, und den bisher vorhandenen 3D-OpenGL-Renderer, mit der Möglichkeit, on-the-fly zu wechseln.

Bei der Steuerung hab ich das jetzt nämlich so drin. Ein Tastendruck wechselt zwischen weichem Laufen und harten Schritten :)



Right now I'm developing a loader for the correct texture data from the city definition. During that I had the idea to create two renderers. A vanilla renderer, which paints the set pieces of the houses individually and correctly in a 2D window, and the existing 3D OpenGL renderer, with the possibility to switch on-the-fly.

That's actually how it works with the controls at the moment. One press of a button toggles between smooth running and hard steps :)
Zitieren
(23.04.2018, 15:49)Shihan schrieb: Gut, dass du das ansprichst, gaor!
Habe gestern Abend folgenden Fehler mit schick-data-gui gehabt (Win7, Python3.4): [...] Ideen?

Hallo Shihan, das liegt an der Python-Version. Diese Syntax wird erst seit Python 3.5 unterstützt (PEP 448). Könntest du möglicherweise ein Update machen? Ich würde diese Einschränkung dann in der README erwähnen. Denn wenn ich jetzt anfange, auf 3.4-Unterstützung umzubauen - wer weiß, wie viel ich dann noch ändern muss ;-)
Zitieren
(23.04.2018, 14:25)gaor schrieb: Ich habe für viele der Daten in der SCHICK.DAT schonmal ein Tool in Python geschrieben - auch für die Dialoge.
Ich habe Python 3.6 installiert, ob mit den nötigen Libraries, weiß ich nicht. Wie kann ich das prüfen? Die schickm.exe, die schick.dat und die symbols.h liegen im selben Verzeichnis wie das Script. Aber wenn ich auf das Script doppelklicke öffnet sich kurz ein schwarzes Fenster mit Schrift, das sich dann sofort wieder schließt. Habe ich etwas verkehrt gemacht oder fehlt etwas?
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Zitieren
Ich weiß nicht, was passiert, wenn man das Skript per Doppelklick öffnet, und würde empfehlen, es aus der Konsole zu starten. So sieht man auch die Fehlerausgabe, falls es Probleme geben sollte. Wie in der README angegeben, wurde es unter und für Linux programmiert. Andere Betriebssysteme habe ich selbst nicht.
Zitieren
@wiese.hano:
Code:
cd \<ORDNER_DER_PYTHON_INSTALLATION>\scripts
pip install numpy
pip install pillow
Damit habe ich die fehlenden Bibliotheken installiert.


@gaor:
So, habe Python nun auf 3.6.5 aktualisiert. Nun kommt folgende Meldung:
Code:
..
..
0xe5c6 != 0xe532
0xe5ca != 0xe536
0xe5cc != 0xe538
0xe5ce != 0xe53a
0xe5d2 != 0xe53e
0xe5d3 != 0xe53f
0xe5d5 != 0xe541
0xe5d7 != 0xe543
0xe5d9 != 0xe545
0xe5dc != 0xe548
0xe5e0 != 0xe54c
0xe5e4 != 0xe550
Traceback (most recent call last):
   File "schick-data-gui.py", line 36, in <module>
      schick_reader = SchickReader(schickm_exe, schick_dat, symbols_h)
   File "D:\dev\nlt\schick\schick-data-gui\schick\reader.py", line 54, in __init__
      self.init_palettes()
   File "D:\dev\nlt\schick\schick-data-gui\schick\reader.py", line 85, in init_palettes
      self.pal_special = parse_pal(self.get_var_bytes(self.get_var_by_name("PALETTE_SPECIAL"))) # 0xe0 (0x20)
   File "D:\dev\nlt\schick\schick-data-gui\schick\reader.py", line 162, in get_var_bytes
      return self.schickm_exe.read(length)
ValueError: read length must be positive or -1

Kannst Du damit was anfangen, gaor?
Ich werde die Tage mal näher reinsehen, wenn ich Zeit habe. Aber vielleicht habe ich nur Mist gemacht, deshalb kurz die Frage hier.
Zitieren
Ja, aber in welchem Verzeichnis müssen das Script und die anderen Dateien liegen, damit ich sie von der Python-Konsole aus aufrufen kann?
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Zitieren
Von der Python-Konsole aus rufst Du die gar nicht auf. Nimm die normale Windows-Konsole. Dann ab in das Verzeichnis, in dem das Skript liegt (und wo Du auch SCHICKM.EXE, SCHICK.DAT und symbols.h abgelegt hast) und dort dann:
Code:
python schick-data-gui.py
Zitieren
Ach, ich bin ein Schaf. Ich hatte die Offsets (in Bezug auf die Angaben in der symbols.h) schon vor langem geändert aber die Änderung nicht zu GitHub gepusht. Tut mir Leid! Mit der aktuellen Version sollte es gehen.
Zitieren
Alles klar! Nun läufts :D
Zitieren
gaor, kann es sein, dass Du bei der Automap ein wenig geschummelt hast? Für Thorwal bspw. werden einige Häuserfarben ja überschrieben :D
Ich geb zu, dass ich das in meinem Programm bisher (siehe Video) auch gemacht habe. Möchte nun aber die Stadtdaten richtig laden und merke, dass da gewisse Dinge nicht passen. So gibt es z.B. den Typ 0x11 in der Feldinhaltliste, der Taverne & Herberge zusammen darstellt. Der wird aber noch an ganz anderen Ecken genutzt.
Wenn man die Daten aus dem Wiki so verwendet wie beschrieben, passt es nicht ganz zum Ergebnis im Original-SCHICK.

Irgendwie scheint da noch was anderes zu passieren, bevor die endgültigen Häuserdaten feststehen...
Zitieren
(27.04.2018, 10:51)Shihan schrieb: gaor, kann es sein, dass Du bei der Automap ein wenig geschummelt hast? Für Thorwal bspw. werden einige Häuserfarben ja überschrieben :D

Nein, da ist nichts geschummelt, das ist alles dem Original-Code nachempfunden :)

https://github.com/Henne/Bright-Eyes/blo...4.cpp#L644
Zitieren
Wie geil ist das denn? Da wird schon direkt im Originalcode geschummelt :lol:
Gibt es doch gar nicht... aber gut, dann weiß ich Bescheid. Danke!
Zitieren
Es läuft jetzt. Ein Hinweis darüber, dass beim Setup Administrator-Rechte für die Konsole benötigt werden, wäre nett gewesen, aber gut. Das Programm startet jetzt, allerdings erscheint in der Konsole 2x folgender Text:
Zitat:No palette! Trying standard palette...
Ist das ok?
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Zitieren
Wie gesagt: Ich kann nur unter Linux testen. Da werden keine Administrator-Rechte benötigt. Auch unter jedem anderen Betriebssystem würde ich erstmal stark davon abraten, irgendwelchen Third-Party-Applikationen Administratorrechte zu gewähren, wenn man nicht versteht, wozu das gut sein soll.

Die Warnung zur Palette ist unbedenklich. Sie bringt zum Ausdruck, dass ich noch nicht komplett bei allen Grafiken herausfinden konnte, welche Palette im Spiel jeweils für die Farbgebung zum Einsatz kommt. Deswegen stimmen auch bei manchen Grafiken die Farben nicht.
Zitieren
Was mir zum Thema Modding noch einfiele, wäre ein "konfigurierbarer" Schwierigkeitsgrad, also z.B. LP der Gegner. Was für Werte spielen für die "Stärke" der Gegner programmiertechnisch eigentlich noch eine Rolle? Haben die prinzipiell dieselben Werte wie sie auch die Spieler-Charaktere haben?
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Zitieren
LE Mod klingt doch sinnvoll.

Abgesehen davon könnte man sich natürlich in dem Fall vom Remake inspirieren lassen und optional Hunger, Durst und Krankheiten deaktiveren. ;)
Zitieren
(27.03.2018, 17:38)Shihan schrieb: Also wäre noch vor einer solchen Entscheidung zu klären, wer überhaupt mitmachen will, ob wir daraus ein "offizielles" Projekt machen oder jeder für sich was macht, wer welche Vorerfahrung hat, wer was beisteuern kann und will,...


Äußert euch! :D
Nun, reizen würde es mich schon, aber ich fürchte, ich werde nicht die Zeit dazu haben. Ich hatte ja schon einmal meine Hilfe angeboten, da ist dann auch nichts draus geworden. Ich sag mal, ganz auschgeschlossen ist es nicht, dass ich mich in Zukunft am Projekt beteilige, aber rechnet erstmal nicht damit.
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Zitieren
Das Wiki auf bright-eyes.obiwahn.de ist momentan deaktiviert. Bei mehr Interesse kann ich es wieder aktivieren.
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Zitieren
Alles klar, danke für den Hinweis.
Bin gerade dabei, meinen alten Job abzugeben und dann bald den neuen zu starten. Daher gibts bei mir nix neues.
Mache aber ab und an ein paar Kleinigkeiten am Renderer. Eventuell nach dem Sommer wieder mehr :)
Zitieren




Benutzer, die gerade dieses Thema anschauen: 4 Gast/Gäste