C# Gamelauncher ArmA3 - Downlaodtool - downloadverfahren

Blackwolf99

Newbie
Registriert
Dez. 2015
Beiträge
5
Hallo,
ich habe vor, einen Launcher für das Spiel ArmA3 zu machen. Es soll hierbei um einen Launcher gehen, der Mods downlaoden kann, und dann das Spiel startet.

Der launcher ansich ist sehr einfach zu gestallten und umzusetzen, jedoch habe ich überhaupt keine Idee, wie ich das mit den Downloads umsetzen kann.

Der Download ist beispielsweise ein Ordner mit mehreren Datein Inhalt. Gut währe es, das nur Änderungen heruntergeladen werden müssten. Also keinen komprimierten ordner, der wiederum alle Datein enthält!

Ich habe mich viel umgesehen aber nichts hilfreiches gefunden, daher würde ich mcih sehr über Hilfe freuen! Danke großes Grinsen

PS: Ich habe als Anhang ein Bild von einem anderen Launcher, der auch für ArmA3 ist. Ich wollte ihn eigentlich ähnlich aufbauen, was das Downlaod verhalten betrift. LRL-launcher.jpg
 
Du kannst mit der DirectoryInfo-Klasse dir Informationen zu Größe eines Ordners holen. So weist du schonmal, ob der Ordner vollständig ist (falls du denn die Größe des Downloads kennst). Sonst, falls du alle Dateien/Ordner des Downloads kennst, rekursiv mit DirectoryInfo/FileInfo den bereits gespeicherten Inhalt vergleichen und nur das fehlende herunterladen.

So einen Download-Balken zu erstellen ist zumindest visuell relativ einfach. Allerdings ist es wichtig, welche Art von Stream benötigt wird, um den Download zu starten.
 
Hast du Interesse, das ganze zusammen (z.B. per Teamviewer) zu machen? Falls ja, schick mir eine PN womit ich dich dann in Skype/Steam/Hangouts adden kann.

Ansonsten hier ein paar Dinge, die du brauchen wirst:
HttpWebRequest oder ne vereinfachte Variante: WebClient
Thread oder eine modernere Variante: Task

Ich habe mal einen Updater gebastelt, der im Grunde genau das macht, was du willst: Link zu GitHub, davon könntest du einiges klauen (am besten nur Ideen, dass du es lernst) oder direkt nutzen:
Unbenannt.png

Und wenn du vor hast, das ganze zu veröffentlichen, empfehle ich dir direkt am Anfang GitHub zu nutzen.
 
Zurück
Oben