Benutzer:Fkrauthan/Automatische Spiel-Updates

Aus Spieleprogrammierer-Wiki
< Benutzer:Fkrauthan(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
 
Zeile 1: Zeile 1:
{{Baustelle}}
 
{{Verbesserungsbedarf}}
 
 
In diesem Artikel werden Ansätze vorgestellt, wie ein automatisches Update-System für Spiele umgesetzt werden kann. Mit einem solchen System wird dafür gesorgt, dass neue Versionen eines Spiels automatisch aus dem Internet heruntergeladen und installiert werden.
 
In diesem Artikel werden Ansätze vorgestellt, wie ein automatisches Update-System für Spiele umgesetzt werden kann. Mit einem solchen System wird dafür gesorgt, dass neue Versionen eines Spiels automatisch aus dem Internet heruntergeladen und installiert werden.
  

Aktuelle Version vom 17. November 2011, 21:11 Uhr

In diesem Artikel werden Ansätze vorgestellt, wie ein automatisches Update-System für Spiele umgesetzt werden kann. Mit einem solchen System wird dafür gesorgt, dass neue Versionen eines Spiels automatisch aus dem Internet heruntergeladen und installiert werden.

Inhaltsverzeichnis

Einleitung

Jeder kennt dieses nervige System von früher. Du lädst ein Spiel runter und suchst dann erst mal Stundenlang im Internet um alle Patches zusammen zu bekommen. Da aber vorallem auch Hobby Projekte sich recht schnell und oft ändern wäre es doch gut ein simples Updatesystem zu haben.

Benötigte Libs

Für die Netzwerkkomunikation und den Download der Dateien wird libcurl verwendet. Um MD5 hashes zu erzeugen kann man libmd5-rfc verwenden. Außerdem braucht man für das Tool das die Patches vorbereitet und auch für den Patcher selber eine möglichkeit ein Verzeichnis rekursiv durch zugehen. Dafür wird der Platformunabhängigkeits halber boost-filesystem verwendet. Das ermöglicht das Updatesystem so zu schreiben, dass es sowohl unter Windows, Linux und MacOS funktioniert.

Funktionsweise

Mit Hilfe des Admintools erzeugt man für alle Dateien seines Spiels eine MD5 Hashsumme. Diese wird in einer großen Textdatei gespeichert. Diese Datei mitsamt der komplette "Spielinstallation" muss dann auf einem öffentlich zugänglichen HTTP oder FTP Server liegen (Hier bietet sich auch Dropbox an). Der Client läd dann beim Starten diese Prüfsummendatei herunter. Sollte die sich mit seiner Aktuellen lokalen unterscheiden geht er wie das Admintool vor und erstellt eine Liste mit allen Dateien und ihren Prüfsummen. Sollte er nun in der Liste Dateien haben die nicht in der Serverliste stehen löscht er die (Veraltete dateien) neue Dateien oder Dateien wo sich die Prüfsumme unterscheidet läd er neu vom Server runter.

Das Updaterinterface

Untenstehend findet man die Klassendefinition unseres Updaters welches wir sowohl für den Patcher als auch für das Admintool brauchen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge