In diesem Blog geht es um den neuen Launcher, beziehungsweise das erste Große Update für den Launcher in vielen Jahren. Der Launcher stellt schon seit dem Beginn von ReallifeRPG den Weg da um die Mod zu downloaden und bei uns mitzuspielen, seit 2014 gab es inzwischen 4 größere Revisionen. Für diesen Blog habe ich aus meinen Archiven mal all diese Versionen rausgesucht
Der allererste Launcher, die genutzten Technologien kann ich heute nicht mehr nachvollziehen und auch an die Funktionen kann ich mich nicht mehr erinnern.
Der Launcher v2 wurde nach dem Release der 1.0 mit Java entwickelt von vabene. Nun gab es zusätzlich zum Download und Prüfen Informationen zum Server (die nicht via Gametracker eingebettet waren) und einen Changelog.
Der Launcher v3 wurde kurz nach Release der v2 mit C# entwickelt, da der Java Launcher nicht weiter maintained werden konnte. Die Funktionen blieben gleich, zum ersten Mal waren jedoch nicht alle Funktionen auf einer Seite. Bis heute ist der Launcher von der „Tab“-Ansicht dieser Version inspiriert. Auch wurde an dieser Stelle das „v1“ Schema der API festgelegt.
Der Launcher v4 bildet bis heute die Grundlage der eingesetzten Technologie: Electron. Ich habe ihn zusammen mit vabene entwickelt. Damals war Electron ein sehr neues Framework zur Entwicklung von Desktop-Apps mit Javascript/HTML in NodeJS/V8. Heute basiert z.B. Discord auf Electron. Anfangs gab es damit noch einige Probleme aber der Updatekern bewies sich als weitgehend stabil. Das UI war jedoch suboptimal. Das Frontend basierte auf Vanilla Javascript, das UI-Framework eine Mischung aus MetroUI und Bootstrap. Schon kurz nach Veröffentlichung wurde ich unzufrieden mit der Usability des UIs, daher begann die Arbeit an einem Rework unter einem richtigen MVC-Framework.
So kommen wir an bei dem Launcher den die meisten von euch kennen. Seit Anfang 2017 ist die v5 in Betrieb und wurde immer wieder verbessert. Diese Version des Launchers wurde für das Release von Panthor nach dem Ende von ReallifeRPG genutzt. Es war jedoch technisch nicht möglich den ReallifeRPG Launcher zu Panthor zu updaten.
Leider ist die Electron Version auf welcher dieser v5 Launcher basiert inzwischen sehr veraltet, jedoch wäre es nur unter größeren Änderungen am Code möglich auf eine neuere zu wechseln. Daher habe ich nach dem Release erneut mit einem kompletten Rewrite begonnen. Auch den Updatekern habe ich begonnen neu zu konzipieren um das Downloaden mehrerer Mods parallel zu ermöglichen und Ihn resilienter gegen fehlerhafte Downloads zu machen. Etwa werden nun Dateien nach dem Download und auch schon während des Downloads laufend validiert. Die v5 konnte unter Umständen fehlerhafte Dateien nach einem Download als Intakt erkennen. Die v6 (oder Panthor v2) nutzt die neuste Version von Electron, ist in Typescript geschrieben und verwendet vue+vuetify für das Frontend. Die durch Typescript und vue-TSC gegebene Typensicherheit sollte die Stabilität verbessern und einige Bugs verhindern. Die Entwicklung hat sich leider hingezogen, ist jetzt aber endlich abgeschlossen. Nach erfolgreichen internen Tests ist die neue Version jetzt Live. Eure Installation updated sich automatisch.
Im Panthor Launcher v2 hat eine neue „Home“ Seite Platz gefunden auf der Ihr unsere Blogs, Links und unseren Twitch Stream findet. Ansonsten hat sich die Nutzung bewusst nicht maßgeblich verändert. Alles sollte sich weitgehend wie gewöhnt anfühlen. Die verfügbaren Startparater spiegeln jetzt den Stand sinnvoller Parameter wieder. Die meisten früheren Performance Parameter sind heute nicht mehr sinnvoll zu setzen (wie etwa exThreads). Daher wurden diese entfernt. Der Launcher setzt die Parameter wie gewöhnt wenn Ihr ihn zum starten oder joinen nutzt. Ihr könnt aber natürlich auch den Arma 3 Launcher nutzen.
Der Launcher bleibt natürlich Quelloffen (Github) und ist jetzt unter einer MIT-Lizenz geführt. Ich freue mich natürlich über Contributions und Verbesserungsvorschläge. Auch danke an Thorben aus dem Dev-Team der einige Contributions geleistet hat.