[Tutorial] Hinweise zum Crossplatform-Coden mit EET (BG1)

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.925
Dies ist kein vollständiges Tutorial zum Crossplatform-Coding für BG1, aber es kann noch wachsen. Falls Ihr Fragen habt, nur zu! Ich wollte vor allem den "neuen" Kandidaten EET vorstellen, für den man nochmal ein, zwei Extrasachen berücksichtigen muss.

Crossplatform-Coden hat das Ziel, das man alle BG1-Engines mit einem Set an Dateien gleichzeitig abdeckt. Ich denke ich muss niemandem die Vorteile erklären, wenn man nur ein Set an Dateien zu warten hat.

Link zum Crossplatform-Coden bei G3: Crossing the Great Divide, by cmorgan
Die dafür benötigten cpmvars.tpa-Dateien mit den entsprechenden Definitionen für Tutu, BGT und BG:EE gibt's in all meinen BG1-Mods und auch BG1NPC und bg1ub. Sie unterscheiden sich ein bisschen in der Auswahl der aufgenommenen variablen, aber nicht was den Inhalt/die Definition spezifischer Variablen angeht.

Die eet_cpmvars.tpa für die EET ist direkt im EET-Paket enthalten und kann direkt mit
Code:
INCLUDE ~EET/other/cpmvars/eet_cpmvars.tpa~
in einer Mod eingelesen werden. Es fällt also eine Datei im Modordner weg, die man mit updaten müsste.

Während in der BGT Dateien, die namensgleich in BGII auftauchten, meist mit einem vorgestellten "BG" getaggt wurden, so arbeitet die EET bei diesen Dateien mit einem angehängten "_" (Unterstrich). Die OUTER_SPRINT variable hierfür (aus den cpmvars.tpas) ist %eet_var%. Gerade die %eet_var% könnte in manchen cpmvars.tpa-Dateien noch fehlen, das müsstet Ihr dann ergänzen.

k4thos hat eine Liste zusammengestellt, welche BG1-Dateien in der EET anders heißen als in BG:EE. Er hat hier auch BGT mit aufgenommen:

BG1 Dateinamen Reference Table (vergleicht zwischen BG:EE, BGT, und EET).

Als Beispiel nehme ich mal die dlg "KNIGHT.dlg". Diese ist in BG_EE einfach "KNIGHT". In BGT ist sie "BGKNIGHT", und in der EET "KNIGHT_".
Geschrieben in Crossplatform-Variablen wäre das dann also: "%tutu_scriptbg%KNIGHT%eet_var%".

Hier noch ein Link zu sehr ausführlichen Hinweisen für das Modden von EET, von k4thos:
Modder's Notes for EET (von k4thos)
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.381
Weil es hier besser passt:

Was aus meiner Sicht an den cpmvars.tpa nicht so gut ist: fast jede Mod hat eine andere (die Bezeichnungen dürften schon identisch sein) und was darin ist, unterscheidet sich massiv. Was ich mir zur Übersicht wünschen würde wäre: eine *.tpa nur für areas (und entsprechend aussagekräftig benannt), eine für die scriptname etc. Und dann lieber für alle 3(?) Spielvarianten (bgee, bgt, eet) in einer Datei. Dann hat man nicht so viele tpa, aber wenn ich eine Area-Bezeichnung suche, finde ich sie schnell, weil ich nur in den ersten Teil der area-tpa reinschauen muss.

tutu wird halt (zu Recht) nur noch selten genutzt und ist aus meiner Sicht ein Artefakt.

Könnte ich mir vorstellen, dass ich das so für meine aktuellen Projekte umsetze...
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.925
Ich hatte meine mal von einem Anhang aus einem Thread der sich damit beschäftigte, entweder cmorgans Tutorial oder aus dem von CamDawg für das Modden der BG:EE. Später habe ich dann gesehen dass bg1npc eine andere verwendet, und noch später dass EET nochmal weitere Definitionen drin hat.
Aber wichtig ist, dass die eigentlichen Variablennamen beibehalten werden. Alles übrige ist eine Frage des Geschmacks. Ohne Tutu braucht man auch nicht die Arraskriptnamen als extra Variablen anlegen. (Mit der Funktion von DavidW auch nicht).
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.381
Hier mal eine Überlegung, die aber nur für BG1EE und EET funktionieren könnte. Um nicht dauernd Variablen nachschauen oder mir merken zu müssen, könnte ich mir für Areas und dlg-Namen folgendes vorstellen und dabei ausnutzen, dass ein System hinter der Umwandlung steckt:
Code:
BG1
OUTER_SPRINT ~AR~ ~AR~
OUTER_SPRINT ~_~ ~~

EET
OUTER_SPRINT ~AR~ ~BG~
OUTER_SPRINT ~_~ ~_~

Während das in meinem Verständnis für die Areas funktionieren müsste, weiß ich nicht, ob es für die Dialogdateien funktioniert, wenn man der Variablen %_% einen leeren Wert zuweist. Wenn hier noch keiner das ausprobiert hat, würde ich das demnächst mal testen...

edit:
Und nachdem ich mich für so genial gehalten habe, habe ich gerade nachgelesen, dass Jastey das oben eigentlich schon so definiert hat. Ich hatte allerdings die cpmvars.tpa irgendwie anders in Erinnerung. Zumindest die, die ich mal gelesen hatte ;)
Aber zum ersten Beitrag stellt sich die Frage: Was macht BGT wenn der Name der dlg 7 oder 8 Buchstaben hat? bzw. EET bei 8? Steht wahrscheinlich auch in einem der Links drin ;) (nachgeschaut, bei der EET sind es nur 2 Dateien mit 8, die gesondert gelistet sind).
 
Zuletzt bearbeitet:

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.925
Wo hast Du die verchiedenen Dateinamen nachgeschaut? Ich habe nur eine Liste von k4thos, die nur noch html-Code zeigt.
Und wo habe ich "AR" und "BG" definiert? Ich arbeite mit den cpmvar.tpa-Dateien, die die %Areanamen% verwenden.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.381
Du hattest "_" und "" definiert, was aus meiner Sicht das Schwierige war. Das andere ist ja vom Coding her eher trivial.

Die Abweichungen in der EET sind zwei cre für BG1 von Skeletten. Das steht in deiner html drin (Hinweise für Modder). Die html-Datei selbst findet sich im doc-Ordner der EET. Da kann man die sich alle lokal aufmachen und neben die anderen Ressoucen (IEDSP z.B.) im Browser hinsortieren, so dass ich da immer reinschauen kann.

Hier noch die Info selbst zur Abweichung der Dateinamen:
"Since the engine only supports 8.3 filenames, there are 2 resources that couldn't use this convention and adopted BGT one instead (skelwa02.cre => bgskel02.cre, skelwa03.cre => bgskel03.cre)."
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.381
Ich stelle hier mal eine Frage: eigentlich müssten doch alle BG1-Mods funktionieren, die man vor der EET-Konversion installiert und die native BG1EE Mods sind. Oder? Mod-eigene Bezeichnungen für Ressourcen werden nicht konvertiert, aber das braucht es ja auch nicht, die können ja bleiben und machen keine Konflikte mit BG2.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.925
Eiegntlich schon, sofern EET damit klarkommt, die Ressourcen richtig zu überführen. Das sollte aber eigentlich gehen, wenn die Mod entsprechend bei EET für die Konvertierung eingetragen ist.

Konflikte von BG1-Modressourcen in BGII kann natürlich schon passieren, wenn ein Modder da nicht aufgepasst hat und Namen doppelt verwendet.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.381
Ja, die compatibility.tpa muss man dann editieren. Aber wenn mit Präfix gearbeitet wird, sollte das passen. Denke darüber nach, beim nächsten Mal das Ayden Projekt zu installieren (Warlock NPC mit eigenem Kit).
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.925
Bei Kits und so habe cih natürlich keine Erfahrung. Ob man das so einfach importieren kann müsste man ausprobieren.
 

Morywen

Senior Member
Registriert
18.10.2017
Beiträge
2.716
Also Aura ging mit eigenem Kit und auch die NPCs von Skitia, als sie noch nicht EET nativ waren. Hin und wieder gibt es kleinere Probleme, aber richtige Crash habe ich noch nicht erlebt.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.381
Kits sind glaube ich kein Problem. Hatten wir mit Bristlelick auch schon.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.925
OK, gut zu wissen.
 
Oben