Themabewertung:
  • 5 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Reverse Engineering der NLT
Kannst du das auch in Schweif? Oder ist das wieder ganz anders?
Hacke Tau, Kumpels!

Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?

Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
Das weiß ich gerade gar nicht. Eventuell geht das auch. Aber Schweif ist ja an Schick angelehnt (durch dieses Raster). Man könnte aber auch dafür ein 3D-Modell-Exporter schreiben, denke ich. Ist nur dann etwas anders als der hier.
Wow,

sehr geil. Ich würde mich freuen, wenn du uns über das Wiki an deinen Erkentnissen teilhaben lässt. :-D

Von meiner Seite gibt es leider nix neues zu berichten außer dass ich zum ersten Mal Riva spiele und die Atmo ganz toll finde. Nur habe ich das Gefühl, dass sich das Game im Vergleich zu anderen Teilen nicht "so groß" anfühlt. Das liegt wohl an der fehlenden Reisekarte. Dafür ist die Stadt sehr stimmig und wirkt irgendwie lebendiger.
(17.07.2014, 15:39)Lippens die Ente schrieb: Kannst du das auch in Schweif? Oder ist das wieder ganz anders?

Das würde mich auch interessieren. Ich habe mich bisher vergeblich mit den .3D-Dateien abgemüht. Das einzige, was ich herausgefunden habe ist, dass dort tatsächlich die 3D-Daten drin sind UND (das hat mich wirklich überrascht) auch Spiellogik: Wenn ich die 3D-Dateien von Praiostempel und Händlerzelt vertausche, ändert sich mit dem Aussehen auch die Funktion des Gebäudes.
Hallo, ich bin's - der Bart von Fidel Castro. Und mir ist total langweilich nie geschnitten wurde.
I'm a roleplayer. My dice are like my relationships: platonic and unlucky.
Was immerhin nahe legt, dass man Gebäude mit Funktion ändern oder dazuerstellen kann. Ein neues, nicht vorkommendes gebäude zu erfinden, ist aber wahrscheinlich schwer, wenn nicht sogar unmöglich, weil den Tempel und Händlern ja auch ein Sortiment und eine bestimmte Ansprechperson zugewiesen wird.

Das ist auch der gravierende Unterschied zu Schick, wo man problemlos jeden Gebäudetyp an eine beliebige Stelle einer Stadt holen kann und sogar die Landschaft gestalten kann.
Hacke Tau, Kumpels!

Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?

Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
(17.07.2014, 15:00)Shihan schrieb: Und zwar hatte ich im Objekt-Header einige Stellen mit "Unbekanntes Offset im Objekt-Eintrag" bezeichnet. Kurz geprüft, eines von denen ist die Face-Liste!

Habe mir dann eben Zeit genommen und meinen Exporter angepasst (der bisher nur Vertices konnte). Nun kann ich also auch Faces exportieren, d.h. damit ein komplettes 3D-Mesh.

Für die restlichen Offsets hätte ich noch ein paar Vermutungen anzubieten:

* Nebeldefinitionen
Wäre wohl am einfachsten zu prüfen, welcher Offset-Bereich in einer Umland/Statdt-Karte Werte besitzt im Gegensatz zu einer Dungeon-Karte. Wie wird der Nebel erzeugt? Transparente Textur? Ist der Nebel überall gleich auf einer Karte?

*Lichtdefinitionen
Oder wie werden die Flackeranimationen an Herbergen oder im Dungeon gemacht. Hängt vielleicht mit den Werten in der anderen Dateityp zusammen (*.DSC)

*Wasser

*Zweidimensionale Objekte wie Bäume und Sträucher. Diese drehen ja mit der Blickrichtung mit. Das sind auch die ersten Objekte die ausgetauscht werden müssten, wenn jemand vorhat, mal einen Mouselook zu implementieren. :pfeif:


(17.07.2014, 15:00)Shihan schrieb: Der Exporter ist noch ein wenig fehlerträchtig, insb. bei Riva oder dem Umland sieht man noch verdammt viele Lücken. Da muss ich nochmal reinsehen, woher das Problem jetzt kommt. Aber das wird auch noch werden ;)

Wo siehst du Lücken? Die schwarzen aufrechtstehenden Vierecke scheinen die Baum/Strauch-Texturen zu sein. Wo werden die eigentlich zugewiesen?
Entschuldigt bitte die Zitateschlacht, aber ich möchte keine tausend Posts hinternander hängen!


(17.07.2014, 22:51)Wetzer schrieb: sehr geil. Ich würde mich freuen, wenn du uns über das Wiki an deinen Erkentnissen teilhaben lässt. :-D
Da es nur eine Zeile im Wiki betrifft, ist das nicht wirklich schwer ;)



(17.07.2014, 22:51)Wetzer schrieb: Von meiner Seite gibt es leider nix neues zu berichten außer dass ich zum ersten Mal Riva spiele und die Atmo ganz toll finde. Nur habe ich das Gefühl, dass sich das Game im Vergleich zu anderen Teilen nicht "so groß" anfühlt. Das liegt wohl an der fehlenden Reisekarte. Dafür ist die Stadt sehr stimmig und wirkt irgendwie lebendiger.
Siehste, das geht mir genauso. Deshalb mache ich ja überhaupt was mit Riva. Das ist meiner Meinung nach aufgrund der Lebendigkeit der stärkste Teil von allen. Allerdings mag das jeder anders sehen!



(18.07.2014, 10:27)Hendrik schrieb: Das würde mich auch interessieren. Ich habe mich bisher vergeblich mit den .3D-Dateien abgemüht. Das einzige, was ich herausgefunden habe ist, dass dort tatsächlich die 3D-Daten drin sind UND (das hat mich wirklich überrascht) auch Spiellogik: Wenn ich die 3D-Dateien von Praiostempel und Händlerzelt vertausche, ändert sich mit dem Aussehen auch die Funktion des Gebäudes.
Ich finde das gar nicht so überraschend, dass hier auch Spiellogik drin ist. Man muss ja irgendwie die Logik reinbringen, d.h. "Beim Betreten von Haus A erscheint der NPC #123". In den 3DM-Files ist auch jede Menge Spiellogik drin. Das ist aber ganz normal, machen AAA-Titel auch nicht anders.



(18.07.2014, 16:35)Wetzer schrieb: Für die restlichen Offsets hätte ich noch ein paar Vermutungen anzubieten:

* Nebeldefinitionen
Wäre wohl am einfachsten zu prüfen, welcher Offset-Bereich in einer Umland/Statdt-Karte Werte besitzt im Gegensatz zu einer Dungeon-Karte. Wie wird der Nebel erzeugt? Transparente Textur? Ist der Nebel überall gleich auf einer Karte?
Der Nebel scheint konstant auf der Karte zu sein. Die Offsets, die ich meine, sind pro Objekt, d.h. man hätte für jeden Grabstein auf dem Boronsacker einen eigenen Nebelwert? Halte ich für ganz unwahrscheinlich. Denke mal, dass es eher ein konstanter Nebel bei Outdoor-Karten ist, der dann in der PPD- oder TAB-Datei kodiert ist.



(18.07.2014, 16:35)Wetzer schrieb: *Lichtdefinitionen
Oder wie werden die Flackeranimationen an Herbergen oder im Dungeon gemacht. Hängt vielleicht mit den Werten in der anderen Dateityp zusammen (*.DSC)
Könnte sein, dafür sind es aber meiner Meinung nach zuwenig Informationen! Ich denke mal, dass das eher woanders liegt.



(18.07.2014, 16:35)Wetzer schrieb: *Wasser
Ist nur eine Textur, die animiert ist. Klärt sich wahrscheinlich mit den anderen Infos zur Animation auf. Das vermute ich hier mal nicht.



(18.07.2014, 16:35)Wetzer schrieb: *Zweidimensionale Objekte wie Bäume und Sträucher. Diese drehen ja mit der Blickrichtung mit. Das sind auch die ersten Objekte die ausgetauscht werden müssten, wenn jemand vorhat, mal einen Mouselook zu implementieren. :pfeif:
Der Mouselook ist ja fast vorhanden (nach unten und oben schauen geht ja). Das ist gar nicht mal so schwer.
Was du meinst, ist richtiges 3D, ohne die Billboards (die Objekte, die sich mitdrehen). Das ist dann eine Frage an 3D-Modellierer ;) Sobald die Objekte vorhanden sind, kann man sie auch einbauen.



(17.07.2014, 15:00)Shihan schrieb: Wo siehst du Lücken? Die schwarzen aufrechtstehenden Vierecke scheinen die Baum/Strauch-Texturen zu sein. Wo werden die eigentlich zugewiesen?
Die Lücken sind bspw. beim Riva-Bild das offene (graue) Dreieck am unteren Ende der Brücke. Das ist ein Fehler meiner Software, an dem ich noch arbeiten muss.

Die Billboards verhalten sich ganz normal, was Größe (Vertices, Faces) angeht. Ich denke, dass ich auch den Materialien-Block im Objekt gefunden habe, also der Block, in dem steht, was das Objekt als Textur verwendet. Das muss ich aber noch verifizieren.


Mal sehen, wann ich weiter daran arbeiten kann.
Was mir beim spielen von Riva auch noch aufgefallen ist:

Es gibt ja solche "Cutscenes": Die Spielerkamera wird automatisch bewegt. Zum Beispiel(ich hoffe, spoilere nicht zu sehr):
* Kanalisation (Flucht)
* Zwergenmine, Level 1, durch den eingefallenen Stollen um in Level 2 zu kommen.
* Zwergenmine, die "Rutsche".
* Zwergenmine ganz am Ende vor der riesigen Tür (Richtung Ausgang). Hier scheint mit es so zu sein, dass man auf eine "Triggerfläche" (man kann von verschiedenen Seiten an die Tür laufen) läuft, dann an einen bestimmt Ort geführt wird und von da aus ein festgelegter Weg "abgespult" wird. Beim Eintritt in die Kammer kann man bei großen Helden sehen, dass es eine Anpassung der Höhe beim Durchtritt durch die Tür gibt und eine Korrektur hinter der Tür wieder auf "Heldenhöhe". Danach macht man noch eine Drehung und einen kleinen Weg Richtung Altar. Diese letzte Drehung ruckelt ein wenig. Das lässt mich vermuten, dass diese in Weg- und Rotatekoordinaten festgelegt ist und nicht dynamisch berechnet wird (Wie vermutlich die Ausrichtung beim Betreten der Triggerfläche beim Verlassen der Kammer).
* Verfolgung bei Nacht in Riva

Diese Waypoints der Kamerbewegung (YXZ der Kamera, XYZ vom "Kamera look at")müssen auch noch irgendwo stehen, oder?

Ich habe einen entsprechenden Spielstand der Zwergenmine angehängt.


Angehängte Dateien
.zip   ZMINEEND.zip (Größe: 39,63 KB / Downloads: 0)
Ja, wunderbar! In den 3DM-Files ist noch ein ganzer Block ohne Sinn :) Siehe 2.4 im Wiki, Artikel 3DM.
Da habe ich auch schon gesehen, dass bspw. in der Mine Zahlen drin sind, während in der Markthalle keine sind. Vielleicht ist das was. Schau' Dir das dochmal ruhig an! Vielleicht kannst Du ja was herausfinden.
Zu dem unbekannten Datenblock in den 3DM-Dateien hab ich minimale Fortschritte erzielt.
Die Anzahl der Einträge steht auch im Header und jeder Eintrag ist 88 Byte groß. Meistens sind die ersten 3 Einträge leer also bestehen nur aus Nullen.
Interessant sind die anderen Einträge. Es sieht so aus als würden sie mit einem 4 Byte Offset starten, es wird auf Daten verwiesen die jeweils eine größe von 11 Byte haben müssten. Darauf folgen drei Bytes die immer oder zumindest meistens auf 1 stehen gefolgt von einem weiteren Byte das immer 0 ist.
Der Rest unterscheidet sich ziemlich voneinander. Einige Werte sehen nach IDs aus, andere nach Offsets oder Koordinaten. Auch werden nicht bei allen Einträgen alle Bereiche genutzt.
Mit ziemlicher Sicherheit kann ich ausschließen, dass es sich um Daten für Truhen handelt.

In der Stadt Riva gibt es 13 Einträge, 10 davon mit Daten. Boronsacker 5 davon 2 mit Daten. Gruft unter dem Boronsacker 15 davon 12 mit Daten.
Vielleicht hab ihr eine Idee.

Eine Kleinigkeit noch zu den ACE-Dateien.
Es scheint als würde die Zuordnung wirklich über das Label bzw. die Kenn-Nummer der Sequenz laufen. Es sollte so ca. 200 unterschiedliche geben. Die hohe Zahl kommt dadurch zustande, dass die meisten Aktionen für alle Richtungen dargestellt werden. Wir bräuchten also mittelfristig eine Liste welches Label für welche Aktion steht.
Mir ist außerdem aufgefallen, dass es teilweise mehrere Werte für Action innerhalb einer Sequenze gibt. Das würde aber nur Sinn machen wenn diese Werte etwas auslösen also quasi als Action Frame fungieren.
Mh.. auf dem Boronsacker gibt es keine Cut Scenes, oder?

Vielleicht hat es ja was mit verändernbaren 3D-Objekten zu tun? So wie das Grab im Boronsacker finden oder das Regal abfackeln unterhalt des Ackers.
In Schweif bin ich mir ziemlich sicher, dass die Feldinhalte mit der Gebäudefunktion in der SUBLOCS.DAT stecken, weitere Informationen werden aus den spezifischen Gebäudetypdateien zugeordnet. Vielleicht kann man ja doch ein neues Gebäude mit Funktion einbauen.
Hacke Tau, Kumpels!

Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?

Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
Ja habe ich alles hier beschrieben.

Es fehlt also "nur" noch die Zuordnungstabelle in der Schweif.exe.
Ok, wenn die exe auch noch eine Rolle spielt, haben wir noch etwas zu tun. Das Aussehen der Gebäude müsste wieder woanders festgelegt sein, in Schick sind es auch zwei Paar Stiefel, aber doch einiges leichter, da hier die exe keine Rolle spielte. Wird wohl ähnlich schwer wie die restlichen Kämpfe zu finden (Schick+Riva sind alle Kämpfe identifiziert) zumindest die Monster-IDs sollten zu finden sein.

Aber irgendwann kriegen wir das raus, das weiß ich.
Hacke Tau, Kumpels!

Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?

Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
Naja ein großes Rätsel sind halt noch die 3D-Dateien. Soweit ich Hendrik verstanden habe, gibt es dort Teile die ebenfalls für die Zuordnung sorgen. Könnte also sein das man die Schweif.exe nicht benötigt oder aber das man alle 3 verändern muss. Also die Sublocs.dat, die betreffende 3D-Datei und Schweif.exe.

Ich habe die Monster-IDs nicht finden können. Ich vermute inzwischen fast, dass die fehlenden Kämpfe nochmal komprimiert wurden und wir sie deshalb nicht so einfach finden. Vorallem da es ja einige Blöcke gibt die ähnlich aussehen, nur viel zu klein sind. Wie gesagt schau dir den Arkandor Block an ;)

Edit:
Das eigentliche Aussehen der Gebäude wird über die 3D-Dateien definiert. Wo sich das Gebäude befindet läuft über die CYB und die Automap über MAD.
Nur um das nochmal zusammenzufassen.
Meinst du die Stelle, wo rechts Arkandor zu lesen ist? Das ist meiner Meinung nach das Rätsel der Dämonensäule und nicht der Kampf.
Welches byte meinst du?

Vielleicht sind die Kämpfe die fehlen ja als Feldinhalte der Dungeonfelder definiert ?!
Hacke Tau, Kumpels!

Ihr seid Freunde der alten NLT? Freunde des Mikromanagements? Ihr sucht eine neue Herausforderung, weil euch die NLT zu leicht war?

Dann spielt doch mal Schicksalsklinge HD 1.36 von Crafty Studios!
(08.08.2014, 15:35)Lippens die Ente schrieb: Meinst du die Stelle, wo rechts Arkandor zu lesen ist? Das ist meiner Meinung nach das Rätsel der Dämonensäule und nicht der Kampf.

Ich habe es mir gerad angesehen, passt sehr gut zusammen mit den 4 bzw. 5 Säulen. Halte es daher auch für sehr wahrscheinlich.
Super Sache :ok:


(08.08.2014, 15:35)Lippens die Ente schrieb: Vielleicht sind die Kämpfe die fehlen ja als Feldinhalte der Dungeonfelder definiert ?!
Welche genau meinst du?
Soeben habe ich mein Werk der letzten Monate gepusht.
Die meiste Zeit habe ich am Kampfsystem gearbeitet, welches sich mir allerdings noch nicht erschliesst.
Deshalb haben einige Funktionen und Variable etwas kryptische Namen,
welche später noch durch lesbare und sinngebundene Namen ersetzt werden.

Fertiggestellte Segmente:
  • seg037: "KI" der Gegner
  • seg045: Kampfanimationen

Sonstiges:
  • Zauberspruch: Exposami

Behobene Fehler:
  • Falsch erkannte Felder, Fluchtfeld wird mit Held verwechselt

Viel Spaß,
Henne
Cool.

Sind die Segmentnummern Deine eigene Aufteilung, tatsächliche Segmente des Binaries oder logische Einheiten. :think:
Neue Version vom 11.08.2014!

Bitte den Kampf testen! :)

P.S.: Das Wiki sollte jetzt wieder etwas schneller laufen. Mehr Serverleistung. ;)
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)




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