Game Patching Mac / PC [geschlossen]

7

Ich frage mich nur, welche Arten von Lösungen für das Patchen von PC / Mac-Spielen verfügbar sind, in die kein automatischer Updater integriert ist.

In Windows drehen Sie einfach eine Art neuen Installationsschutz für das Spiel ab, der die aktualisierten Dateien enthält, hoffen, dass Sie einen gültigen Registrierungsschlüssel lesen können, um auf das richtige Verzeichnis zu verweisen, und Dateien überschreiben können?

Wenn ja, wie überträgt sich das auf einen Mac, auf dem das Spiel normalerweise nur als direkte App-Datei verteilt wird?

Gibt es einen besseren Ansatz als den oben genannten für ein bereits veröffentlichtes Produkt? (Vorausgesetzt, Direktverkäufe und nicht über einen Marktplatz mit automatischer Aktualisierung wie Steam.)

Gibt es Standardbibliotheken vom Typ Auto-Updater, die auch nach dem Versand eines Spiels problemlos in eine C / C ++ - Codebasis integriert werden können, um dies zu vereinfachen, und die plattformübergreifend sind?

Wie funktionieren Auto-Updater auch mit neuen Betriebssystemen, die Anwendungen und Dateien digital signieren möchten?

Centurion-Spiele
quelle

Antworten:

1

Angenommen, Sie gehen nicht durch den Mac App Store. Unter OS X ist die häufigste Methode zur Selbstaktualisierung von Programmen die Verwendung von Sparkle .

Es ist einfach, benutzerfreundlich, direkt vor Ort (dh kein separater "Installations" -Prozess; die neue Version ersetzt nur die alte Version), äußerst weit verbreitet und kostenlos.

Trevor Powell
quelle
1

Wenn Sie Ihre Ressourcendateien nicht in die ausführbare Datei einbetten, kann das Patchen eines Spiels einfach darin bestehen, einige Dateien zu ändern. Dies können entweder ausführbare Dateien, Skriptdateien, Mediendateien oder andere Dateitypen sein.

In meinen Spielen sind normalerweise Ressourcendateien in Zip-Dateien gepackt. Wenn ich also eigenständige Patches für meine Spiele veröffentliche, sende ich eine Batch-Datei, die Folgendes ausführt:

  1. Erstellen Sie eine Sicherungskopie der Datendateien
  2. Überprüfen Sie, ob die aktuell installierten Dateien die richtige (patchbare) Version haben. Dies kann durch Überprüfen einer SHA1-Summe erfolgen.
  3. Dekomprimieren Sie die patchbaren Dateien in einen temporären Ordner.
  4. Ersetzen, fügen Sie die Dateien hinzu und löschen Sie sie, wie es der Patch erfordert.
  5. Komprimieren Sie den Ordner erneut.
  6. Wenn Sie einen guten vorhersehbaren Kompressor verwenden, sollte die resultierende Datei unabhängig von der Maschine, auf der sie ausgeführt wird, identisch sein. Daher können Sie jetzt überprüfen, ob der Patch ordnungsgemäß funktioniert hat, indem Sie die Datei mit einer SHA1-Summe überprüfen.
  7. Wiederholen Sie dies für alle Datendateien. Wenn etwas schief geht, stellen Sie das Backup wieder her.

Dies sollte unabhängig von der Plattform funktionieren und ist sehr einfach zu implementieren.

Wenn Sie nur auf Windows abzielen, verfügt MSI über eine Patch-Funktion, die fast dasselbe tut, den Patch jedoch als installiert registriert. So gut wie jedes Installationsgenerator-Tool kann dies tun.

Panda Pyjama
quelle
0

Auf dem PC wird der Umsatzschub, den Sie von Steam erhalten, immer den Schnitt übertreffen, den sie erzielen, sodass Sie ihn verwenden werden Steamworks.

Wenn Sie von Steam abgelehnt wurden, würde ich empfehlen, dass Sie den NSIS installerÜberinstallationsschutz verwenden. Ich fand es einfach zu bedienen und ein weit überlegenes Produkt. (Es ist auch kostenlos.) Es gibt vielleicht eine dritte Option, die noch besser ist, aber ich bin damit nicht vertraut.

http://www.steampowered.com/steamworks/

http://nsis.sourceforge.net/Features

Der Funktionsumfang des NSIS-Installationsprogramms soll jetzt auch das Patchen und den Modus "Optionale unbeaufsichtigte automatische Installation" unterstützen. Ich habe diese Funktionen nicht persönlich verwendet, aber aufgrund meiner hervorragenden Erfahrung mit dieser Software in der Vergangenheit habe ich keinen Grund zu der Annahme, dass sie nicht funktionieren würden.

Jemand anderes muss Ihre Mac-Fragen beantworten.

Jim
quelle