Top-Tools und -Techniken zum Erstellen robusterer Windows-Spiele

Eine der unerwünschten Kosten für die Spieleproduktion sind Supportanfragen. Jedes Mal, wenn ein Benutzer den Kundensupport kontaktiert, wird der Gewinn aus dem Spiel reduziert. Während einige Anfragen an den Kundensupport nicht verhindert werden können, können andere durch die Verwendung bewährter Entwicklungspraktiken eliminiert oder reduziert werden. In diesem Artikel werden Tools und Techniken beschrieben, mit denen Sie die Anzahl der empfangenen Supportanfragen verringern können.

Alle hier beschriebenen Tools sind kostenlos, und die Techniken sind einfach genug, um die meisten Entwicklungsmethoden hinzuzufügen.

Tools und Methoden:

PREfast

PREfast for Drivers ist ein Tool von Microsoft, das Ausführungspfade in kompilierten C oder C++ analysiert, um Laufzeitfehler zu finden. PREfast arbeitet durch alle Ausführungspfade in allen Funktionen und bewertet jeden Pfad für Probleme. Obwohl dieses Tool normalerweise zum Entwickeln von Treibern und anderem Kernelcode verwendet wird, kann es Spielentwicklern helfen, Zeit zu sparen, indem einige Fehler beseitigt werden, die schwer zu finden sind oder vom Compiler ignoriert werden. Die Verwendung von PREfast ist eine hervorragende Möglichkeit, Ihre Post-Release-Workload und Supportkosten zu reduzieren.

PREfast verfügt über Visual Studio Team System und als Teil des Windows Driver Kit. Weitere Informationen finden Sie unter PREfast Build.

AppVerifier

Der Microsoft Application Verifier oder AppVerifier ist ein Tool, das Testern helfen kann, indem sie mehrere Funktionen in einem Tool bereitstellen. AppVerifier wurde entwickelt, um das Testen gängiger Programmierfehler zu vereinfachen. AppVerifier kann die Parameter überprüfen, die in API-Aufrufen übergeben werden, fehlerhafte Eingaben einfügen, um die Fehlerbehandlungsmöglichkeit zu überprüfen und Änderungen am Registrierungs- und Dateisystem zu protokollieren. AppVerifier kann auch Pufferüberläufe im Heap erkennen, überprüfen, ob eine Zugriffssteuerungsliste (Access Control List, ACL) ordnungsgemäß definiert wurde, und die sichere Verwendung von Sockets-APIs erzwingen.

AppVerifier kann zwar nicht vollständig sein, kann jedoch eine weitere Komponente der Toolbox eines Testers sein, um einem Entwicklungsstudio bei der Veröffentlichung eines Qualitätsprodukts zu helfen und potenzielle Kosten nach der Veröffentlichung zu reduzieren.

Weitere Informationen zur Anwendungsüberprüfung finden Sie unter Application Verifier und Verwendung von Application Verifier im Lebenszyklus Ihrer Softwareentwicklung.

Ein ähnliches Tool für Treiber, Driver Verifier, ist ebenfalls verfügbar. Weitere Informationen finden Sie unter Verwenden der Treiberüberprüfung zum Identifizieren von Problemen mit Windows-Treibern für fortgeschrittene Benutzer unter Microsoft-Hilfe und -Support.

Microsoft Anwendungskompatibilitäts-Toolkit

Das Microsoft Anwendungskompatibilitäts-Toolkit ist eine Reihe kostenloser Tools, mit denen Entwickler schnell überprüfen können, wie ihre Versionen auf neu veröffentlichten Service Packs für Microsoft Windows ausgeführt werden. Wenn Sie für neue Service Packs bereit sind, können Entwickler Probleme verhindern oder bereit sein.

Das Anwendungskompatibilitäts-Toolkit und weitere Informationen finden Sie unter Anwendungskompatibilitäts-Toolkit (Application Compatibility Toolkit, ACT).

Testen des Benutzerkontoschutzes

Windows Vista und Windows 7 verfügen über zwei primäre Arten von Benutzerkonten: Standardbenutzer und Administrator. Standardbenutzerkonten sind der bevorzugte Typ für alle Benutzer, da sie das Risiko von Schäden am System durch böswillige Anwendungen verringern. Da Standardbenutzer Zugriffseinschränkungen haben , z. B. nicht in den Ordner „Programme” oder in HKEY_LOCAL_MACHINE (HKLM) in der Registrierung schreiben können, ist es wichtig, dass Spiele entwickelt und getestet werden, um mit einem Standardbenutzerkonto zu arbeiten.

Weitere Informationen zu diesem Thema finden Sie in den Artikeln Patching Game Software in Windows XP, Windows Vista und Windows 7 und Benutzerkontensteuerung für Spieleentwickler.

PIX für Windows 2000

PIX ist ein Tool zum Sammeln und Analysieren von Leistungsinformationen aus einer ausgeführten Anwendung. PIX kann statistische Daten darüber sammeln, warum manche Frames langsamer gerendert werden als andere, und kann eine schlechte API-Nutzung identifizieren. PIX kann auch automatisiert werden, um den täglichen Build zu testen und plötzliche Änderungen der Anwendungsleistung zu kennzeichnen. Durch die Verwendung von PIX in einer Vielzahl von Hardwarekonfigurationen können Tester und Entwickler Supportanfragen im Zusammenhang mit der Spielleistung minimieren.

Konfiguration der Erkennung

Gerätefunktionen, die von Treibern verfügbar gemacht werden, sind nicht immer korrekt. Eine Lösung besteht darin, ein datenbankgesteuertes System für die Konfiguration von Anwendungen zu verwenden, z. B. das System, das im Beispiel ConfigSystem gezeigt wird, das im DirectX SDK enthalten ist. Ein Erkennungsmodell, das dem System im Beispiel ähnelt, kann dabei helfen, Gerätefunktionen zu identifizieren, die die Spielleistung beeinträchtigen, und somit die Anzahl der Supportanfragen hinsichtlich der Leistung zu verringern.

Vollständige Compilerwarnungen aktivieren

Es empfiehlt sich, alle Compilerwarnungen wiederherzustellen, die durch #pragma Warnung deaktiviert wurden, sobald ein Projekt stabil wurde. Entwickler sollten versuchen, alle Warnungen vor der Veröffentlichung eines Produkts zu beseitigen. Selbst wenn eine Warnung keinen Absturz oder Fehler im System eines Entwicklers verursacht, kann dies weiterhin zu einem Problem im System eines Benutzers führen. Wenn eine Warnung nicht eliminiert werden kann, muss das Testteam ermitteln, ob die Warnung nur wenige oder keine Fehler im System eines Benutzers verursacht.

Microsoft-Symbolserver

Microsoft stellt einen auf das Internet zugänglichen Server bereit, der Symboldateien für die Microsoft Windows-Betriebssysteme sowie andere Microsoft-Produkte bereitstellt. Symbole stehen auch vom Server für aktuelle Betas und Release-Kandidaten von Windows-Produkten sowie Hot Fixes und Service Packs zur Verfügung. Sie können den Debugger so konfigurieren, dass Symbole bei Bedarf während einer Sitzung zum Debuggen heruntergeladen werden, anstatt Symboldateien separat vor einer Sitzung zum Debuggen herunterzuladen. Die Symbole werden an einen von Ihnen angegebenen Verzeichnisspeicherort heruntergeladen, und der Debugger lädt sie von dort aus.

Weitere Informationen zum Microsoft-Symbolserver finden Sie unter Symbole für das Debuggen von Windows.

Windows-Fehlerberichterstattung

Windows-Fehlerberichterstattung (Windows Error Reporting, WER) ist ein Von Microsoft bereitgestellter Dienst, mit dem Entwickler Fehlerinformationen aus Anwendungen auf einheitliche und geordnete Weise sammeln können. Obwohl es völlig freiwillig ist, sollten Entwickler diesen Dienst nutzen, um zu ermitteln, welche Fehler am häufigsten auftreten. Die Verwendung von WER kann beim Debuggen häufig gemeldeter Probleme helfen, wodurch Supportanfragen für die häufigsten Fehler beseitigt werden.

Weitere Informationen zu WER finden Sie unter Absturzabbildanalyse.

Tools zur Leistungsoptimierung

Entwickler können die Leistung ihres Spiels mit Leistungsanalyseprogrammen optimieren. Zusätzlich zu PIX gibt es eine Reihe beliebter Leistungsanalysatoren für Windows, z. B. Intel VTune Performance Analyzer und die AMD CodeAnalyst Performance Analyzer. Diese Tools helfen bei der Identifizierung von Engpässen und bei der Entscheidung, wie die Gesamtleistung einer Anwendung verbessert werden soll. Die Verbesserung von Leistungsengpässen vor der Veröffentlichung trägt dazu bei, die Kosten nach der Veröffentlichung zu senken.

Zusammenfassung

Jeder, der am Design, der Entwicklung und den Tests beteiligt ist, muss berücksichtigen, wie sich seine Arbeit auf die Kosten nach der Veröffentlichung eines Produkts auswirkt. Durch die Verwendung der oben genannten Tools und Methoden im Produktionsprozess können die Anzahl der Supportanfragen reduziert werden. Dies wird wiederum die Gewinne erhöhen, indem die Kosten nach der Veröffentlichung der Spieleentwicklung reduziert werden.