[Dev Thread / Preview] Mod Manager

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Dev Thread / Preview] Mod Manager

      Hallo

      Da ich gefragt wurde ob das auch mal für andere Addons funktionieren wird.
      Die Entwicklung des Mod Manager ist sehr stark am Anfang. Bevor jemand anderes oder Colossal Order/Paradox wieder etwas zeigt, werde ich auch diesmal eine Art Tagebuch / Bericht der laufenden Arbeiten schreiben.

      Eine Alpha Version kann man sich unter cim.bytetransfer.de/modmanager/ herunterladen,
      Änderungen werden hier im Beitrag genannt.

      Ein Repository gibt es hier:
      cim.bytetransfer.de/repo/cim.repo

      [gallery]1177[/gallery]

      Die Todo Liste:
      - Baue einen funktionierenden Mod Manager
      - Abhängigkeitsauflösung, laden von Mods in der richtigen Reihenfolge.
      - Update des Installers aus meiner Quad U-Bahn Station (Big Underground Metro Station) und als API in den Mod Manager einbauen.
      - Entladen von Mods, deaktivieren und aktivieren mit eigener API, reload zum entwickeln.
      - Auto Updater aller U-Bahn Station

      - Neue Versionsseite für Mods per Ingame Link aufrufbar. (Da werden den die Versionen übermittelt)

      Version 2:
      - Einstellungsfenster für Mods
      - Bundle Installer, mehr Mods in einer GS Datei
      - API zum Ändern von CIM Dateien wenn CO mir die nötigen Infos bzw. technischen Mittel raus rückt.

      Das ist alles noch in Planung für eigene Mods, sollte die API Stabil genug sein, kann jeder wenn er möchte die Mods so vertreiben oder eben auf eigene Gefahr und ich ändere noch etwas. Wie bei TTDPatch wird es wohl aber immer ein Kompatibilitätsmodus geben.
      Die Mods werden nicht in Addons installiert, daher kann ein Mod auch beide Möglichkeiten unterstützen.

      Und ja, ich bin mit UI noch nicht wirklich glücklich.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von eis_os ()

    • Es gibt einfach ein paar Sachen die nicht anders gehen, Beispiel ich habe mir die Markierung des Tram Endteils geändert, damit die Richtung besser erkennbar ist.
      Da es im Object Script über eine Funktion gesteuert wird, gibt es keine andere Möglichkeit da eine Funktion per Laufzeit nicht überschrieben werden kann. (Ich hab da ne Menge Sachen ausprobiert) .

      Wenn Du mir ein System aufzeigen kannst wie ich eine Funktion per Hook oder ähnliches ändern kann, lass es mich wissen. Und ich hab wirklich schon viele Sachen gemacht um auch ja nichts an den Original Dateien zu ändern.
      Beispiel der "Big Metro Station" Installer zeigt Fenster im Hauptbildschirm an als Overlay, das war wirklich nicht einfach zum laufen zu bekommen, aber es geht und kostet jeweils gemittelt ein Sonntag Freizeit...

      Auch ich bin der Verfechter das man keine Original Dateien ändern sollte, wenn es irgendwie anders geht.

      -edit-
      Ohh, und wenn ich von ändern spreche, meine ich natürlich nicht die eigentliche metro.gs/object.gs Datei zu ändern, sondern eine ungepackte Kopie in den Metro Ordner zu legen...

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von eis_os ()

    • Natürlich bin ich auch ein Gegner vom Verändern des Originalordners, also der Verwendung des metro-Ordners. Jede andere Mod zerschießt zwangsläufig den Vorherigen, wenn nicht die Alt-Dateien angepasst werden.
      Allerdings gibt es natürlich auch die guten Ausnahmen. Der CIM-CAM ist das beste Beispiel. Der ließ sich nun mal nicht so nebenbei im Addonordner packen.
      Nun ist meine Frage: Wie sieht es mit der Pflege solcher Dateien aus? Eigentlich müsste irgendein Mod-Team oder sonstwer sich mit der Anpassung solcher derartigen Dateien beschäftigen. So, wie es bei SC4 mit dem NAM passiert. Egal, wer was moddet, muß es erst einmal zur englischsprachigen SC4D-Site schicken, damit nicht schwerwiegende Bugs und Vergnatzung der Gamer die Folge sind.
      Zum Modding habe ich auch noch eine weitere Frage, welche offenbar auch Änderungen am Metro-Ordner zur Folge haben könnten, welche ich aber unbedingt vermeiden möchte! Das aber in einem anderen Thread .
      Meine Workshop-Schmiede auf STEAM

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ArkenbergeJoe ()

    • ArkenbergeJoe schrieb:

      Natürlich bin ich auch ein Gegner vom Verändern des Originalordners, also der Verwendung des metro-Ordners. Jede andere Mod zerschießt zwangsläufig den Vorherigen, wenn nicht die Alt-Dateien angepasst werden.
      Allerdings gibt es natürlich auch die guten Ausnahmen. Der CIM-CAM ist das beste Beispiel. Der ließ sich nun mal nicht so nebenbei im Addonordner packen.
      Nun ist meine Frage: Wie sieht es mit der Pflege solcher Dateien aus? Eigentlich müsste irgendein Mod-Team oder sonstwer sich mit der Anpassung solcher derartigen Dateien beschäftigen. So, wie es bei SC4 mit dem NAM passiert. Egal, wer was moddet, muß es erst einmal zur englischsprachigen SC4D-Site schicken, damit nicht schwerwiegende Bugs und Vergnatzung der Gamer die Folge sind.
      Zum Modding habe ich auch noch eine weitere Frage, welche offenbar auch Änderungen am Metro-Ordner zur Folge haben könnten, welche ich aber unbedingt vermeiden möchte! Das aber in einem anderen Thread .


      Wenn ich von API spreche, meine ich das in einer weise die das ändern einer Datei von mehreren Mods möglich macht, indem jeder Mod per Script API die Änderungen macht. (das macht auch klar das man da nicht ganze Romane ändern kann, sondern nur neue Funktionen hinzufügen oder mal einen Teil auskommentieren, wie haben ja nur begrenzte String Routinen). Das hat bei TTDPatch auch recht gut mit Maschiencode funktioniert, kommt aber auf die Disziplin der Mod Autoren an, wenn X Y zerbröselt, geht das natürlich nicht. Aber Teile wie hoverinfo können einfach nicht extern um neue Funktionen ergänzt werden.

      Eine Möglichkeit zu definieren ob eine Mod ID mit einer anderen nicht harmoniert, damit es da keine Kollisionen gibt ist auch schon geplant.
    • eis_os schrieb:

      Ohh, und wenn ich von ändern spreche, meine ich natürlich nicht die eigentliche metro.gs/object.gs Datei zu ändern, sondern eine ungepackte Kopie in den Metro Ordner zu legen...

      dagegen ist natürlich absolut nicht einzuwenden ;)

      einen Weg Funktionen neu zu definieren kenn ich auch nicht, geht vermutlich halt einfach nicht.
    • Leider geht das alles viel langsamer als ich gerne hätte.

      Als Beispiel die Toolbar Buttons, CIM ist nicht wirklich ausgelegt das man Mods auch während des Spiels entlädt.

      Kleines Status Update:
      - Mod Manager im Start und Pause Menu aufrufbar
      - Lade Management
      - (Nach)Laden von Mods
      - Entladen von Mods
      - Noch kein Laden von Map Mods, Objekten und ne ganze menge anderes Zeugs :(

      Daher werde ich erstmal das Laden/Entladen auf eine spätere Version verschieben.

      Eine ModID ist ein eindeutiger Name, ohne Version

      Es wird eine modid.modinfo Datei geben:

      Quellcode

      1. $mod = map [
      2. "version", [0, 5],
      3. "name", "eis_os Tram Puzzle Pieces",
      4. "description", "Allow you to build tram tracks as single pieces.",
      5. "modmanagerversion", [0, 4],
      6. "runtimeload", true,
      7. "runtimeunload", true,
      8. ];


      Und eine modid.script:

      Quellcode

      1. function mod_install() {
      2. }
      3. function mod_uninstall() {
      4. }
      5. function mod_loadGame() {
      6. }
      7. function mod_unloadGame() {
      8. }
      9. function mod_loadEditor() {
      10. }
      11. function mod_unloadEditor() {
      12. }
      13. function mod_loadEnvironments() {
      14. }
      15. function mod_init() {
      16. }
      17. function mod_uninit() {
      18. }
      Alles anzeigen


      Sobald die ModID im Spiel aktiviert wird, wird modid.script geladen, die Funktionen werden dann zur "richtigen" Zeit ausgeführt...

      Für ein späteres Online - Update werden alle Modid.modinfos und modid.dss in eine GS Datei gepackt und vom Benutzer heruntergeladen. Ein Verweis auf die Download Möglichkeit gibt es dann in der jeweiligen modinfo-Datei...
      Ein paar Ideen in Richtung "Channels" wie bei anderen Paketmanager schwebt mir auch noch vor. Solange CO meine Hintertür zum Aufrufen von exe Dateien nicht abstellt, sollte das alles ohne Probleme funktionieren...

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von eis_os ()

    • Freut mich, dass du irgendwie vorankommst mit dem Tool.

      Ich hätt da mal ne Frage; wobei ich denke, die Antwort schon zu kennen:
      Gilt das Tool dann nur für Mods, die im addons-Ordner gehören? Oder auch für solche, die direkt in den metro-Ordner rein müssen? Wobei ich mir denke, dass wohl nur 1. möglich sein wird.

      Ansonsten sieht das Bild schon sehr vielversprechend aus. Und ich kann mir denken, dass es ein User-Liebling werden wird. :thumbsup:
    • Status:

      Nach einen ganzen Abend an Arbeit und den heutigen Morgen.

      - Legacy Mods und Addons können verwaltet werden. (wenn man das möchte, das kann man per Einstellung später auch nachträglich ändern)
      - Alle Modifikationen können ein und ausgeschaltet werden im Hauptmenü, bei Tokyo oder US Addon könnte dies zu Fehlern führen, da zumindest Tokyo sehr Krude mit den Strings umgeht. Beim US Addon hab ich keine Ahnung, besitze es nicht.
      Dafür wird die metro/scripts/addons.script entpackt, ein Patch installiert, der Benutzer zum Neustart aufgefordert. Sollte Änderungen an dieser Datei vorhanden sein, wird diese nicht überschrieben sondern um den Patch ergänzt.
      - Egal wo der ModManager installiert wird (alle 3 addon Ordner sind möglich) der Patch ist richtig.
      - Patches können deinstalliert werden, ungenutzt bis jetzt. Noch eine Baustelle.
      - Kategorien für ModManager kompatible Mods.
      - Version Management für ModManager kompatible Mods ((MM Mods), es wird nur die neuste Version geladen.
      - MM Mods können Hybrid ausgelegt werden, d.h. normale Installation ist auch möglich.
      - MM Mods können während des Spiels im Pause Menü geladen werden und wenn es geht auch entladen während des Spiels.

      Für Mac User, Mods können leider nicht Ingame heruntergeladen werden, es wird ein Installationsordner geben, wo man die GS Dateien hineinschreiben kann. (Es wird ein externes Windows Programm dafür gestartet)

      Zum Downloader:
      Der Plan sieht aus, Paketquellen anzugeben, dieses bedeutet das es möglich wird verschiedene Quellen für neue Mods anzusprechen.


      - edit -
      Um ein paar Missverständnisse schon im Vorfeld auszuschließen, es wird keine Präferenz für ein CIM Portal geben, ich werde zur gegeben Zeit auch Kontakte zu CIM Exchange, den russischen Moddern aufnehmen um auch alle Sprachen zu unterstützen. Ich behalte mir auch das Recht vor, alle CIM ModManager Updates per eigener Seite zu hosten und dieses auch in ModManager fest verdrahten für Updates. (Man kann natürlich auch manuelle Updates mit der jeweiligen gs Datei selber einspielen)

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von eis_os ()

    • Hallo

      Der Fahrplan sieht nun so aus:

      Alpha Version müsste bald fertig sein, hierfür brauche ich Tester.
      Warnung: Nur melden wenn man sich auch mit Dateisystem, Mod Installation und auch eine Log_metro.txt versteht, sollte etwas nicht so richtig funktionieren muss man Hand anlegen.

      Die Alpha Version wird keine Online Tools mitbringen, da immer noch keine UI vorhaden,
      Strings werden wohl noch in Kauderwelch vorliegen und eben noch eine große Baustelle sein.
    • Hallo eis_os

      Wenn ich nicht scripten muß, dann kannst Du mir die alpha Version deines MM gerne zusenden. Ich habe mich am WE ausführlich mit der Log_metro.txt beschäftigt, da ich ständig Fehlermeldungen erhalten habe, die aus meiner Sicht keinen Sinn ergaben. Also mußte ich zwangsläufig lernen, was die Fehlermeldungen genau bedeuten und wie ich diese wieder los werde. Spannende Sache, zumal ich dann im weiteren Verlauf Fehler provoziert habe durch das editieren von scripten in den jeweiligen gs. Dateien das es nur so geraucht hat. Das war halt ein WE unter dem Motto try an error. Aber ich denke, nur so kommt man Stück für Stück dahinter. Krönung war dann die Fehlermeldung:"alley out of Bounds" die während der Ausführung des Spiels in die Log Datei geschrieben wurde. Im Spiel selbst ging dann fast gar nichts mehr, obwohl es ohne Probs geladen wurde. Busse im Verzeichnis der Trams, U-Bahnen zwar sichtbar aber nur noch als Busse einsetzbar, etc. Linepanelkonfikte hatte ich laut Log Datei über10 Stück, aber irgendwann habe ich es wieder hinbekommen, so nach ca. 8 Stunden. Also ich denke, schlimmer kann Dein MM auch nicht werden;-)
    • speedy: Das weiß ich und sogar super gut. Aber ich hatte die Zeit und da habe ich mal selber probiert was geht und was nicht. Habe sowieso ein paar Sachen entdeckt bzw. sind mir aufgefallen, die sicherlich ein paar Antworten aus dem Forum benötigen. Mache ich aber erst heute Abend, da ich jetzt auch noch (lästig) Geld verdienen muß.

      Bis später!
    • Wie auch schon im Paradox Forum gezeigt, gibt es auch direkt die Möglichkeit auf weitere wichtige Informationen zuzugreifen.
      Seit heute auch die interne Grafikkarten Info und die Möglichkeit die Sprache zu ändern (Erfordert einen Neustart).

      wisim-welt.de/index.php/Attach…d07320935f2f861395e85ac99

      Soll ModManager die Möglichkeit bekommen gs Dateien aus Eigene Dokumente\Cities In Motion\addons zu löschen?
      Zurzeit geht es nur im eigen ModManager Bereich...

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von eis_os ()

    • Auch wenn ich ein Doppelpost mache.

      Ein Meilenstein ist erreicht.

      ModManager hat heute das erste mal erfolgreich eine Datei aus einem Repository geladen und installiert. :D

      Das Repository Format sieht so aus:

      Quellcode

      1. /* ModManager Repository 1 */
      2. $baseurl = "http://localhost/";
      3. $mods = [
      4. map[
      5. "id", "eis_os_extmoneybar",
      6. "name", "eis_os_extmoneybar",
      7. "description", "Extended Money Bar",
      8. "url", "cimdownloader/eis_os_extmoneybar_v04.gs",
      9. "version", [0,4]
      10. ]
      11. ];
      Alles anzeigen


      In Version 1 ist es eine normale CIM Script Datei, sobald man "Refresh Repositories" startet in CIM, wird der ModManager Downloader gestartet, die eingestellten Quellen heruntergeladen,
      die Versionen verglichen und die Möglichkeit zum Installieren angeboten. (sollte die Version neuer sein)
      Jetzt werden wohl noch ne menge Bugs zu beseitigen zu sein, aber alle Grund-Funktionen sind vorhanden.