Durch die offene Struktur ist in Loksim ist die Verwendung von Objekten, Texturen, Wetterdateien, etc von anderen Autoren sehr einfach möglich. Auch sind die Lizenzbedingungen der meisten Addons dafür ausgelegt, dass soetwas auch rechtlich in Ordnung ist. Durch diese Offenheit ergibt sich jedoch das Problem, dass fremde Dateien sehr einfach verändert und damit bei der Package Installation auch überschrieben werden können. Dieser kurze Ratgeber soll einen Leitfaden für Addon-Autoren und Betatester bieten, um soetwas verhindern und erkennen zu können. Er zeigt auch, wie die Erstellung von sauberen Packages möglich ist.
Wichtiger Hinweis: In diesem Ratgeber geht es nur um die technische Seite bzgl. dem Überschreiben von Dateien. Das Verwenden bzw. Abändern von fremden Dateien kann unter das Urheberrecht fallen. Im Großen und Ganzen sind die Loksim-Addons unter einer diesbezüglich recht offenen Lizenz verfügbar. Jedoch kann hier keine allgemein gültige Aussage getroffen werden. Jeder Addon Autor ist selbst dafür verwantwortlich, etwaige Urheberrechtsfragen mit dem Ursprungsautor zu klären.
Es gibt Addon-Autoren die auf das Thema Überschreiben von Dateien sehr sensibel reagieren und welche die darauf so gut wie überhaupt nicht achten. Fakt ist, dass das Packagekonzept von Loksim nur funktionieren kann, wenn nicht wahllos (fremde) Dateien überschrieben werden. Oftmals hat das Überschreiben von Dateien keine sichtbaren Auswirkungen (da zB die Datei nur neu abgespeichert aber nicht tatsächlich verändert wurde). Jedoch ist es dann sehr schwierig Änderungen zu erkennen, die tatsächlich Auswirkungen haben. Eine 100%ige Lösung wird es für diese Problematik nicht geben können, da es gewisse Altlasten gibt. Außerdem soll das offene Package-Konzept von Loksim nicht aufgegeben werden. Dieser Ratgeber soll jedoch zeigen, dass es mit erträglichem Aufwand für jedermann möglich ist, das Überschreiben von fremden Dateien fast immer zu verhindern.
Im Rahmen des Ratgebers ist öfters von sauberen Packages die Rede. Darunter verstehen wir Packages bei deren Installation keine fremden Dateien überschrieben werden. Verwendet man für die Erstellung von Addons nur Dateien aus sauberen Packages und überschreibt selbst keine fremden Dateien, ist man auf der sicheren Seite. Da es nicht möglich ist alle Packages die im Internet verfügbar sind zu überprüfen, verstehen wir unter sauberen Packages nur Packages von der Loksim-Homepage. Diese gehen durch einen Betatest wo überprüft wird ob fremde Dateien überschrieben werden.
Addon-Autoren sollten zwei Loksim Datenverzeichnisse verwenden: Ein Arbeitsverzeichnis und ein sauberes Verzeichnis.
Im Arbeitsverzeichnis bearbeitet man seine Addons und kann bzgl. überschriebenen Dateien etwas (aber nicht komplett) unachtsamer sein. Installiert man ein sauberes Package, lässt man jedenfalls das Überschreiben von Dateien zu. Bei nicht veröffentlichten Addons achtet man genau darauf was überschrieben wird. Wenn man sich nicht sicher ist lässt man das Überschreiben nicht zu und fragt im Forum oder beim Package-Autor nach. Für veröffentlichte sonstige Addons wählt man einen Mittelweg, passt bzgl. überschriebenen Dateien auf und geht meist auf Nummer sicher. Da das nicht immer ganz leicht zu entscheiden ist, kann man es aber riskieren, dass hier ab und zu eine Datei überschrieben wird, die eigentlich nicht überschrieben werden sollte.
Neben dem Arbeitsverzeichnis baut man sich auch ein sauberes Verzeichnis. In diesem installiert man möglichst alle sauberen Packages und hält dieses möglichst aktuell (neue Addons die als "sauber" deklariert werden installieren). Beim Installieren von sauberen Packages kann man prinzipiell das Überschreiben von Dateien immer zulassen, jedoch hält man trotzdem die Augen offen und meldet "verdächtiges" Überschreiben im Forum und/oder dem Package-Autor. Schließlich ist niemand unfehlbar und es kann und wird immer wieder etwas durchrutschen das nicht so sein sollte.
Es ist kaum möglich tatsächlich alle Packages von der Loksim Homepage zu installieren. Wir empfehlen jedoch zumindest einen Großteil der verfügbaren Strecken zu installieren und die neueren Objekte. Sehr alte Packages müssen nicht unbedingt installiert werden.
Geht es nun ans Erstellen eines Package erstellt man das Package ganz normal aus dem Arbeitsverzeichnis. Anschließend versucht man es im sauberen Verzeichnis zu erstellen (Option Vor überschreiben immer nachfragen) und schaut sich an welche Dateien überschrieben werden würden. Die Installation wird dann immer abgebrochen! Nun muss man alle Dateien die fälschlicherweise überschrieben werden korrigieren. Dafür gibt es je nachdem wie schlimm es ist drei Möglichkeiten:
- Es werden keine Dateien fälschlicherweise überschrieben Gratulation, es sind keine weiteren Schritte nötig und das Package kann direkt weitergegeben werden
- Es werden nur wenige Dateien fälschlicherweise überschrieben Diese Dateien händisch vom sauberen Verzeichnis ins Arbeitsverzeichnis kopieren, Package neu erstellen und wieder mit der hier beschriebenen Vorgangsweise überprüfen
- Es ist richtig schlimm In diesem Fall muss zuerst eine Kopie des gesamten sauberen Verzeichnis angelegt werden. In diese Kopie wird dann das erstellte Package mit der Option Vor Überschreiben immer nachfragen tatsächlich installiert. Jedoch werden bei der Auswahl welche Dateien überschrieben werden sollen die fälschlicherweise installierten Dateien abgewählt bzw. nur die gewollten Überschreibungen angewählt. Dann erstellt man in diesem Verzeichnis das eigene Package erneut. Dieses neu erstellte Package wird dann im Arbeitsverzeichnis installiert, wobei Nur ältere Dateien ersetzen deaktiviert ist. Und wieder: Package neu erstellen und wieder mit der hier beschriebenen Vorgangsweise überprüfen.
Wie erkenne ich bei der Installation von Packages welche Dateien fälschlicherweise überschrieben werden
Voraussetzung dafür ist, dass man (fast) alle sauberen Packages installiert hat. Dann sollten bei einem neuen Package fast immer nur Dateien vom Package-Autor selbst überschrieben werden. Bei allen anderen Dateien hilft nur Erfahrung, ein halbwegs guter Überblick über die Loksim-Addons und deren Autoren und sehr oft wohl nur explizites Nachfragen.
Wichtig: Besser eine Datei bei Unsicherheit nicht überschreiben! Erfährt man dann, dass das Überschreiben ok ist, kann man das Package einfach nochmal installieren. Der umgekehrte Weg ist komplizierter (mit der Package Installation rückgängig machen Funktion wenn noch möglich oder aber man muss händisch Dateien herumkopieren)
Was mache ich als Addon-Autor wenn bei meinem Package das unberechtigte Überschreiben von Dateien festgestellt wird
Das Wichtigste: Ruhe bewahren, es gibt wahrlich Schlimmeres im Leben. Falls noch nicht passiert, das oben beschriebene "saubere Verzeichnis" einrichten und der Prozedur für das Erstellen eines Package folgen. Hat man das schon gemacht, siehe nächsten Punkt
Es kann vorkommen, dass beim Test eines Package trotz der empfohlenen Vorgehensweise von anderen eine vermutlich fälschlicherweise überschriebene Datei festgestellt wird. Wenn man als Package-Autor der Meinung ist, dass man diese Datei niemals angerührt hat und das saubere Verzeichnis gut verwaltet hat, muss diese Meinungsverschiedenheit geklärt werden. Dafür ist es notwendig festzustellen, woher die Datei im eigenen Verzeichnis ursprünglich stammt.
Der PackageManager besitzt - wenn man die erweiterten Funktionen in den Optionen aktiviert hat - den Tab Dateiabhängigkeiten anzeigen. Dieser kann für solche Zwecke verwendet werden. Einfach in diesem Tab den Namen bzw. den Pfad zur strittigen Datei angeben. Der PackageManager listet dann alle Packages auf in welchen diese Datei vorkommt. Das mit "*" (Stern) gekennzeichnete Package das am weitesten oben angeführt ist hat die Datei zuletzt installiert. Die Datei stammt also aus diesem Package. Es kann jetzt aber trotzdem noch sein, dass man die Datei unabsichtlich selbst überschrieben hat. Deshalb muss man das aufgeführte Package suchen, mit einem Zip-Programm die entsprechende Datei entpacken und mit der Datei aus dem Loksim-Verzeichnis vergleichen. Stimmen die Dateien überein, hat man das Ursprungspackage der Datei gefunden und kann hoffentlich den Streitfall aufklären.
Einschränkungen: Wenn die Package Datenbank gelöscht wurde, Packages vor der Verwendung des PackageManagers oder per Hand installiert wurden, kann es sein, dass im PackageManager gar kein Package mit "*" gekennzeichnet ist. Dann ist der Ursprung wohl nicht mehr herausfindbar. Am besten dann einfach ein Package suchen wo die Datei vorkommt und die Datei händisch herauskopieren. Die Dateiabhängigkeiten anzeigen Funktion listet für diesen Fall meist zumindest ein Package auf wo die Datei vorkommt, ansonsten muss man bei Kollegen nachfragen wo man diese Datei im Originalzustand herbekommt
Prinzpiell ist es kein Problem, wenn man nach der Veröffentlíchung eines Addons bei der nächsten Version eigene Dateien ändert und damit überschreibt. Da jedoch andere Autoren diese Dateien bereits in anderen Addons verwenden könnten, sollten vor der Änderung von bereits veröffentlichten Dateien ein paar Überlegungen gemacht werden:
- Fahrpläne, Kursbuchstrecken, Strecken und Führerstände können problemlos geändert werden. Diese können nicht sinnvoll in Packages von Dritten verwendet werden
- In der Simulation nicht sichtbare Änderungen (meist Verbesserungen) sind auch kein Problem. Beispielsweise wenn Texturen verkleinert werden oder Fehler in Objekten behoben werden (ungültige Flächen, zu viele Punkte, etc)
- Ändert man eine allgemein nutzbare Datei, wie zB ein Objekt Baum.l3dobj, in einer Art und Weise sodass sie nachher komplett anders aussieht, solle man das Objekt nicht direkt ändern, sondern eine zweite Version des Objekts anlegen.