Jump to content

Archived

This topic is now archived and is closed to further replies.

Oldtime

Neues Mappack und Update Tool

Recommended Posts

Friedhofsjodla.de

FhJ Mappack 1.4

Wie vielleicht bekannt, haben wir auf dem Friedhofsjodla ein Mappack installiert mit etwa 180 Karten für Bf1942, Desert Combat und Desert Combat Final.

Nun gibt es davon eine neue Version. Die Version 1.4 enthält aber keine Neuen Maps.

Da ich für die vorherige Version die meisten Maps geändert hatte, konnten viele Leute sich das Mappack nicht installieren, wenn sie einige der Maps auch auf anderen Servern spielen wollten. Sie hätten sonst dort die Meldung bekommen "Daten unterscheiden sich vom Server". Die meisten meiner Änderungen waren aber notwendig bzw. sinnvoll. Z.B. hatten viele Maps Objekte mit falschen Collisionsmesh. Z.B. Sandsäcke über die man nicht springen konnte obwohl sie niedrig genug waren oder Zäune über die man nicht niedrig fliegen konnte ohne gegen eine unsichtbare Mauer zu fliegen. Bei vielen Maps hab ich auch den CTF und TDM Modus repariert, die zwar vorhanden waren aber keine Flaggen oder keine Spawnpunkte hatten. Und viele andere Kleinigkeiten.

Das Problem hab ich jetzt gelöst. Die neue Version enthält die original Versionen der Maps in den bf1942, DC und DCF Ordnern. Zusätzlich habe ich aber 3 neue Mods (fhj,fhj_desert und fhj_final) erstellt, die nur meine Änderungen dazu enthalten. Man kann jetzt also auf jedem Server der eine der FhJ Mappack Maps hat diese und zusätzlich auf dem Friedhofsjodla Server die gleiche Map mit meinen Änderungen spielen.

FhJ Update Tool

Und jetzt gibt es auch mein Update Tool. Damit kann man sich neue Maps die auf unserem Server sind runterladen und sie werden gleich in den richtigen Ordner kopiert. Das Programm kann auch ein update von sich selbst durchführen, wenn eine neuere Version verfügbar ist. Man hat die Auswahl das Programm automatisch laufen zu lassen, dann wird ohne nachfrage jedes update installiert und jede neue Map runtergeladen. Zusätzlich verfügt das update Tool über einen Autostart Modus so das man sich um gar nichts mehr kümmern muss.

Will man sehen und entscheiden was man installiert, ist das natürlich auch kein Problem. Man kann in einer Downloadliste jede Map auswählen die man haben möchte. Außerdem zeigt das Programm an welche dieser Maps grad im Mapcycle auf Friedhofsjodla.de gespielt wird, so das man wenn man eine langsame Leitung hat auch nur diese Maps laden müsste wenn man mitspielen will.

Dadurch braucht man jetzt keine Maps mehr Serverseitig ändern, jetzt haben Client und Server die gleichen Maps.

Wenn man bereits das FhJ Mappack 1.3 installiert hat sollte man auch nur das Update Tool ausführen statt die neue Version zu laden, dann kommt man schneller auf den aktuellsten Stand ohne die alte Version erst deinstallieren zu müssen.

Sollte es nicht möglich sein das FhJ Update Tool zu nutzen (Linux User oder Mac) dann werden wir mit Sicherheit eine andere Möglichkeit finden, wenn jemand mitspielen möchte. Generell ist aber das mitspielen aller Maps ohne das FhJ Update Tool in Zukunft nicht mehr möglich.

UpdateTool.jpg

Systemvorausstzungen: Windows XP, Vista oder Win 7, Netframework 4. In der Installationsroutine wird das Microsoft Net Framework mitinstalliert. Kommt die Frage ob man es reparieren oder deinstallieren möchte, dann hat man es schon und kann auf abbrechen drücken

P.s. Sorry für die eigen Werbung.

Link to post
Share on other sites

Ich wollte erst eine News einreichen, habs mir dann aber anders überlegt, da es ja eigentlich nur Werbung für mich und die Friedhofsjodla ist. Keine Ahnung ob das so gut angekommen wäre.

Link to post
Share on other sites

Ich denke, daß das doch ok ist, denn es steckt zum einen eine Menge Arbeit drin und mit den Auslagern in Mods bleibt die Kompatibilität gewahrt.

Link to post
Share on other sites
Ich denke, daß das doch ok ist, denn es steckt zum einen eine Menge Arbeit drin und mit den Auslagern in Mods bleibt die Kompatibilität gewahrt.

Ja sowohl im Mappack als auch in den verschiedenen Tools die ich dafür Programmiert hab hängt ein großer Teil meiner Freizeit der letzten 2,5 Jahre. ;)

Hat aber auch spass gemacht. Und ich habe unglaublich viel lernen können. Wenn ich daran denke, dass ich bevor ich das Mappack gemacht habe nicht mal wusste das man selber Maps machen kann. Und das letzte Programm das ich davor programmiert habe war irgendein Schrott auf dem C64.

Ich werde mal eine News einreichen. Mal schauen wann sie veröffentlicht wird.

Edit:

Habs als news eingereicht.

Link to post
Share on other sites

So ein Update-Tool hab ich mir ja schon lange gewünscht. :daumenhoch:

Kannst du n bisschen was zu der Umsetzung sagen?

Speziell würde mich auch interessieren, ob du vor hast, das irgendwann zu erweitern bzw. frei konfigurierbar zu machen, sodass es auch ganz allgemein für "File-Deposits" anderer Clans nutzbar ist? :innocent:

Link to post
Share on other sites

Also ich hab das Programm erstellt, weil Serversidemodding zwar nicht schlecht ist, man aber doch zu eingeschränkt in seinen Möglichkeiten ist.

Und neue Maps kann man so natürlich gar nicht spielen. Ursprünglich haben wir damit wir nicht immer nur die gleichen Maps spielen müssen, unser Mappack gemacht. Wobei sich da leider ziemlich schnell rausstellte das trotz meiner Tests immer wieder Maps kleinere oder größere Fehler hatten oder man einfach noch was verbessern wollte. Deshalb gabs dann das update. Da gibts aber wieder das Problem, dass einige nun die neue Version hatten, andere die alte und neue Spieler gar kein Mappack. :kritisch:

Also habe ich mir überlegt wie man das Problem lösen kann. Ich hab erstmal ein Programm geschrieben, dass prüft ob das Mappack korrekt installiert wurde, ob alle Maps vorhanden sind, BF, DC und DCF installiert sind und die richtige Version haben usw. Das hat aber anscheinend kaum jemand genutzt. Ich hab noch ein Übersichtsprogramm geschrieben, wo man einige Screenshots und einen kleinen Test zur Map findet. Keine Ahnung ob sich das mal wirklich jemand angeschaut hat. Ich finds jedenfalls nicht schlecht, da man bei 180 Maps leicht den über Überblick verlieren kann. ;)

Und dann kam mir die Idee mit dem Update Tool. Also ein Programm das Automatisch neue Maps auf die Rechner der Spieler kopiert. Nachdem ich bei uns im Forum gefragt habe ob es jeder benutzen würde hab ich mich an die Arbeit gemacht. Das Programm ist in Visual Basic.Net mit dem Microsoft Visual Basic 2010 Express geschrieben. Vom Prinzip baut es eine FTP Verbindung zum Server auf und schaut dann dort ob es ein Update vom Update Tool findet, neue Maps verfügbar sind und ob vielleicht defekte Maps entfernt werden müssen. Es gibt auch die Möglichkeit auf dem Server eine Nachricht zu hinterlegen, die dann bei den Clients angezeigt wird.

Im Zuge der Programmerstellung kam mir dann die Idee mit den eigenen Mods. Dadurch besteht die Möglichkeit das Leute mitspielen können, die keine Lust haben ihre Maps durch meine eigene Version überschreiben zu lassen. Und das Update Tool ist so aufgebaut, dass es nicht nur Maps, sondern auch ganze Mods runterladen kann.

Als nächstes Plane ich das Tool so zu gestallten, das die Sprache auswählen kann. (deutsch und englisch, evt. schwedisch)

Frei konfigurierbar zu machen habe ich bisher nicht geplant. Es wäre auch nicht ganz so einfach. Ich habe beim Programmieren feststellen müssen, dass jeder FTP Server anders ist. Das Update Tool liest ein Verzeichnis anhand der Verzeichnisliste ein. Diese sieht etwa so aus:

-rw-r--r-- 1 friedhofsjodla psacln 22221966 Oct 1 07:49 airbase.rfa

-rw-r--r-- 1 friedhofsjodla psacln 112465817 Oct 1 08:11 bastogne_coop.rfa

-rw-r--r-- 1 friedhofsjodla psacln 34128158 Oct 1 08:17 battle_for_ralfi.rfa

-rw-r--r-- 1 friedhofsjodla psacln 97189281 Oct 1 08:35 east_docks.rfa

-rw-r--r-- 1 friedhofsjodla psacln 6384338 Nov 9 19:44 finalbattle.rfa

-rw-r--r-- 1 friedhofsjodla psacln 42926473 Oct 1 08:45 giza.rfa

Diese Liste wird eingelesen und die Mapnamen und die größe herausgeschnitten um sie mit den Dateien beim Spieler zu vergleichen. Leider ist diese Ausgabe auf verschiedenen FTP Servern unterschiedlich. Sie kann komplett anders aufgebaut sein und auch andere Eigenschaften angezeigen. Das müsste von jedem Serveradmin im Programm angepasst werden. Eine andere Möglichkeit das Verzeichnis auszulesen hab ich leider nicht gefunden.

Und das wäre nur eines der Probleme. Auch die Zugangsdaten müssten angepasst werden. Und die Prüfung der Mods usw.

Fazit: Rein Prinzipiell hätte ich kein Problem damit das Programm anderen zur Verfügung zu stellen, aber ich denke der Aufwand wäre enorm. Und Zeit hab ich momentan wenig bis keine. Außerdem bin ich kein gelernter Programmierer. Ich hab mir das während der Zeit mit dem Mappack angeeignet, und so sieht auch mein Programmcode aus. :D Theoretisch müsste ich das Programm nochmal komplett neu schreiben. Da ist einiges drin was ich im nachhinein anders regeln würde, aber da es funktioniert, habe ich es so gelassen.

Link to post
Share on other sites

Ok. Klasse Leistung auf jeden!

Und vielleicht findest du ja doch irgendwann noch mal die Zeit und Lust, es weiterzuentwickeln. :)

Link to post
Share on other sites

Sinnvoll wäre es, nach dem Runterladen Datum und Zeit nach den Angaben auf den Server zu setzen. Dann könntest Du auch nur zuerst nach dieser Angabe sehen, ob auf dem Server was neues drauf ist. Die Art und Weise, wie der Server die Verzeichnisangaben liefert kann ggf. in einer Ini-Datei festgelegt werden, also in welcher Reihenfolge jede Zeile auseinandergenommen wird.

Link to post
Share on other sites

@Sven

Das mit dem Datum und der Uhrzeit könnte ich machen, aber das die Überprüfung auch so recht schnell geht, bin ich eher dafür alle Maps zu prüfen, falls eine Map fehlerhaft sein sollte.

Ich hab mich damit noch nicht wirklich mit FTP beschäftigt. Ich hab nur zum testen einen eigenen kleinen FTP Server in einer Virtuellen Box auf dem gleichen Rechner laufen lassen und als alles so weit in Ordnung war die gleichen Ordner und alles auf dem Richtigen Server gepackt und erstmal ziemlich doof aus der Wäsche geguckt als das Programm auf einmal nicht mehr lief obwohl alle Dateien und alle Rechte passten.

Wenn man das in einer Ini festlegen kann, dann könnte ich das ja mal anschauen. Evtl. bekomm ich ja doch irgendwann mal eine Version zustande die auch auf anderen Download Servern funktioniert. Dann müssten halt die Serveradmins die Server anpassen. Ich werde mir bei Zeiten mal ein paar Gedanken zur Umsetzung machen.

Link to post
Share on other sites

Ansonsten fällt mir spontan nur der Hashwert ein, der eine Aussage über die Datei geben könnte. Ich habe bei meiner vorigen Tätigkeit, als ich programmiert habe, es auch nicht so richtig hinbekommen, daß es automatisch und immer korrekt funktioniert hat.

Link to post
Share on other sites

Mein Programm prüft die Maps ausschließlich nach Dateinamen und Dateigröße. Es besteht zwar die Möglichkeit, dass eine geänderte Map zufällig(oder absichtlich) die gleiche Größe hat, aber es ist doch recht unwahrscheinlich. Sollte die Map nicht laufen könnte man sie per Hand löschen und neu automatisch runterladen lassen.

Ich hatte in einem Mappack Überprüfungsprogramm einen Test der die Dateien nach einen MD5 Hashcode verglichen hat, aber das hat dann doch mehrere Minuten gebraucht und war von daher nicht geeignet für ein Programm was mal eben am besten automatisch bei Systemstart prüfen soll. Das Mappack ist ja entpackt ca 4.3 GB groß.

Wäre vielleicht auch eine Überlegung wert die Dateien nach Name, Größe, Datum und Uhrzeit zu prüfen.

Link to post
Share on other sites

Wenn wir schon mal dabei sind, ich persönlich würde auf HTTP umsteigen und die auf dem Server bereitgestellten Daten in Form einer XML-Datei bekannt machen, inklusive einer Versionsnummer. Zum Beispiel so:

<bf1942_dynamic_updater_configuration>

 <package name="fhJ">

  <file url="http://fhj.de/map_1.rfa" version="1.1.04" type="map" />

  <file url="http://fhj.de/map_2.rfa" version="0.9" type="map"  />

  <file url="http://fhj.de/objects.rfa" version="2.1" type="general/objects" />

 </package>

</bf1942_dynamic_updater_configuration>

So kann sich der Client zusätzlich konkret über URL und Versionsnummer der Files informieren und anhand der Daten entscheiden, ob er sie überhaupt noch laden muss und wenn ja, woher.

Die XML/HTTP-Kombi hat derweil den Vorteil, dass man einen solchen Updateserver recht unkompliziert auf nem einfachen Webspace betreiben und die Konfiguration notfalls sogar statisch per Hand schreiben könnte. Automatisiert ginge freilich auch, wenn man die Konfig dynamisch per PHP o.ä. erzeugt, indem man den entsprechenden Ordner scannt. Obwohl ich es eh besser fände, wenn der Updateserver-Admin die Files händisch durch Eintragung in die XML freigibt, damit nicht irgendwann mal zufällig irgendwelcher Kram ungewollt auf der Festplatte der Clients landet (z.B. das Archiv, aus dem der Admin gerade noch die rfas entpackt hat).

Erweiterungen wie z.B. alternative Downloadlinks wären darüberhinaus mit XML auch unproblematisch nachrüstbar (z.B. durch Einfügen von Attributen url2, url3, ....).

my 2 cents ;)

Link to post
Share on other sites

Hmm, das wäre eine ziemliche Umstellung denke ich. Außerdem müsste ich mich da auch noch mit HTTP Server beschäftigen.

Und ein Problem gibt es jetzt gar nicht mit neuen Dateien hinzufügen. Die Maps liegen auf dem Server in genau der Ordnerstrucktur wie sie auch im BF Verzeichnis ist. Einfach eine Neue Map auf den Server in das entsprechende Modverzeichnis kopieren und sie wird beim nächsten Programmstart mit abgeglichen. Konfiguriert werden muss da nichts mehr.

Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.