Installation und Wartung von Spielen

Dieser Artikel beschreibt eine Reihe von bewährten Methoden, die dazu beitragen können, die Frustration der Benutzer über die für die Installation eines Spiels benötigte Zeit zu verringern, unnötige Support-Anrufe zu vermeiden und es den Benutzern zu ermöglichen, Ihr Spiel so schnell und problemlos wie möglich zu starten.

Anfängliche Installation

Benutzer kaufen Spiele, weil sie es genießen, sie zu spielen, nicht weil sie sie gerne installieren. Die Installation eines Spiels sollte so schnell, einfach und so problemlos wie möglich für den Benutzer sein. Im Idealfall sollten Benutzer nicht einmal eine Installations-UI sehen; sie sollten in der Lage sein, die Spiele-CD einfach in das Laufwerk einzulegen und mit dem Spielen zu beginnen.

Optimieren der Installations-UI

Allgemeine Aspekte vorhandener Spielinstallations-UIs beeinträchtigen die gewünschte Endbenutzererfahrung:

  • Unnötige Fragen an den Benutzer.

    Viele Spiele fragen beispielsweise, ob der Benutzer DirectX installieren möchte. Wenn das Spiel Microsoft DirectX ausführen muss und die richtige Version von DirectX noch nicht installiert ist, sollte das Spiel einfach DirectX installieren.

  • Fragen an den Benutzer stellen, die die große Mehrheit der Benutzer auf die gleiche Weise beantworten wird.

    Für typische Benutzer sind die Standardeinstellungen für den Installationspfad, Menü, Speicherort usw. in Ordnung. Bieten Sie erweiterte Optionen für Benutzer an, die diese Einstellungen ändern möchten.

Die Installations-UI sollte so konzipiert sein, dass der typische Benutzer so schnell wie möglich mit dem Spielen beginnen kann. Wenn AutoAusführen auf dem Computer des Benutzers aktiviert ist, was die Standardeinstellung ist, sollte das Setup-Programm davon ausgehen, dass der Benutzer das Spiel so schnell wie möglich spielen möchte, um unnötige Fragen zu umgehen. Das Setup-Programm sollte mit der Installation des Spiels im Standardinstallationspfad beginnen, vorzugsweise unter Verwendung eines Setups wie in Bei Bedarf installieren beschrieben. Es ist angemessen, Benutzern die Möglichkeit zu geben, die Installationseinstellungen zu ändern, bevor sie automatisch gestartet werden. Dies sollte jedoch erreicht werden, indem der Benutzer aufgefordert wird, eine Taste für erweiterte Setup-Optionen zu drücken, und dann automatisch mit den Standardoptionen fortfahren, wenn der Benutzer diese Taste nicht innerhalb von fünf bis zehn Sekunden drückt.

Wenn AutoAusführen nicht auf dem Computer des Benutzers aktiviert ist, sollte das Setup-Programm davon ausgehen, dass der Benutzer nicht möchte, dass das Setup-Programm mit der automatischen Installation des Spiels beginnen soll. Wenn das Setup-Programm auf andere Art als AutoAusführen gestartet wird, sollte die erweiterte Setup-Ui gestartet werden.

Verringern der für die Installation erforderlichen Zeit

Die meisten Microsoft Windows-Spiele dauern heute von fünf Minuten bis zu einer halben Stunde, um den Installationsprozess abzuschließen. Bei den meisten Konsolenspielen dauert es dagegen nicht länger als dreißig Sekunden, vom Einlegen der Spiel-CD bis zum Spielen des Spiels. Dieser Unterschied ist darauf zurückzuführen, dass die meisten Windows-Spiele so konzipiert sind, dass die meisten, wenn nicht sogar alle Inhalte von der Festplatte des Computers ausgeführt werden; Konsolen, die keinen Platz zum dauerhaften Speichern großer Mengen von Inhalten haben, erfordern, dass die Inhalte von den Quellmedien ausgeführt werden. Während das Laden von Inhalten von der lokalen Festplatte zu schnelleren Ladezeiten im Spiel führt, ist der Nachteil, dass alle Inhalte von den Quellmedien zu einem bestimmten Zeitpunkt auf die Festplatte kopiert werden müssen. Die meisten Windows-Spiele kopieren den gesamten Inhalt auf einmal auf die Festplatte, als Teil eines Installationsprozesses. Dies beeinträchtigt die anfängliche Spielerfahrung des Benutzers, da er mehrere Minuten lang einen Statusbalken beobachten muss, bevor er das Spiel spielen kann.

Es gibt zwei Ansätze, die verwendet werden können, um die anfängliche Installation des Spiels zu minimieren: Minimale Installation und Installation bei Bedarf.

Minimale Installation

In einem minimalen Installationsszenario installiert das Spiel nur einen minimalen Satz von Inhalten auf der Festplatte. In der Regel besteht dies nur aus ausführbaren Spielen und DLLs. Auf den Rest des Inhalts wird direkt über die Quellmedien zugegriffen. Dadurch wird die erforderliche Installationszeit drastisch reduziert, da die ausführbare Datei eines Spiels nur selten größer als 10-20 MB ist. Der Nachteil ist, dass das Spiel länger dauert, um Inhalte während des Spiels zu laden, da es von den langsameren Quellmedien geladen werden muss.

So erstellen Sie eine minimale Installationskonfiguration in einem Windows Installer-basierten Setup:

  • Gruppieren Sie alle Komponenten, die auf der Festplatte installiert werden sollen, in ein Feature, das für die lokale Installation gekennzeichnet ist.

    Dieses Feature wird als „Bootstrap”-Feature bezeichnet.

  • Gruppieren Sie alle Komponenten, die von den Quellmedien ausgeführt werden sollen, in ein Feature, das als „Aus Quelle ausführen” gekennzeichnet ist.

  • Verwenden Sie beim Öffnen einer Datei, die sich möglicherweise auf dem Quellmedium befindet, die MsiGetComponentPath-Funktion, um den Pfad zur Datei zu bestimmen, anstatt den Pfad hart zu codieren.

    Dadurch wird sichergestellt, dass die Datei auch dann gefunden werden kann, wenn sich der Laufwerkbuchstabe des CD/DVD-Laufwerks des Benutzers ändert.

  • Komprimieren Sie Inhalte, die auf der CD/DVD verbleiben.

    Die CPU-Zeit für die Dekomprimierung des Inhalts wird in der Regel durch die langsame Übertragungsrate von Daten vom CD/DVD-Laufwerk ausgeblendet.

  • Gruppieren Sie Inhalte in großen, zusammenhängenden Dateien, und greifen Sie in sequenzieller Reihenfolge darauf zu.

    Die Suchzeiten von CD/DVD-Laufwerken sind im Vergleich zu den Festplatten abträglich, und die meisten CD/DVD-Laufwerke erreichen keine Spitzenübertragungsraten, es sei denn, sie lesen eine große zusammenhängende Datei.

  • Gestalten Sie Inhalte auf der CD/DVD in der Reihenfolge, in der sie wahrscheinlich zugegriffen werden kann.

    Suchzeiten werden erheblich reduziert, wenn auf Dateien in derselben Reihenfolge wie das Layout auf dem Datenträger zugegriffen wird.

Bei Bedarf installieren

Bei einem „Bei Bedarf installieren”-Szenario werden zunächst nur die zum Starten des Spiels erforderlichen Dateien auf der Festplatte installiert. Anstatt jedoch jedes Mal auf die restlichen Inhalte von den Quellmedien zuzugreifen, installiert das Spiel tatsächlich jedes Inhaltsstück auf der Festplatte, wie es zum ersten Mal benötigt wird, und greift dann auf die lokale Festplatte auf jeder nachfolgenden Verwendung zu. Die für die Erstinstallation erforderliche Zeit ist genauso kurz wie bei einer minimalen Installation, aber nach dem ersten Zugriff auf jeden Inhaltsteil verbessern sich die Ladezeiten.

So erstellen Sie eine „Bei Bedarf installieren”-Konfiguration in einem Windows Installer-basierten Setup:

  • Gruppieren Sie alle Komponenten, die zu Beginn auf der Festplatte installiert werden sollen, in ein Feature, das für die lokale Installation gekennzeichnet ist.

    Beachten Sie, dass dies mit dem Bootstrap-Feature für eine minimale Installation identisch ist.

  • Gruppieren Sie den verbleibenden Inhalt in mehrere Features, basierend auf Komponenten, die wahrscheinlich zusammen verwendet werden.

    Gruppieren Sie beispielsweise in einem Level-basierten Spiel alle Inhalte, die auf einer bestimmten Ebene verwendet werden, in einem Feature. Beachten Sie, dass Windows Installer eine Komponente von mehreren Features gemeinsam nutzen kann. Wenn Sie also Inhalte haben, die auf mehreren Ebenen verwendet werden, können Sie diesen Inhalt den Features für alle erforderlichen Ebenen hinzufügen, ohne den Inhalt zu replizieren. Alle diese Features sollten als „Angekündigt” gekennzeichnet werden, was bedeutet, dass sie nicht anfänglich installiert werden, sondern später bei Bedarf installiert werden können.

  • Wenn eine Datei benötigt wird, überprüfen Sie zuerst, ob die Datei bereits mit der Funktion MsiQueryFeatureState installiert ist.

    Wenn sie noch nicht installiert ist (d. h. der Status ist INSTALLSTATE_ADVERTISED), rufen Sie die Funktion MsiConfigureFeature auf, um das Feature lokal zu installieren. Rufen Sie beim Öffnen der Datei nach der Installation MsiGetComponentPath auf, um den Pfad zu der Datei zu ermitteln. Obwohl es für dieses Szenario nicht unbedingt erforderlich ist (da der Inhalt immer auf der Festplatte installiert wird, bevor es verwendet wird), erleichtert dies die Unterstützung der minimalen Installation zusätzlich zur Installation bei Bedarf.

  • Wenn möglich, antizipieren Sie, welche Inhalte in Kürze benötigt werden, und installieren Sie sie während der Leerlaufzeit im Hintergrund.

    Die Installation im Hintergrund ist am besten geeignet, wenn sich das Spiel an einem Punkt befindet, an dem nicht das letzte Stück Leistung aus dem Computer herausgeholt werden muss, z. B. während der Anzeige eines Intro-Videos, einer Zwischensequenz, eines Menüs usw.

  • Erstellen Sie eine Option im Menü „Optionen” des Spiels, um die Installation aller verbleibenden Inhalte zu erzwingen.

    Um dies zu implementieren, erstellen Sie ein Feature, das ein übergeordnetes Element aller „Bei Bedarf installieren”-Features ist, und rufen Sie dann MsiConfigureFeature auf, um dieses Masterfeature lokal zu installieren. Dadurch werden auch die Unterfeatures lokal installiert.

  • Das Inhaltslayout sollte für eine minimale Installation ähnlich sein, mit der Ausnahme, dass Inhalte nur mit anderen Inhalten gruppiert werden sollten, die wahrscheinlich gleichzeitig benötigt werden (z. B. alle Inhalte für eine Ebene sollten zusammen sein).

Spiele nach der Installation

AutoRun

Um ein bereits installiertes Spiel zu spielen, sollte der Benutzer nur die Installationsdatenträger auf der Laufwerkleiste ablegen müssen. Als Erstes sollte die ausführbare Datei „AutoAusführen” auf dem Datenträger überprüfen, ob das Spiel bereits installiert wurde, und wenn ja, das Spiel starten. Vorausgesetzt, dass das Spiel mit einem Windows Installer-basierten Setup installiert wurde, überprüfen Sie, ob das Spiel installiert ist, mit einem einzigen Aufruf der Funktion MsiQueryProductState.

Konvertieren einer Installation bei Bedarf in eine Vollinstallation

Während eine Installation bei Bedarf dem Benutzer ermöglicht, das Spiel viel früher als eine Vollinstallation zu spielen, möchte ein Benutzer möglicherweise explizit den Rest des Spielinhalts auf der lokalen Festplatte installieren. Der Benutzer möchte das Spiel möglicherweise spielen können, ohne dass die Quellmedien erforderlich sind, oder er möchte einfach die längeren Ladezeiten im Spiel vermeiden, die sich aus der Installation von Inhalten bei Bedarf ergeben. Wenn das Setup des Spiels Windows Installer verwendet, kann das Spiel eine Option in der UI mit den Spieloptionen bereitstellen, um die Installation des restlichen Inhalts abzuschließen. Wenn der Benutzer diese Option auswählt, kann das Spiel MsiConfigureFeature aufrufen, um zu erzwingen, dass die verbleibenden Features lokal installiert werden. Dazu muss keine separate Setup-Anwendung erstellt werden.

Wartung von Spielsoftware und -inhalten

Einer der Vorteile, die Windows-Spiele gegenüber Konsolenspielen haben, ist die relative Leichtigkeit, mit der der Herausgeber Updates für das Spiel nach der ersten Veröffentlichung veröffentlichen kann. Unabhängig davon, ob diese Updates neue Inhalte einführen oder nur Fehler beheben, ist es wichtig, den Updatevorgang für den Endbenutzer so einfach wie möglich zu machen. Der Updateprozess ist für Onlinespiele noch wichtiger, was in der Regel erfordert, dass alle Benutzer die neueste Version des Spiels ausführen, um eine Verbindung herzustellen.

Automatische Überprüfung auf Updates

Benutzer sollten sich nicht daran erinnern müssen, nach Patches zu suchen. Wenn ein Update für das Spiel verfügbar ist, sollte der Benutzer zumindest benachrichtigt werden und im Idealfall sollte der Patch bereits heruntergeladen werden.

Eine einfache Möglichkeit für ein Spiel, nach Updates zu suchen, besteht darin, eine Verbindung mit einem Webserver herzustellen, der vom Herausgeber mithilfe einer bestimmten URL gehostet wird, und eine Textdatei herunterzuladen, die die Versionsnummer der neuesten verfügbaren Version des Spiels angibt, zusammen mit einer URL zum Herunterladen eines Pakets, das das Spiel auf die neueste Version aktualisiert.

Es wird jedes Mal nach Updates gesucht, wenn der Benutzer das Spiel spielt, um sicherzustellen, dass der Benutzer die neueste Version ausführt. Wenn jedoch das Vorhandensein eines neuen Updates sofort erkannt wird, bevor der Benutzer versucht, das Spiel zu spielen, kann der Benutzer gezwungen sein, das Spielen des Spiels zu verzögern, bis das Update den Download abgeschlossen hat. Bei umfangreichen Updates oder langsamen Verbindungen kann diese Verzögerung in der Größenordnung von Stunden liegen. Um zu vermeiden, dass der Benutzer vor dem Spielen des Spiels warten muss, kann das Spiel den Taskplaner verwenden, um regelmäßige Überprüfungen auf neue Updates zu planen. Wenn ein Update erkannt wird, kann das Spiel sofort mit dem Herunterladen des Updates beginnen, sodass es wahrscheinlich vollständig heruntergeladen und zum nächsten Mal installiert werden kann, wenn der Benutzer das Spiel das nächste Mal spielt.

Automatisches Herunterladen von Patches

Sobald das Spiel festgestellt hat, dass ein neues Update verfügbar ist, sollte es sofort mit dem Herunterladen des Updates beginnen. Da die Aufgabe, die nach Updates sucht, in der Regel im Hintergrund ausgeführt wird, muss der Download so unauffällig wie möglich sein. Der „Intelligente Hintergrundübertragungsdienst” (Background Intelligent Transfer Service, BITS) ist ein Betriebssystemfeature, mit dem Anwendungen Dateien aus dem Internet herunterladen können, auch wenn die Anwendung selbst nicht ausgeführt wird. BITS-Downloadaufträge werden nur ausgeführt, wenn der Benutzer angemeldet ist und nur, wenn der Computer bereits mit dem Netzwerk verbunden ist. BITS versucht nicht, zu erzwingen, dass der Computer eine eigene Verbindung mit dem Netzwerk herstellt. Wenn der Benutzer die Verbindung mit dem Netzwerk trennt oder sich abmeldet, wird der BITS-Auftrag angehalten und wird fortgesetzt, wenn sich der Benutzer das nächste Mal anmeldet und eine Verbindung mit dem Netzwerk herstellt. Die Anwendung kann ihre BITS-Aufträge so konfigurieren, dass nur Netzwerkbandbreite verwendet wird, die andernfalls nicht verwendet wird, um zu verhindern, dass sich der Auftrag auf die Leistung anderer Anwendungen auswirkt, die möglicherweise das Netzwerk verwenden (z. B. ein Onlinespiel). BITS ist unter Windows XP und Windows 2000 Service Pack 3 verfügbar.

Weitere Ressourcen

Weitere Informationen zu den Technologien, auf die in diesem Artikel verwiesen wird, finden Sie in den folgenden Themen:

Weitere Informationen zur Verwendung von Windows Installer für Spiele finden Sie in der Spalte „Driving DirectX” des nächsten Monats unter „Einführung in Windows Installer für Spieleentwickler”.

MsiConfigureFeature

MsiQueryProductState

MsiQueryFeatureState

MsiGetComponentPath