Projekt My Mod Manager

Status
Für weitere Antworten geschlossen.
E

Ehemaliger Benutzer

Gast
Mit My Mod Manager wird ein Problem bei Spielen unter Linux abgeschafft. Mit diesem Programm ist es nicht mehr nötig, Zeit darin zu investieren, die bereits vorhandenen Modmanager diverser Spiele unter Linux irgendwie zum Starten zu bringen.
My Mod Manager wird in C++ mit dem QT-Framework entwickelt und ist damit problemlos unter Linux ausführbar*. Die enthaltenen Funktionen und das Aussehen sind zu einem gewissen Grad von vorhandenen Modmanagern adaptiert. Trotz dieser Adaptionen wird My Mod Manager von Grund auf neu geschrieben. Es liegt kein Source-Code anderer Modmanager vor. Direkte Kopien finden nicht statt.


Funktionen

  • Unterstützung beliebiger Spiele: Nahezu jedes Spiel wird unterstützt.
  • Modifikationen installieren und deinstallieren: Modifikationen müssen momentan im 7z-Format vorliegen und ähneln dem Aufbau von Bash Installern (siehe Wrye Bash) stark. Diese Archive werden über ein beliebiges Packprogramm entpackt. Weitere Formate können daher folgen.
  • Einstellung: Für jedes Spiel können Spiel-Pfad (wohin die Modifikation kopiert werden soll), Mod-Speicherort (wo soll nach Modifikationen gesucht werden), Mod-Liste (wo ist die Mod-Liste, zum Beispiel die Datei "Plugins.txt" von TES 4: Oblivion), Entpack-Programm, Parameter (für das Entpack-Programm) sowie ein temporärer Ordner (wird zum Entpacken genutzt) separat eingestellt werden.
  • Anzeige verfügbarer Modifikationen: Im Spiel-Pfad vorhandene Modifikationen (zum Beispiel esm- und esp-Dateien bei TES 4: Oblivion) werden aufgelistet.
  • Anzeige des Inhalts der Mod-Liste
  • Aktivierung und Deaktivierung von Modifikationen, wenn möglich (z.B. beim TES 4: Oblivion)
  • Bearbeitung der Mod-Liste
  • Beachtung der Reihenfolge (siehe Spalte #) und Konflikte bei Mod-Installation: Vorhandene Dateien werden nur überschrieben, wenn die neue Datei von einer Modifikation mit höherer Wertung kommt.
  • Backup von Dateien, die überschrieben werden: Diese Backups werden bei der Deinstallation der Modifikation dann wieder zurück kopiert.

Was folgt noch?

  • OBMM-Skript-Interpreter: Damit sollte es möglich sein, entpackte OBMM-Dateien, welche über (komplexe) Skripte verfügen, installieren zu können. Dieser Punkt befindet sich momentan in Arbeit.


Galerie(anklicken zeigt ein größeres Bild ;))





______________________________________
* theoretisch auch unter Windows, wenn ich es vom Compiler entsprechend umsetzen lasse
 
Zuletzt bearbeitet von einem Moderator:
Also DICE! Ich muss sagen, DU bist der Programmierer von Scharesoft :-D Neuer Wind für Oblivion!
Ich finde gut, dass du dir die Arbeit machst, wobei es doch schon OBMM gibt (Linux?). Der ModManger scheint mir aber noch irgendwie komliziert^^ Aber ich denke, das wird sich schon geben.

Es wäre super, wenn du es auch für Windows machen könntest!

LG OblivionBee
 
Ich muss sagen, DU bist der Programmierer von Scharesoft :-D Neuer Wind für Oblivion!
Ich helfe mir halt, wo ich kann (Erklärung siehe unten).:lol:

Ich finde gut, dass du dir die Arbeit machst, wobei es doch schon OBMM gibt (Linux?). Der ModManger scheint mir aber noch irgendwie komliziert^^
Modmanager, nicht nur für Oblivion, gibt es wie Sand am Meer. Viele bekommt man unter Wine zum Laufen und kann sie dann auch unter Linux nutzen. Bei Oblivion käme für allerdings nur Wrye Bash in Frage, da ich den OBMM nicht mag. Dummerweise spinnt Wrye Bash bei mir seit neuestem und stürzt unkontrolliert ab. Was das für Folgen haben kann, wenn ich gerade eine Mod installiere, will ich gar nicht wissen. Außerdem ist Wine nun mal eben in gewissen Maßen ein Glücksspiel: Die richtige Wine-Version mit der richtigen Manager-Version plus X (was auch immer noch benötigt wird, z.B. irgendwelche Runtime Environments) und alles läuft spitze - oder eben auch nicht.
Genau deshalb entwickle ich diesen Modmanager. Der funktioniert mit Sicherheit, da die einzige Abhängigkeit das QT-Framework ist.
Außerdem will ich bei Skyrim Mods installieren können, ohne dass ich erst herum probieren muss. ;)

Und das Komplizierte legt sich mit der Nutzung. Die wenigsten Schaltflächen brauchst Du ständig. Was vielleicht verwirren kann, sind die Anzeigen, aber das kommt halt davon, dass ich Wrye Bash gewohnt bin.

Das Teil nachher für Windows zu kompilieren sollte eigentlich keine zu große Hürde sein, immerhin gibt es das QT-Framework auch für Windows.
 
Zuletzt bearbeitet von einem Moderator:
1.) Außerdem will ich bei Skyrim Mods installieren können, ohne dass ich erst herum probieren muss. ;)

2.) Das Teil nachher für Windows zu kompilieren sollte eigentlich keine zu große Hürde sein, immerhin gibt es das QT-Framework auch für Windows.

Zu 1: Das stimmt. Damit hast du das Problem ja quasi gelöst. Mit deinem feinem Programm kannst du so wie ich es verstehe, Mods für jedes Spiel installieren (Das Archiv muss halt richtig gepackt haben^^)

Zu 2: Wenn du es für Windows auch kompilierst, wirst du auf jeden Fall mehr Nutzer als nur für Linux haben, weil Windows einfach ein Quasi-Monopol hat - und damit mehr Nutzer als alles andere :-D
 
Eine wirklich bemerkenswerte Leistung! (wenn man bedenkt, dass ich es nicht einmal fertig gebracht habe, dass Oblvion unter Ubuntu läuft^^)
Wie auch immer, für Windows würde ich's sicherlich nutzen...
 
Ein schönes Projekt. Das sieht schon super aus und ich finde auch viel übersichtlicher als die anderen Modmanager.

Ich hoff dann mal auf eine Windowsversion. :lol:
 
So, ein kleines Update:
Es gibt nun eine Konflikt-Suche, welche Dateien auflistet, die eben auch in anderen Mods enthalten sind. Die Suche findet automatisch beim Auswählen einer Mod statt.
Ergebnisse können sein:

  1. Datei X: Mod Y hat höhere Zahl! -> Datei wird nicht installiert
  2. Datei X: Mod Y hat niedrigere Zahl! -> Datei wird überschrieben
  3. Datei X: Mod Y hat niedrigere Zahl -> Datei wird installiert
Ergebnis 1 und 2 werden angezeigt, wenn Mod Y den Status "installiert" hat. Ergebnis 3 wird angezeigt, wenn Mod Y zwar eine niedrigere Zahl hat, aber nicht installiert ist.

Des Weiteren habe ich eine an Wrye Bash angelehnte Archiv-Struktur entwickelt.
Es gibt einen Ordner "Core" sowie bis zu sechs Unterordner "X1_Name" bis "X6_Name", wobei Name beliebig ersetzt werden kann.

Mal anhand des Beispiels "The Forgotten DV":
Diese Mod enthält im Original einen Ordner ("Hauptordner", wenn ich mich nicht irre) mit den nötigsten Dateien und Ordnern, also z.B. die esp-Datei und die Ordner Meshes und Texturen. Außerdem liegen mehrere Ordner zwecks Körper-Kompatibilität bei: BAB, HGEC, ShinelessFaces, UFF, OrginalWeiblich, OrginalMaennlich.
Daraus habe ich für My Mod Manager nun folgende Struktur gemacht:

  1. Core: Enthält die Dateien und Ordner aus dem Hauptordner.
  2. X1_BAB: Enthält die Dateien und Ordner aus dem BAB-Ordner.
  3. X2_HGEC: Enthält die Dateien und Ordner aus dem HGEC-Ordner.
  4. X3_ShinelessFaces: Enthält die Dateien und Ordner aus dem ShinelessFaces-Ordner.
  5. X4_UFF: Enthält die Dateien und Ordner aus dem UFF-Ordner.
  6. X5_OrginalWeiblich: Enthält die Dateien und Ordner aus dem OrginalWeiblich-Ordner.
  7. X6_OrginalMaennlich: Enthält die Dateien und Ordner aus dem OrginalMaennlich-Ordner.
Ob einer dieser zusätzlichen Ordner installiert wird, kann über sechs entsprechende Checkboxen unterhalb der Dateiliste gesteuert werden.

Außerdem werden nun nun Dateien mit den Endungen doc, html, rtf, txt automatisch in einen Ordner "docs" im Spielverzeichnis installiert. Die Endungs-Suche arbeitet CaseInsensitive, sodass unter Linux auch TXT in docs installiert wird.
Ordner mit folgenden Bezeichnungen werden übrigens gar nicht erst erstellt und ihre Inhalte auch nicht installiert: Bilder, docs, Pics, pictures, omod conversion data.
Die einzige Ausnahme bildet der Ordner docs. Dessen Inhalte werden, wie einen Absatz weiter oben beschrieben, in den My Mod Manager-eigenen docs-Ordner kopiert.

Und nun zu euren Beiträgen:
Ich werde es heute oder morgen mal unter Windows probieren.

@SandraX: Wie genau stellst Du dir die Verwaltung vor? Mir fällt da spontan Folgendes ein:

  • "Aktivierung" bzw. "Deaktivierung" einer bestimmten Modliste und bestimmter Saves, abhängig vom gewählten Charakter.
  • Save-Management, also Kopieren, Löschen, ..., evtl. auch Editieren
Das sollte möglich sein. Oder hast Du was anderes gemeint?

Edit: Aktivierte und Deaktivierte Mods werden nun über Checkboxen neben den Namen angezeigt (wie zum Beispiel im CS, wenn man da eine esp-Datei laden will). Ist ein Haken dran, ist die Datei aktiviert.
 
Zuletzt bearbeitet von einem Moderator:
Kurzes Status-Update

Wie der Titel schon sagt, folgt nun ein kleines Status-Update.
Vorweg zwei neue Bilder (anklicken zeigt ein größeres Bild ;)):



Wie man sieht, hat sich ein bisschen was getan. Das Interface wurde mit ein paar Tabs vereinfacht. Auf der Startseite wählt man ein Spiel, kann die dafür geltenden Einstellungen ändern und jedes beliebige Spiel hinzufügen.
Hat man ein Spiel gewählt, erscheinen die notwendigen Infos, also Mods (installiert, nicht installiert, aktiv, Konflikte, ...) unter dem Tab "Mods". Unter Spielstände soll später eine einfache Oberfläche zur Verwaltung der Spielstände zu sehen sein.
Des Weiteren habe ich ein Menü hinzugefügt, über welches sich komfortabel alle oder nur fehlende Dateilisten erstellen lassen. Diese werden für die Konflikt-Suche benötigt.

Und zum Schluss noch ein paar git-Einträge, für den Fall, dass es jemand interessiert:

  • 24.06.11 9:10: Mods werden nach Ordner-Schema Xxxx\Xxxx kopiert. Der erste Buchstabe jedes Ordners wird groß geschrieben! Wichtig wegen Linux!
  • 24.06.11 10:40: Installation und Deinstallation von Mods läuft nun wie geplant.
  • 24.06.11 15:46: Interface geändert, TabWidget eingefügt.
  • 24.06.11 18:21: Fehlende oder alle Dateilisten können nun automatisiert erstellt werden.
  • 26.06.11 17:05: Konflikt-Check leicht geändert. Ist jetzt schneller.
  • 27.07.11 11.03: Problem mit großen Archiven (>= 1 GB) behoben
  • 07.07.11 17:39: Anfang für Konflikt-Check bei Installationen eingebaut. KEINE INSTALLATION ODER DEINSTALLATION DURCHFÜHREN!
PS: Für alle, denen es nicht aufgefallen ist: Die neuen Bilder haben einen typischen Windows-Fensterrahmen.;)
 
Hm, eine Frage hast du dir eigentlich überlegt, ob dein Modmamager evtl. auch die bisherigen OMODS verwenden könnte? Weil bei vielen eher kompliziert aufgebauten Mods, sind die Omod Versionen echt ein Segen, vor allem aufgrund ihrer Installationsskirpts.
 
Ja, da habe ich mir schon was überlegt. Ob es sich umsetzen lässt wird sich zeigen.

Gerade die von dir angesprochenen Skripte sind problematisch, da diese einen Interpreter erfordern würden. Bei Omods ist das Archiv selber auch noch ein Problem, da ich bisher nicht in der Lage war, eines ohne OBMM zu entpacken. Laut Anleitung handelt es sich um 7z-Archive, aber irgendwas macht Timeslip mit denen (muss mich mal mit ihm unterhalten), sodass ein einfaches Entpacken augenscheinlich in Daten-Schrott endet.
Alternativ wäre eventuell eine einfache Konvertierungs-Möglichkeit zur My Mod Manager-Struktur denkbar, wobei ich mir dann wieder überlegen müsste, wie ich die möglicherweise enthaltenen Skripte nutze.
 
Zuletzt bearbeitet von einem Moderator:
Backup-System

An die Kollegen: Verzeiht mir den Doppelpost, ich benötige Hilfe...

Es geht um das Backup-System.
Momentan erstelle ich, wenn eine Datei überschrieben werden soll einen Ordner mit ihrem Namen. Dorthin wird die zu überschreibende Datei verschoben, wobei sie auch gleich in "ÜberschreibendeMod.bak" umbenannt wird. Des Weiteren wird in einer Textdatei die Reihenfolge der Backup-Erstellung aufgelistet.

Ablauf:

  1. Mod "Test" will Datei "sword.nif" überschreiben.
  2. Es wird ein Ordner "sword.nif" im My Mod Manager Verzeichnis erstellt.
  3. Die Datei "sword.nif" wird in den eben erstellen Ordner kopiert und in "Test.bak" umbenannt.
  4. An den Inhalt der Backup-Liste wird "Test" (der Modname) angehängt.
Nun zum Problem: Wie soll ich das Backup wieder zurück kopieren?
Beispiel: Ich deinstalliere die Mod "Test". Es treten folgende Möglichkeiten auf:

  • Es gibt nur ein Backup - nämlich das der Mod "Test". Hier besteht kein Problem.
  • Die Mod "Test" steht am Ende der Backup-Liste für die Datei "sword.nif", wurde also als letzte Mod installiert. Auch hier besteht kein Problem.
  • Die Mod "Test" steht irgendwo zwischen anderen Mods in der Backup-Liste - "sword.nif" wurde also durch weitere Mods überschrieben. Hier gibt es ein Problem!
Bei der letzen Möglichkeit sieht die Backup-Liste also so aus:
Code:
TestDASFASD
Test
TestFAFLASKD
Test5
Würde ich das Backup, welches von Mod "Test" erstellt wurde, einspielen, sieht das Schwert (ich behaupte mal, dass "sword.nif" ein Schwert darstellt ;)) plötzlich anders aus, als von der zuletzt installierten Mod "Test5" vorgesehen.
Momentan biete ich in diesem Fall zu Testzwecken dem Benutzer die Möglichkeit, das zuletzt erzeugte Backup (also das von "Test5") einzuspielen - was aber später sinnlos ist, da das Schwert dann das Aussehen von der Mod "TESFAFLASKD" hätte.

Ich würde dem Benutzer gerne beliebig viele Backups anbieten - das geht ja bereits - da bei lediglich einem erlaubten Backup die Vanilla-Datei nach der zweiten überschreibenden Mod weg wäre.

Ich hatte bisher folgende Ideen:

  • Deinstallation der Mod "Test" komplett verhindern.
  • Mod "Test" deinstallieren, dabei das von "TestFAFLASKD" erstellte Backup (enthält ja die Datei aus "Test") löschen und den Benutzer über die Löschung dieser einzelnen Backup-Datei informieren.
  • Mod "Test" deinstallieren, dabei das von "TestFAFLASKD" erstellte Backup (enthält ja die Datei aus "Test") löschen und den Benutzer über die Löschung dieser einzelnen Backup-Datei nicht informieren.
Und was will ich jetzt von euch? -> Informationen
Was haltet ihr von dem Backup-System? Wo seht ihr Schwächen? Welche Lösung für mein Problem würdet ihr nehmen? Oder schlagt ihr sogar ein anderes System vor?
 
Also hast du einen Ordner mit allen Versionen der selben Datei. Wie sieht es denn aus, wenn du in den neuen Namen noch irgendwo die Nummer reinschreibst. (Also die wievielte Überschreibung es ist). Dann sollte es doch keinerlei Problme geben das Backup von "Test" zu löschen und das Backup mit der höchsten Zahl zu nehmen.
Tut mir wirklich leid, wenn ich irgendetwas außer Acht gelassen habe!
 
Ich kann mir vorstellen, dass der Ordner mit deinem MM irgendwann ziemlich überfüllt ist...
Danke für das Update! :):good:
 
Ja, der Ordner kann dann logischerweise ziemlich voll werden - vor allem, wenn man 20x den gleichen Replacer installiert :lol:. Eventuell sollte ich da noch eine Anzeige in das Interface einbauen, damit man ständig die Größe des Ordners im Blick hat.

@Schmelz:
Die Reihenfolge der Backups wird bereits über die Backup-Liste gespeichert, wodurch eine Nummerierung unnötig ist.
Allerdings geht deine Idee nicht auf. Ich weiß natürlich, welches Backup die Datei der Mod "Test" enthält und kann diese auch löschen und den Eintrag in der Backup-Liste entfernen.
Und nun zum Problem: Das Backup mit der höchsten Zahl kann ich nur nehmen, wenn die Mod "Test" als letztes installiert wurde. Ansonsten würde das letzte Backup nämlich die Datei der zuletzt installierten Mod überschreiben.

Logik: Installiere ich fünf Mods, die Dateien überschreiben, wird bei jeder Installation ein Backup angelegt. Deinstalliere ich jetzt Mod 3, muss ich das Backup, welches von Mod 4 erstellt wurde, löschen - dieses Backup ist schließlich die Datei aus Mod 3. Würde ich nun noch das letzte Backup einspielen, hätte man nicht die Datei aus Mod 5 sondern die aus Mod 4 - denn das letzte Backup enthält zwangsläufig die Datei aus Mod 4.

Momentan tendiere ich dazu, einfach kein Backup einzuspielen, wenn die zu deinstallierende Mod nicht am Ende der Backup-Liste steht. Am Ende der Deinstallation wird der Benutzer auf die nicht eingespielten Backups hingewiesen, sodass er selbst entscheiden kann, ob er noch welche einspielt oder nicht. Das scheint mir bisher zumindest die beste Lösung.
 
Status
Für weitere Antworten geschlossen.