Technische Anforderungen für Spiele für Windows: bewährte Methoden für Spiele für Windows XP, Windows Vista, Windows 7 und Windows 8

Dieser Artikel enthält technische Anforderungen und bewährte Methoden für Spiele, die unter Windows ausgeführt werden. Wir haben diese technischen Anforderungen und bewährten Methoden in erster Linie geschrieben, um Windows Vista und Windows 7 sowie das ältere Windows XP-Betriebssystem zu behandeln. Diese bewährten Methoden gelten in der Regel auch für Win32-Desktopspiele unter Windows 8.

Diese Artikel enthalten die folgenden Abschnitte:

Unterschiede für Windows 8

Nachfolgend finden Sie eine Zusammenfassung der wichtigsten Unterschiede bei der Anwendung dieser technischen Anforderungen und bewährten Methoden für Windows 8.

Die Benutzeroberfläche des Spiele-Explorers ist nicht sichtbar.

Alle Spiele, die Sie beim Spiele-Explorer registrieren, werden als Kacheln auf der neuen Windows-Benutzeroberfläche angezeigt, aber viele der Metadaten, die dem Titel zugeordnet sind, sind nicht mehr sichtbar. Sie verwenden weiterhin das Tool Games Definition File Maker (GDFMAKER.EXE), das jetzt im Windows Software Development Kit (SDK) verfügbar ist, um die Metadaten zu erstellen. Außerdem verwenden Sie die vorhandenen Mechanismen zum Bereitstellen der Metadaten. Testen Sie ihre Spiele-Explorer-Registrierung weiterhin mit Windows 7, und stellen Sie sicher, dass die neue Kachel der Windows-Benutzeroberfläche angezeigt wird, wenn Sie sie unter Windows 8 installieren (siehe 1.1 Integration des Spiele-Explorers).

Informationen zum Herunterladen des Windows 8-SDKs finden Sie unter Downloads für die Entwicklung von Desktop-Apps.

Die Registrierung mit den Spiel-Explorer-APIs ist weiterhin der Mechanismus für die Registrierung Ihres Spiels mit Windows-Jugendschutz

Es wird empfohlen, die Windows SDK-Version von GDFMAKER auf der veröffentlichten Version von Windows 8 auszuführen, um sicherzustellen, dass alle derzeit unterstützten Bewertungssysteme aufgefüllt werden können.

Hinweis

Diese Version von GDFMAKER erfordert .NET 4.0.

Weitere Informationen unter 1.2 Unterstützung von Family Safety / Jugendschutz.

Je nach Ihren Anforderungen gibt es nun drei Optionen für die Verwendung der XINPUT-API.

XINPUT 1.4 ist in Windows 8 integriert. Sowohl Windows Store-Apps als auch Desktop-Win32-Apps können XINPUT 1.4 verwenden. Alle Versionen von Windows können XINPUT 9.1.0 für vereinfachte allgemeine Controller verwenden, aber es gibt kein Umverteilungspaket mit XINPUT 9.1.0. Alle Versionen von Windows können auch die vorhandene DirectX SDK-Version XINPUT 1.3 verwenden, für die DirectSetup bereitgestellt werden muss.

Siehe 1.4 Unterstützung des allgemeinen Xbox 360-Controllers für Windows.

Nur eine begrenzte Gruppe von Win32-Desktop-Apps wird unter Windows RT unterstützt.

Spiele, die unter Windows 7 ausgeführt werden, können und sollten auf Windows 8 x86- und x64-Plattformen ordnungsgemäß ausgeführt werden.

Siehe 2.2 Unterstützung von Windows x64-Versionen.

Sicherstellen, dass alle Betriebssystemüberprüfungen ordnungsgemäß durchgeführt werden

Die Betriebssystemversion von Windows 8 ist 6.2. Windows 8 übergibt die aktuellen Mindestleistentests, die für die Bereitstellung von Spielen empfohlen werden.

Das DirectX-Endbenutzer-Paket für die Umverteilung wird erfolgreich unter Windows 8 ausgeführt, wie unter Windows 7, zum Bereitstellen von D3DX9, D3DX10, D3DX11, XINPUT 1.3, XAUDIO 2.7, XACTEngine usw.

Ein bekanntes Problem besteht jedoch bei DirectSetup auf Systemen, auf deren Basis nur .NET 4.0 installiert ist, aufgrund der Bereitstellungsbehandlung der älteren verwalteten DirectX 1.1-Assemblys. Dieses Problem gilt sowohl für Windows 8, das standardmäßig im Lieferumfang von .NET 4.5 enthalten ist, als auch für neue Windows XP-Computer mit installierter .NET 4.0-Laufzeit. Dieses Problem gilt jedoch nicht für eine .NET-Version vor .NET 4.0. Windows 8 weist zwar ein Anwendungskompatibilitätsverhalten auf, um dieses Problem automatisch zu beheben (was Netzwerkzugriff erfordert), es wird jedoch empfohlen, dass Spiele, die weiterhin das DirectSetup-Update im DirectX SDK (Juni 2010) aktualisiert haben, aktualisierte Version der REDIST-Dateien bereitstellen. Wie immer, wenn Sie DirectSetup für Ihren Titel verwenden, sollten Sie Ihren Titel auf die minimal erforderliche Anzahl von CABs reduzieren.

Siehe 3.4 Ordnungsgemäßes Installieren von Windows-Ressourcen.

Spiele, die die kompatible .NET 2.0-Runtime (2.0, 3.0, 3.5) erfordern, verwenden weiterhin vorhandene Bereitstellungsmechanismen.

Diese Spiele lösen ein Anwendungskompatibilitätsverhalten unter Windows 8 aus, um die .NET 3.5-Laufzeit automatisch zu aktivieren (die Netzwerkzugriff erfordert). Es wird jedoch empfohlen, dass .NET-Entwickler zur .NET 4.0-Laufzeit wechseln.

Hinweis

Die älteren verwalteten DirectX 1.1-Assemblys sind nicht mit der .NET 4.x-Laufzeit kompatibel.

Siehe 3.4 Ordnungsgemäßes Installieren von Windows-Ressourcen.

Die Verwendung eines Autorunners oder einer anderen Vorabinstallationstechnologie, die auf .NET basiert, wird nicht empfohlen.

Sie können davon ausgehen, dass nur .NET 2.0-kompatible Laufzeiten (2.0, 3.0, 3.5) unter Windows Vista und Windows 7 vorhanden sind. Unter Windows 8 ist standardmäßig nur die .NET 4.0-kompatible Laufzeit vorhanden.

Siehe 3.7 Unterstützung für Autorun.

Es gibt eine aktualisierte Anwendungsüberprüfung für Windows 8

Das Windows 8 SDK enthält diesen aktualisierten Application Verifier.

Siehe 4.2 Beseitigen von Anwendungsüberprüfungsfehlern.

Zusätzliche Informationen

Handbuch zur Kompatibilität von Windows 8 und Windows Server 2012
Wo finde ich das DirectX SDK?

Spiele für Windows

Zusammenfassung der Spieleanforderungen

Kundenvorteile

Computerspiele sind ein wichtiges Unterhaltungselement unter Windows, aber Bedenken hinsichtlich der Benutzerfreundlichkeit haben im Laufe der Jahre zu Frustrationen bei den Kunden geführt. Traditionell werden Spiele wie Anwendungen installiert, aber sie werden eher wie Unterhaltungsmedien (Filme oder Songs) verwendet. Innovationen, z. B. Spiele-Explorer, machen Spiele einheitlich verfügbar, die sich von Standardanwendungen unterscheiden. Durch diese Neuerungen erhalten Spiele in Windows den Status eines „First-Class Citizens”, zusammen mit Musik und Bildern. Die folgenden Anforderungen tragen dazu bei, dass Windows Vista und Windows 7 ein verbessertes, barrierefreieres und einheitliches Spielerlebnis bieten. Gleichzeitig stellen sie die Kompatibilität mit Windows XP sicher.

1.1 Integration des Spiele-Explorers

Anforderung

Das Spiel muss im Spiele-Explorer (Ordner Spiele) unter Windows Vista und Windows 7 sichtbar sein. Bei Auswahl muss das Spiel auch die richtigen Metadaten anzeigen, einschließlich Herausgeber, Entwickler, Veröffentlichungsdatum, Version, Windows Experience Index-Score (falls zutreffend) und zugehörige Links.

Wenn das Spiel digital über einen Onlinespieldienst verteilt wird, sollte der Dienstanbieter auch im Spiele-Explorer angezeigt werden. Um die ordnungsgemäße Handhabung des Anbieters sicherzustellen und die Verwendung von RSS-Feeds zu ermöglichen, sollte Version 2 des Schemas für Spieledefinitionsdateien (GDFs) verwendet werden. (Weitere Informationen zu GDFs finden Sie unter „Zusätzliche Informationen”.)

Darüber hinaus müssen Spieleinstallationsprogramme die folgenden Regeln beachten, wenn sie unter Windows Vista und Windows 7 ausgeführt werden:

  • Die Installation darf keine Verknüpfung erstellen, um das Spiel auf dem Desktop, im Menü oder an einem anderen Ort zu starten.
  • Aufgaben und Verknüpfungen zum Entfernen dürfen nicht erstellt werden.
  • Benutzer müssen in der Lage sein, das Spiel mithilfe von Programmen und Features in Systemsteuerung unter Windows Vista und Windows 7 zu entfernen, oder Programme in Systemsteuerung unter Windows XP hinzufügen oder entfernen.

Unter Windows XP und in früheren Versionen von Windows kann das Spielinstallationsprogramm nach Bedarf Programmgruppen, Desktopsymbole oder Tastenkombinationen erstellen.

Sinn

Der Windows-Spiele-Explorer ähnelt dem Konzept der Windows XP-Ordner Meine Dokumente oder Meine Bilder. Die Idee besteht darin, ähnliche Inhalte an einem zentralen Ort zu zentralisieren und einfachere Organisations- und kontextabhängige Aktivitäten zu ermöglichen. Der Spiele-Explorer erweitert das Konzept Meine Dokumente oder Meine Bilder, indem er eine umfassendere Organisation und Kontrolle über Spiele ermöglicht. Der Spiele-Explorer ermöglicht es Spielern, alle auf ihren Systemen installierten Spiele anzuzeigen, zu organisieren und zu interagieren. Außerdem ermöglicht es Spieleherausgeber, wichtige Spielinformationen effektiver zu kommunizieren. Das System ist datengesteuert und erleichtert es einem Spieleherausgeber, Spielinformationen über die Lebensdauer des Produkts zu aktualisieren.

Weitere Informationen

Für die Integration in den Spiele-Explorer müssen Sie eine Spieldefinitionsdatei (Game Definition File, GDF) erstellen, bei der es sich um eine XML-Textdatei handelt, die in eine Binärdatei (eine ausführbare Datei oder eine DLL) als Ressource eingebettet ist, zusammen mit einem Windows-Symbol. Das Spiel muss dann beim Spiele-Explorer registriert werden. Die GDF ermöglicht es auch, Informationen wie den Titel des Spiels, den Herausgeber, den Entwickler, Links zu Websites und optionale Aufgaben zu veröffentlichen. Beachten Sie, dass Supportaufgaben nur Links zu Websites sein können, aber auch Spielaufgaben können für optionale Supportaufgaben verwendet werden.

Der Spiele-Explorer kann ein Vorschauminiatur-Bitmap-Bild verwenden, es wird jedoch empfohlen, stattdessen eine Windows-Symbolressource mit großen Symbolen (256 256) bereitzustellen. Die Symbolressource sollte Bildgrößen von 256 256 48 48, 32 32 und 16 16 in 24-Bit-Farben (True Color) und 8-Bit-Farbtiefe (256) enthalten. Der in Visual Studio 2008 und 2010 bereitgestellte Symbol-Editor unterstützt diese großen Symbolformate wie IconWorkshop Lite.

Details zur Integration mit dem Windows-Spiele-Explorer finden Sie im DirectX SDK. Das DirectX SDK enthält einen GDF-Editor (Game Definition File) sowie ein Beispiel-GDF, das in GDFExampleBinary enthalten ist. Ein weiteres Beispiel, GameUxInstallHelper, bietet Routinen für die Integration der erforderlichen Funktionen in vorhandene Installationssysteme. Der Game Definition File Validator (gdftrace.exe) bietet Debugging-Unterstützung für die Auswertung einer GDF. Siehe auch „Integration von Windows Spiele-Explorer” in der DirectX SDK-Dokumentation für C++.

Windows 7 bietet Unterstützung für die zweite Version eines Schemas für GDF-Dateien. Die neue Version enthält eine vereinfachte Methode zum Erstellen von Spielaufgaben und Unterstützung für Updatebenachrichtigungen, Spieledienstanbieter, Spielstatistiken und RSS-Feeds für Spieledienstanbieter. Die neueste Version von GameUxInstallHelper behandelt alle Registrierungs- und Legacyunterstützungen, die für die Verwendung einer GDF-Datei der Version 2 mit Windows Vista erforderlich sind. Verwenden Sie die Tools und Beispielcode aus dem DirectX SDK ab August 2009 oder höher. Die Verwendung einer GDF-Datei der Version 2 wird empfohlen, um Unterstützung für RSS-Feeds, Spielstatistiken und Updatebenachrichtigungen zu aktivieren. Siehe auch die Beispiele ProviderGDFExampleBinary und GameStatisticsExample.

Unter Windows Vista Business Edition, Windows 7 Professional Edition und Enterprise Edition von Windows Vista und Windows 7 ist der Link „Spiele” auf dem Startmenü ausgeblendet. Der Spiele-Explorer ist weiterhin im Startmenü verfügbar, indem Sie auf Alle Programme und dann auf Spiele klicken.

Für zugehörige Anwendungen, die mit Ihrem Spiel installiert werden, aber nicht selbst Spiele sind, können Sie unter allen Windows-Versionen, einschließlich Windows Vista und Windows 7, Programmgruppen, Verknüpfungen und Desktop-Symbole im Startmenü erstellen. Solche zugehörigen Anwendungen sollten geltende Spiele für Windows-Anforderungen bestehen; Weitere Informationen finden Sie in den Richtlinien für Spiele-Middleware-Produkte. Spieledienste werden empfohlen, sich beim Spiele-Explorer als Spieleanbieter für Windows 7 zu registrieren. 1

1.2 Unterstützung von Family Safety / Jugendschutz

Anforderung

Spiele müssen Windows Family Safety vollständig unterstützen, indem sie die folgenden Regeln einhalten:

  • Spiele dürfen nicht erfordern, dass der Benutzer über Administratoranmeldeinformationen verfügt, um zu spielen. Installation, Patching und Entfernung können administrative Anmeldeinformationen erfordern, vorbehaltlich der Anforderungen in Abschnitt 3. (Im Zusammenhang mit dieser Anforderung 2.1 Befolgen der Richtlinien für die Benutzerkontensteuerung.)
  • Spiele, die von Windows unterstützten Bewertungsgremien wie ESRB und PEGI bewertet werden, müssen ihre zugewiesenen Bewertungsinformationen in ihre Spieldefinitionsdatei (GDF) einschließen. Alle verfügbaren Bewertungsdaten müssen in jeder lokalisierten Version der GDF sowie in der sprachneutralen Version enthalten sein.
  • Spiele müssen ihre ausführbaren Dateien in der GDF auflisten, um eine gute Benutzererfahrung für allgemeine Anwendungseinschränkungen bereitzustellen, es sei denn, das Spiel verwendet eine Antipiraterietechnologie, die zufällig benannte ausführbare Dateien zur Laufzeit erstellt.
  • Spiele müssen die VerifyAccess-Methode der Spiele-Explorer-Schnittstelle während des Starts aufrufen, falls verfügbar, und beenden, wenn sie *pfHasAccess als FALSCH zurückgibt.

Sinn

Alle Spiele müssen im Kontext eines Standardbenutzerkontos ausgeführt werden, um Konten zuzulassen, die von Windows Jugendschutz gesteuert werden, um das Spiel zu spielen. Eltern möchten, dass sie den Zugang ihrer Kinder zu Spielen überwachen und kontrollieren können. Darüber hinaus wünschen zahlreiche Branchen-, Regierungs- und Interessengruppen bessere Möglichkeiten, Eltern das Überwachen und Kontrollieren der Spiele zu ermöglichen, denen ihre Kinder ausgesetzt sind. In Verbindung mit der Architektur, die vom Spiele-Explorer angeboten wird, bietet Microsoft Eltern diese Möglichkeit über Windows Parental Controls.

Selbst bei Spielen, die nicht an einem Bewertungsausschussprogramm teilnehmen, führt das Erfordernis erhöhter Berechtigungen zu einem schlechten Spielerlebnis für die Mehrheit der Benutzerkonten. Dies ist insbesondere dann der Fall, wenn jugendschutzfähige Steuerelemente aktiviert sind, was erfordern würde, dass der Elternteil jedes Mal, wenn das Spiel gestartet wird, das Administratorkennwort eingeben muss.

Mit dem Windows- Jugendschutzsystem können Eltern die Bewertungen auswählen, die sie für ihre Kinder für angemessen halten. Jugendschutz unterstützt viele der weltweiten Bewertungssysteme. Die Jugendschutzkontrollen ermöglichen es Eltern auch, den Zugriff auf Spiele basierend auf Inhaltsdeskriptoren (sofern das entsprechende Bewertungssystem sie unterstützt) einzuschränken und den Zugriff auf einzelne Spiele zuzulassen oder zu verbieten.

Die Standardauswahl des Bewertungssystems für Windows-Jugendschutz basiert auf der Gebietsschemaeinstellung des Systems, kann aber vom Benutzer in den Regions- und Sprachoptionen in Systemsteuerung geändert werden. Daher sollte jede unterstützte Sprache alle verfügbaren Bewertungsdaten zur Verfügung stellen, damit der Benutzer die Freiheit hat, die von ihm gewünschte Bewertungsplattform auszuwählen.

Weitere Informationen

Spiele ohne Bewertung müssen weiterhin die Anforderungen erfüllen, um das Spielen als Standardbenutzer zu unterstützen und VerifyAccess aufzurufen. Bei solchen Spielen wird standardmäßig die Kategorie „Nicht bewertet” angezeigt, der Text „Keine Bewertung bereitgestellt” im Spiele-Explorer angezeigt und unterliegen der Einstellung Spieleinschränkungen in Jugendschutzeinstellungen für nicht bewertete Spiele. Die Standardeinstellung Einschränkungen lautet „Zulassen”.

Bewertungsinformationen in der GDF werden ignoriert, wenn die enthaltende Binärdatei nicht ordnungsgemäß mit Authenticode signiert ist. Informationen hierzu finden Sie unter „Anforderung 2.3”.

Der Game Definition File Editor im DirectX SDK enthält alle unterstützten Bewertungssysteme und repliziert diese Informationen ordnungsgemäß in alle lokalisierten Versionen der GDF sowie eine sprachneutrale Version. Das GDFTrace-Tool decodiert und überprüft alle vorhandenen Bewertungsinformationen. Verwenden Sie die Version von August 2009 oder höher dieser Tools.

Die GDF für einen Spieleanbieter enthält in der Regel keine Bewertungsinformationen und unterliegt den Einstellungen für nicht bewertete Inhalte.

Betriebssystem Unterstützte Bewertungssysteme
Windows Vista
  • CERO (Japan)
  • ESRB (USA)
  • OFLC (Australien)
  • PEGI (Europa)
  • PEGI Finnland (veraltet)
  • PEGI Portugal
  • PEGI/BBFC (Vereinigtes Königreich)
  • USK (Deutschland)
Windows Vista mit einem Service Pack Service Packs für Windows Vista fügen Unterstützung für Folgendes hinzu:
  • GRB (Südkorea)
  • ESRB „Mild”-Varianten-Inhaltsdeskriptoren
Windows 7 Windows 7 unterstützt die von Windows Vista unterstützten Bewertungssysteme und fügt Unterstützung für Folgendes hinzu:
  • CSRR (Taiwan)
Windows 8 Windows 8 unterstützt die vorherigen Bewertungssysteme und fügt Unterstützung für Folgendes hinzu:
  • COB-AU (Australien)
  • DJCTQ (Brasilien)
  • PFB (Südafrika)
  • OFLC-NZ (Neuseeland)
Windows 8 beendet die Unterstützung für die folgenden jetzt veralteten Systeme:
  • PEGI-FI (Finnland)
  • OFLC (Australien)

Hinweis

Alle Titel, die neue ESRB Windows Vista Service Pack 1 (SP1)-Inhaltsdeskriptoren enthalten, werden ohne Service Pack unter Windows Vista als „Nicht bewertet” angezeigt.

Neuere Bewertungsdaten werden auf Versionen von Betriebssystemen, die sie nicht unterstützen, ignoriert. Die PEGI-Variante (Finnland) wird nun zugunsten des Standard-Bewertungssystems PEGI (Europa) veraltet. Das OFLC-System ist jetzt zugunsten von COB-AU für Australien veraltet.

Weitere Informationen zum Erstellen eines Spiels, das mit Standardbenutzerrechten kompatibel ist, finden Sie im DirectX-Artikel Benutzerkontensteuerung für Spieleentwickler.

Weitere Informationen zur Spieldefinitionsdatei (GDF) finden Sie unter „Anforderung 1.1”.

1.3 Unterstützen von Rich-gespeicherten Spielen

[Diese Anforderung wurde eingestellt]

1.4 Unterstützung des allgemeinen Xbox 360-Controllers für Windows [Bedingungsanforderung]

Anforderung

Spiele, die Gamepad-Controller unterstützen, müssen den Xbox 360-Controller für Windows mit der XInput-API unterstützen. Wenn DirectInput-Peripheriegeräte ebenfalls unterstützt werden, kann DirectInput auch verwendet werden. XInput muss jedoch die Standard-API sein, wenn ein mit Xbox 360 kompatibles Gerät verwendet wird.

Alle Verweise auf allgemeine Controllertrigger und -tasten müssen die Xbox 360-Namen verwenden. Ausführliche Informationen finden Sie in der Liste der allgemeinen Xbox 360-Controller für Windows-Terminologie .

Die Vibration des Controllers muss ausgeschaltet werden, wenn sich das Spiel in einem pausierten oder angehaltenen Zustand befindet.

Die Maus-/Tastatursteuerung kann nicht jederzeit vollständig deaktiviert werden. Mindestens muss eine Option zum Zurückkehren zu den Spielmenüs verfügbar sein.

Sinn

Diese Anforderung bietet Spielern die Wahlfreiheit, entweder den Xbox 360-Controller oder die Tastatur und Maus zu verwenden, je nachdem, welche Eingabemethode natürlicher und intuitiver ist.

Weitere Informationen

Diese Anforderung gilt nicht für Spiele, die nur die Maus und/oder die Tastatur verwenden.

Es wird empfohlen, die Menünavigation zu implementieren, um die allgemein akzeptierten Standardcontrollerschaltflächen zu verwenden:

  • A – Annehmen
  • B – Abbrechen
  • Start – Annehmen oder Anhalten
  • Zurück – Abbrechen, Zurück, ein Bildschirm oder eine Menüebene nach oben

Weitere Informationen finden Sie unter XInput.

Im Thema XInput und DirectInput werden Probleme mit der gleichzeitigen Verwendung beider APIs erläutert.

Es wird empfohlen, DirectInput nicht zum Implementieren von Tastatur- oder Maussteuerungen zu verwenden. Tastatur- und Maussteuerungen sollten nur mithilfe von Windows-Meldungen und Win32-APIs implementiert werden. Ausführliche Informationen zum Abrufen hochauflösender Mausbewegungsinformationen ohne DirectInput finden Sie unter Nutzen der High-Definition Mausbewegung.

1.5 Unterstützt mehrere Seitenverhältnisse und Auflösungen

Anforderung

Das Spiel muss mindestens das folgende Seitenverhältnis und die zugehörigen Bildschirmauflösungen unterstützen:

  • 4:3 Normal (800 600 oder 1024 768)
  • 16:9 Breitbild (1280 720)
  • 16:10 Breitbild (1152 720 oder 1680 1050 oder 800 480)

Für die Konfiguration und Erkennung von Bildschirmauflösungen muss das Spiel die folgenden Regeln einhalten:

  • Das Spiel verwendet standardmäßig die Desktopauflösung des Anzeigegeräts, wenn es sich um eine unterstützte Auflösung handelt. Das Desktopseitenverhältnis muss als Suchkriterium verwendet werden, wenn das Spiel eine andere Standardauflösung auswählt.
  • Das Spiel muss den Benutzer auffordern, neue Anzeigeeinstellungen zu bestätigen, wenn eine Änderung vorgenommen wird. Wenn der Benutzer innerhalb von 15 Sekunden nicht akzeptiert, muss die Anzeige auf die vorherige Einstellung zurückgesetzt werden.
  • Das Spiel darf keine Pixel strecken oder ein 4:3-Render-Fenster zentrieren, um Breitbildseitenverhältnisse zu unterstützen. Letterboxing ist jedoch akzeptabel.

Sinn

Mit dem Windows 3D-Desktop kann aufgrund der folgenden Faktoren ein bestimmtes Seitenverhältnis oder eine bestimmte Auflösung nicht angenommen werden:

  • Unterstützung für Hochdetailanzeigen.
  • Steigerung des Marktanteils von Breitbildmonitoren.
  • HDTV-Bereitstellungen für Windows Media Center.
  • Anforderungen an Barrierefreiheit.

Weitere Informationen

Im Idealfall stellt sich das Spiel auf das native Seitenverhältnis des Bildschirms ein. Da es jedoch schwierig sein kann, diese Informationen zuverlässig zu erhalten, kann das Spiel als allgemeinere Lösung davon ausgehen, dass der Desktop mit dem nativen Seitenverhältnis läuft. Die Desktopauflösung kann durch Aufrufen von EnumDisplaySettings mit ENUM_REGISTRY_SETTINGS abgerufen werden.

Weitere Details finden Sie in den Abschnitten „Seitenverhältnis” und „Breitbild” des DirectX-Artikels Einführung in die 10-Fuß-Erfahrung für Entwickler von Windows-Spielen.

1.6 Unterstützt den Start über Windows Media Center

[Diese Anforderung wurde eingestellt.]

1.7 Direct3D-Unterstützung

Anforderung

Wenn das Spiel Direct3D verwendet, muss die unterstützte Mindestversion Direct3D 9 sein, und Direct3D muss als der Standard-Renderer ausgewählt sein.

Sinn

Die Windows Vista- und Windows 7-Kerngrafikarchitektur wurde rund um Direct3D entwickelt. Direct3D 8 und frühere Versionen werden durch erneute Neuzuordnung von Legacyschnittstellen unterstützt.

Die Verwendung von neueren Versionen von Direct3D als Direct3D 9 wird dringend empfohlen. Siehe die Spiele für Windows Showcase S.1. Die Anforderung von Direct3D 10 oder Direct3D 11 ist vollständig mit Anforderung 1.7 kompatibel.

1.8 Aktivieren von hoher DPI-Berücksichtigung

Anforderung

Spiele und ihre Installationsprogramme müssen ordnungsgemäß ohne visuelle Probleme ausgeführt werden, wenn die DPI-Skalierung (Dots-per-Inch) aktiviert ist (getestet mit 144 DPI für die Skalierung von 150 % bei der Anzeigeauflösung von 1600 1200) unter Windows Vista und Windows 7.

Dies erfordert in der Regel, dass die ausführbare Datei des Spiels als DPI-fähig erklärt. Dies erfolgt durch Einbetten eines Manifestelements: <dpiAware>true<dpiAware> .

Sinn

Hochwertige LCD-Monitore sind als Computerbildschirme weit verbreitet, und sie sehen am besten aus, wenn sie mit ihrer nativen Auflösung betrieben werden (typischerweise 1280 1024, 1600 1200 und so weiter). Kunden, die bei dieser Auflösung Schwierigkeiten haben, Text zu lesen und Bilder zu sehen, stellen ihre Computerdesktops oft auf eine niedrigere Auflösung ein und leiden unter den visuellen Artefakten der LCD-Skalierung. Stattdessen können Kunden die Auflösung in der nativen Größe belassen und den DPI-Wert der Windows-Anzeige ändern, wodurch die Darstellung von Elementen und Text vergrößert wird, ohne die Bildqualität zu beeinträchtigen.

Obwohl dieses Feature seit Windows XP in irgendeiner Form verfügbar ist, wird es nur selten von Kunden oder von OEMs aktiviert. Mehr als die Hälfte aller Computerbildschirme sind heute auf eine niedrigere Auflösung als die native Auflösung des Monitors eingestellt, basierend auf dem Feedback der Kunden. Windows 7 macht dieses Feature für Kunden während der Ersteinrichtung und beim Ändern der Anzeigeeinstellungen wesentlich sichtbarer, wodurch sie dazu ermutigt werden, die DPI-Skalierung zu verwenden, anstatt die Desktopauflösung zu ändern.

Weitere Informationen

Die SetProcessDPIAware-Funktion kann stattdessen verwendet werden, wenn sie frühzeitig im Prozessstartcode aufgerufen wird. Das Hinzufügen zum Manifest wird bevorzugt, um sicherzustellen, dass es keine Racebedingungen mit Softwareelementen (z. B. DLLs) gibt, die initialisiert werden können, bevor der Haupteinstiegspunkt aufgerufen wird. Beachten Sie, dass SetProcessDPIAware nur unter Windows Vista und Windows 7 vorhanden ist.

Das Hinzufügen des Manifestelements ist mit Visual Studio 2005 und 2008 einfach zu erledigen. Erstellen Sie eine Datei namens dpiaware.manifest, die den folgenden Text enthält:

            <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
            <asmv3:application>
            <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
            <dpiAware>true</dpiAware>
            </asmv3:windowsSettings>
            </asmv3:application>
            </assembly>

Fügen Sie dann in Visual Studio dem Projekt dpiware.manifest hinzu. Stellen Sie sicher, dass das Einbettungsmanifest in den Eigenschaften des Projekts auf Ja festgelegt ist. Beachten Sie, dass ältere Versionen des Manifest-Tools (Mt.exe) eine spurhafte Warnung mit den DPI-fähigen Manifestelementen generieren. Um dies zu beheben, aktualisieren Sie Mt.exe auf die neueste Version aus dem Windows SDK.

Visual Studio 2010 enthält eine Einstellung in den Projekteigenschaften namens Enable DPI Awareness, die die Notwendigkeit einer Datei wie dpiaware.manifest eliminiert. Suchen Sie DPI-Sensibilisierung aktivieren, indem Sie Konfigurationseigenschaften und Manifest-Tool erweitern und dann Eingabe & Ausgabe auswählen.

Unter Windows ist der herkömmliche Anzeigemodus standardmäßig auf 96 DPI festgelegt, was für CRT-Monitore üblich war.

Während Vollbildanwendungen die Anzeigeauflösung ändern, verwenden sie beim Einrichten von Puffern und Anzeigerechtecks häufig Fenstermeldungen und Metriken. Die DPI-Virtualisierung bewirkt, dass diese Vollbildanzeigemodi zugeschnitten angezeigt werden, und das Deklarieren von DPI-fähigen Werten verhindert diese Probleme. Weitere Informationen finden Sie unter Schreiben von DPI-fähigen Win32-Anwendungen.

Sicherheit und Kompatibilität:

Zusammenfassung der Sicherheits- und Kompatibilitätsanforderungen

Kundenvorteile

Die folgenden Anforderungen verbessern die allgemeine Sicherheit von Spielen und sorgen dafür, dass sie mit Windows auf verschiedenen Architekturen, unter verschiedenen Konfigurationen und in verschiedenen Modi arbeiten.

2.1 Befolgen der Richtlinien für die Benutzerkontensteuerung

Anforderung

Jede ausführbare Datei (d. a. jede Datei mit einer .exe Erweiterung) muss ein eingebettetes Manifest enthalten, das die Ausführungsebene durch Einschließen des folgenden Tags definiert:

            <requestedExecutionLevel>

Pro Anforderung 1.2 muss das Hauptspiel und die ausführbare Datei Autorun über die Ausführungsebene von asInvoker verfügen, um Standardbenutzerkontexte zu unterstützen.

Benutzerdatendateien mit Dateizuordnungen, die mit Datei-Explorer registriert sind, müssen in einem Unterordner des Ordners platziert werden, der durch CSIDL_PERSONAL (auch als Dokumente oder Meine Dokumente bezeichnet) angegeben wird. Alle anderen Benutzerdatendateien müssen in einem Unterordner der Ordner gespeichert werden, die durch CSIDL_LOCAL_APPDATA oder CSIDL_COMMON_APPDATA angegeben werden. (Diese Verzeichnisse sind standardmäßig für einzelne Benutzer und für alle Benutzer ausgeblendet.)

Sinn

Die Windows-Erfahrung eines Benutzers ist sicherer, wenn Anwendungen nur mit den erforderlichen Berechtigungen ausgeführt werden.

Weitere Informationen

Wenn nur wenige Features in einer Anwendung Administratorrechte erfordern (z. B. eine Anwendung, die eine Firewall konfigurieren muss), muss der Hauptprozess der Anwendung weiterhin mithilfe von Standardbenutzerrechten ausgeführt werden. Features, die Administratorrechte erfordern, müssen in einen separaten Prozess verschoben werden, z. B. ein Installationsprogramm oder ein Konfigurationsprogramm.

Wenn keine Administratorrechte erforderlich sind, sollte die xml-Datei des eingebetteten Manifests Folgendes enthalten:

            <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
            <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
            <ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2">
            <ms_asmv2:security>
            <ms_asmv2:requestedPrivileges>
            <ms_asmv2:requestedExecutionLevel level="asInvoker" uiAccess="false" />
            </ms_asmv2:requestedPrivileges>
            </ms_asmv2:security>
            </ms_asmv2:trustInfo>
            </assembly>

Wenn Administratorrechte erforderlich sind, sollte die xml-Datei des eingebetteten Manifests Folgendes enthalten:

            <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
            <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
            <ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2">
            <ms_asmv2:security>
            <ms_asmv2:requestedPrivileges>
            <ms_asmv2:requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
            </ms_asmv2:requestedPrivileges>
            </ms_asmv2:security>
            </ms_asmv2:trustInfo>
            </assembly>

Mit Visual Studio 2005 wird dies ganz einfach eingebettet, indem sie einfach eine Manifestdatei (.manifest) hinzufügen, die einen der vorherigen Blöcke enthält, und sicherstellen, dass das Einbettungsmanifest in den Projekteigenschaften für das Manifest-Tool auf Ja festgelegt ist. Für Visual Studio 2008 und 2010 können UAC-Eigenschaften direkt in den Projekteigenschaften für den Linker auf der Manifestdateiseite festgelegt werden. Beachten Sie, dass ältere Versionen des Manifest-Tools (Mt.exe) bei den UAC-Manifestelementen eine fehlerhafte Warnung erzeugen. Um dies zu beheben, aktualisieren Sie Mt.exe auf die neueste Version aus dem Windows SDK.

Einzelheiten zu den Speziellen Installations-, Patch- und Entfernungsfällen finden Sie unter Anforderung 3.1.

Für Dynamic Link Libraries (DLLs) sind solche Manifeste nicht erforderlich.

Weitere Informationen zur Benutzerkontensteuerung finden Sie unter Benutzerkontensteuerung für Spieleentwickler.

2.2 Unterstützung von Windows x64-Versionen

Anforderung

Um die Kompatibilität mit 64-Bit-Editionen von Windows aufrechtzuerhalten, sollten Spiele die folgenden Anforderungen erfüllen.

  • Titel und Titelinstallationsprogramme dürfen keinen 16-Bit-Code enthalten oder sich auf eine 16-Bit-Komponente verlassen.
  • Wenn das Spiel von Kernelmodustreibern für den Betrieb abhängig ist, müssen x64-Versionen dieser Treiber verfügbar sein. Das Spielsetup muss die richtigen Treiber und Komponenten für die 64-Bit-Editionen von Windows erkennen und installieren.

Sinn

Viele Windows Vista- und Windows 7-Benutzer führen 64-Bit-Editionen des Betriebssystems über die Lebensdauer des Produkts aus, daher ist es entscheidend, dass Anwendungen mit diesem Betriebssystem kompatibel sind.

Weitere Informationen

Windows unter Windows 64 (WOW64) ermöglicht die Ausführung von 32-Bit-Code auf 64-Bit-Editionen von Windows, so dass es nicht notwendig ist, dass die Anwendung auf 64-Bit-Editionen von Windows nativen 64-Bit-Code enthält. Sechszehn-Bit-Code wird nicht in 64-Bit-Editionen von Windows ausgeführt.

Die Aufrechterhaltung der Kompatibilität mit Windows XP Professional x64 Edition ist nicht erforderlich, wird jedoch dringend empfohlen.

Weitere Informationen finden Sie unter 64-Bit-Programmierung für Spieleentwickler.

2.3 Signieren von Dateien

Anforderung

Alle ausführbaren Codedateien (in der Regel Dateien mit der Erweiterung .exe oder .dll) müssen mit einem öffentlich gültigen Authenticode-Zertifikat signiert sein und über eine gültige Zeitstempelserver-URL für die Produktionssignierung verfügen.

Wenn Ihr Spiel Windows Installer verwendet, müssen die Installationspaketdateien (.msi-Dateien) signiert sein.

Sinn

Durch das Signieren einer Datei können Benutzer entscheiden, ob sie einer Anwendung vertrauen sollen, und stellt Benutzern sicher, dass Dateien nicht manipuliert wurden. Außerdem können Anwendungen in gesperrten Umgebungen ordnungsgemäß ausgeführt werden.

Weitere Informationen

Ausführliche Informationen finden Sie unter Authenticode-Signierung für Spieleentwickler.

Wenn Ihr Spiel Windows Installer verwendet, empfiehlt es sich, UAC/LUA-Patching zu aktivieren, indem Sie eine MsiPatchCertificate-Tabelle einschließen. Weitere Informationen finden Sie unter Benutzerkontensteuerung (UAC) Patching.

Es wird nicht empfohlen, cab-Dateien (.cab) zu signieren, es sei denn, sie sind relativ klein (weniger als 100 MB).

2.4 Signieren von Treibern

Anforderung

Jeder vom Spiel installierte Kernelmodustreiber muss mit einem öffentlich gültigen Authenticode-Zertifikat signiert sein.

Jeder vom Spiel installierte Kernelmodus-Hardwaregerätetreiber muss über eine Microsoft-Signatur verfügen, die aus den Windows Hardware Quality Labs (WHQL) oder aus dem DRS-Programm (Driver Reliability Signature) abgerufen werden kann.

Sinn

Schlecht geschriebene oder Schadsoftwaretreiber können die Stabilität und Sicherheit eines Systems stark beeinträchtigen. Bei 64-Bit-Editionen von Windows Vista und Windows 7 werden nicht signierte Treiber geladen. Diese Richtlinie kann auch für 32-Bit-Editionen von Windows Vista und Windows 7 aktiviert werden.

Weitere Informationen

Sowohl die 32-Bit- als auch die 64-Bit-Version aller Kernelmodustreiber sind pro Anforderung 2.2 erforderlich.

Weitere Informationen zu Microsoft-Treibersignaturprogrammen finden Sie im Windows Hardware Dev Center.

2.5 Durchführen der ordnungsgemäßen Versionsüberprüfung

Anforderung

Spiele dürfen nicht auf zukünftigen Betriebssystemen ausgeführt werden, wie durch Änderungen der Windows-Versionsnummer angegeben, es sei denn, der Endbenutzer-Lizenzvertrag verbietet die Verwendung auf zukünftigen Betriebssystemen. Wenn das Spiel fehlschlagen soll, muss dies ordnungsgemäß erfolgen, indem dem Benutzer eine entsprechende Meldung angezeigt wird.

Wenn Windows-Versionsüberprüfungen vorgenommen werden, müssen die Versionsüberprüfungs-APIs (GetVersionEx oder VerifyVersionInfo) verwendet werden, um die Betriebssystemversion zu überprüfen. Registrierungsschlüssel dürfen nicht gelesen werden, um die Version zu ermitteln.

Explizite Versionsüberprüfungen für die DirectX-Laufzeit dürfen nicht im Spiel vorhanden sein. Diese Versionsüberprüfungen dürfen in der Installation, die das DirectX-Laufzeitsetup (DirectSetup) startet, nicht vorhanden sein.

Sinn

Wenn Windows-Benutzer ihr Betriebssystem aktualisieren, sollten sie nicht daran gehindert werden, aktuelle Spiele zu spielen, nur weil die Windows-Versionsnummer gestiegen ist. Schlecht geschriebene Versionsprüfer erstellen weiterhin Probleme für Software, die andernfalls bei neueren Versionen von Windows einwandfrei funktioniert oder einfach mit dem Hinzufügen eines Windows Service Packs.

Fragile Versionsüberprüfungsvergleichslogik für die DirectX-Laufzeit hat zahlreiche fehlgeschlagene Installationen erstellt, wenn sie auf verschiedenen Versionen von Windows ausgeführt wird. Die DirectX-Versionsnummer gilt nur für die Kernkomponenten des Betriebssystems. Sie gilt nicht für die parallelen DirectX SDK-Komponenten, die von vielen Spielen verwendet werden.

Weitere Informationen

Es ist üblich, dass Installationsprogramme eine Mindestversion des Betriebssystems überprüfen. Diese Überprüfung muss jedoch sorgfältig durchgeführt werden, um sicherzustellen, dass sie auf mehr oder gleich und nicht auf einfache Gleichheit überprüft und somit eine bestimmte Version des Betriebssystems gesperrt wird. Die Verwendung des HighVersionLie-Tests von Application Verifier ist eine schnelle und einfache Möglichkeit, zu bestimmen, wie Ihr Installationsprogramm auf eine erhebliche Änderung der Betriebssystemversionsnummer reagiert.

Die ordnungsgemäße Verwendung des DirectX-Laufzeitumverteilungspakets (DirectX-Setup) umfasst immer den Start während der Installation, vorzugsweise im unbeaufsichtigten Modus. Dadurch kann der von Microsoft bereitgestellte Code alle erforderlichen Versionsupdates ausführen. Es ermöglicht auch die Installation optionaler paralleler DirectX SDK-Komponenten, z. B. D3DX, XACT, MDX oder XInput.

Bewährte Methoden für die Bereitstellung der DirectX-Laufzeit finden Sie unter DirectX-Installation für Spieleentwickler.

Es wird empfohlen, dass Spiele, die Windows XP unterstützen, eine Service Pack-Stufe von 2 oder höher unterstützen, da Service Pack 2 (SP2) und Service Pack 3 (SP3) erhebliche Sicherheitsverbesserungen, eine vereinfachte Redistributionsanforderung für DirectX-Runtime und eine extrem breite Bereitstellung bieten. Die meisten modernen Microsoft-Technologien, die Windows XP unterstützen, erfordern SP2 oder SP3 (XAudio2, Spiele für Windows – LIVE usw.).

2.6 Unterstützung gleichzeitiger Benutzersitzungen

Anforderung

Spiele, die auf 3D-Grafiken basieren, müssen nicht über eine Remotedesktopverbindung funktionieren, der Benutzer muss jedoch benachrichtigt werden, wenn das Spiel fehlschlägt.

Spiele müssen standardmäßige Windows-Multitasking-Szenarien unterstützen, indem sie den folgenden Regeln entsprechen:

  • Spiele dürfen die Verwendung gleichzeitiger Benutzersitzungen nicht blockieren.
  • Ein Spiel muss in einer neuen Benutzersitzung ausgeführt werden, wenn es bereits in einer anderen Sitzung ausgeführt wird.
  • Spielsound in einer Benutzersitzung darf nicht gehört werden, wenn ein anderer Benutzer in einer anderen Sitzung aktiv ist.
  • Spiele müssen schnellen Benutzerwechsel unterstützen.
  • Spiele dürfen nicht versuchen, den Standardaufgabenwechsel zu deaktivieren. Spiele dürfen die Tastenkombination ALT+TAB nicht deaktivieren. Spiele dürfen Tastenkombinationen für Barrierefreiheit deaktivieren, wie im Abschnitt Deaktivieren von Tastenkombinationen in Spielen beschrieben.

Sinn

Windows-Benutzer sollten in der Lage sein, gleichzeitige Sitzungen ohne Konflikte oder Unterbrechungen auszuführen. Dies ist ein häufiges Szenario für einen Windows-Computer, der von einer Familie, Mitbewohnern oder anderen geteilt wird.

Weitere Informationen

Rufen Sie GetSystemMetrics(SM_REMOTESESSION) auf, um zu testen, ob das Spiel in einer Remotesitzung gestartet wird. Ein Wert ungleich Null gibt an, dass die Sitzung remote ist.

Weitere Informationen finden Sie unter Schneller Benutzerwechsel. Beachten Sie, dass der schnelle Benutzerwechsel stattfindet, wenn die Zeitbeschränkungen der Jugendschutzfunktion aktiviert sind und die Zeit des Benutzers abgelaufen ist. Siehe Anforderung 1.2 für weitere Einzelheiten.

2.7 Unterstützung von langen Namen

Anforderung

Wenn ein Spiel das Speichern von Dateien unterstützt, muss es in der Lage sein, Dateien mit langen Namen und Pfaden zu speichern. Das Spiel muss spezielle Dateisystemzeichen wie \ / : * ordnungsgemäß verarbeiten? " <>, in allen Benutzereingabefeldern, die zum Erstellen von Dateinamen oder Pfaden verwendet werden.

Spiele müssen ordnungsgemäß funktionieren, wenn ein Benutzer über einen langen Benutzernamen verfügt.

Sinn

Spieler sind daran gewöhnt, lange Namen auf tiefen Pfaden zu verwenden, die vom zugrunde liegenden Betriebssystem unterstützt werden.

Weitere Informationen

Lange Namen werden als Werte definiert, die die maximal im Windows SDK definierten Werte enthalten.

Installation

Zusammenfassung der Sicherheits- und Kompatibilitätsanforderungen

Kundenvorteile

Kunden können sicher sein, dass Anwendungen unter Windows installiert werden, ohne das Betriebssystem oder andere Anwendungen zu beeinträchtigen, wenn Anwendungen offizielle Systemkomponentenverteilungsmethoden verwenden. Eine optimierte Installation sorgt für eine einfachere und problemlose Installation von Spielen.

3.1 Unterstützung der einfachen Installation

Anforderung

Spiele müssen einen vereinfachten Pfad in der Setup-Benutzeroberfläche bereitstellen, indem Folgendes implementiert wird:

  • Zeigen Sie maximal eine EULA-Eingabeaufforderung an.
  • Der Standardinstallationspfad muss alle Auswahlen für die Installation umgehen (z. B. Installationsordner oder Komponentenauswahl), die Standardauswahl übernehmen und dann das Spiel oder Startprogramm bei erfolgreicher Installation ohne zusätzliche Eingabeaufforderungen ausführen. Bei Bedarf kann eine benutzerdefinierte Installationsoption für erweiterte Konfigurationsoptionen bereitgestellt werden.
  • Installieren Sie alle erforderlichen Betriebssystemkomponenten (z. B. DirectX- und Visual C-Laufzeiten) mithilfe der richtigen Microsoft-Umverteilungspakete. Die Installation sollte ohne Aufforderung und ohne Schutz durch Komponentenversionsprüfungen im Hintergrund ausgeführt werden.
  • Stellen Sie das Entfernen über Programme und Features in Systemsteuerung sowohl für die Spieleanwendung als auch für generierte Arbeitsdateien bereit. Eine Option zum Löschen von Datendateien, die vom Benutzer erstellt werden, wird empfohlen. Der Entfernungsprozess muss sicherstellen, dass alle installierten Dateien entfernt werden und alle Einstellungen (z. B. Firewall-Ausnahmelisteneinträge und Registrierungsschlüssel) gelöscht werden. Verteilte Betriebssystemkomponenten dürfen nicht entfernt werden.
  • Wenn für das Spiel Ausnahmen erforderlich sind, die der Windows-Firewall hinzugefügt werden müssen, kann der Setupvorgang Benutzer darüber informieren, dass diese Änderung erforderlich ist. Diese Eingabeaufforderung sollte angezeigt werden, bevor die Installation beginnt.

Installation und Entfernung können Administratorrechte erfordern. Das Patchen kann abhängig von der Aktualisierungshäufigkeit eine Aufforderung zur Eingabe administrativer Anmeldeinformationen erfordern. Das normale Spiel des Spiels darf keine Administratorrechte erfordern, je nach Anforderung 2.1 Befolgen der Richtlinien für die Benutzerkontensteuerung.

Sinn

Einfache Installation ist eine Philosophie der Windows-zentrierten Spieleentwicklung, die entwickelt wurde, um den manchmal mühsamen und verwirrenden Prozess der Installation von Spielen auf Computern mit Windows-Betriebssystemen zu vereinfachen und zu optimieren. Die einfache Installation wird durch die Verwendung einer Reihe von Technologien und bewährten Methoden ermöglicht, die die unnötige Komplexität und das wahrgenommene Risiko der Installation von Spielen auf Windows-Computern verringern.

Die wichtigsten Ziele sind:

  • Reduzierung der Zeit, um in das Spiel einzusteigen und mit dem Spiel zu beginnen.
  • Reduzierung der Anzahl der Dialogfelder und Auswahlmöglichkeiten auf sehr wenige oder gar keine, um die Installation des Spiels zu vereinfachen.

Einige herkömmliche Installationen verfügen über Eingabeaufforderungen, die nicht funktionsfähige Installationen zulassen, obwohl die Anwendung anscheinend erfolgreich installiert wurde. Ein Spiel kann z. B. verlangen, dass ein Benutzer einen EULA akzeptiert. Das Spiel wird dann installiert, und dann wird die DirectX-EULA angezeigt. Mit dieser EULA können Benutzer die Installation der DirectX-Laufzeit ablehnen und somit die Installation überspringen. Dieses Szenario kann zu einem Spiel führen, das aufgrund fehlender Komponenten nicht ausgeführt werden kann.

Weitere Informationen

Weitere Informationen zur Spieleinstallation, nicht herkömmlichen Spielinstallationstechniken, UAC-kompatiblen Patch-Lösungen und zur Behandlung häufiger Patches finden Sie in den folgenden DirectX-Artikeln:

Hinweis

Das Entfernen von benutzerspezifischen generierten Datendateien sollte nur für den aktuellen Benutzer und für gemeinsame freigegebene Benutzerspeicherorte ausgeführt werden. Es gibt keine robuste Möglichkeit, das System zu scannen, um benutzerspezifische Dateien für andere Benutzer zu entfernen, auch wenn das Entfernen Administratoranmeldeinformationen erfordert.

3.2 Unterstützung der Benutzerkontensteuerung für die Installation

Anforderung

Das Spielinstallationsprogramm darf nicht davon ausgehen, dass es im gleichen Kontext wie der Benutzer ausgeführt wird. Benutzerspezifische Speicherorte unterscheiden sich vom Installationsprogramm und dem Spieler selbst für Einzelbenutzersysteme aufgrund der Erhöhung von Administratoranmeldeinformationen. Daher muss ein Spiel, wenn ein Spiel zum ersten Mal ausgeführt wird, benutzerspezifische Aufgaben unabhängig vom Installationsprozess ausführen.

Das Windows-Firewall-Ausnahmedialogfeld darf nicht angezeigt werden, wenn ein Benutzer ein Multiplayer-Spiel hostet oder beitritt. Jede erforderliche Konfiguration muss zur Installationszeit erfolgen. Die Setupanweisungen sollten den Benutzer darüber informieren, dass dieser Vorgang im Rahmen des Setups erfolgt.

Das Spielinstallationsprogramm muss ein eingebettetes Manifest bereitstellen, das die erforderliche Ausführungsstufe gemäß Anforderung 2.1 Befolgen der Richtlinien für die Benutzerkontensteuerung angibt.

Wenn das Spiel nach Abschluss der Installation vom Installationsprogramm gestartet wird, muss es im Kontext des ursprünglichen Benutzers gestartet werden.

Sinn

Eine der größten Änderungen am Windows-Betriebssystem in Windows Vista ist das Hinzufügen von Benutzerkontensteuerung (User Account Control, UAC), das Anwendungen mit eingeschränkten Berechtigungen standardmäßig ausführt. Daher müssen Installationsprogramme Berechtigungsstufen entsprechend verwalten. Windows 7 nutzt auch die UAC umfassend. Während Windows 7 die Benutzererfahrung von UAC verbessert, müssen Installationsprogramme weiterhin die gleichen Anforderungen erfüllen wie Windows Vista, um ordnungsgemäß zu funktionieren, ohne sich auf potenziell verwirrendes Virtualisierungsverhalten zu verlassen.

UAC ist standardmäßig unter Windows Vista und Windows 7 aktiv, und die überwiegende Mehrheit der Kunden (88 % oder mehr, basierend auf Feedback) lassen dieses Feature aktiviert.

Weitere Informationen

Weitere Informationen zum Konfigurieren der Windows-Firewall finden Sie im DirectX-Artikel Windows-Firewall für Spieleentwickler und im FirewallInstallHelper-Beispiel.

Der Standardstart des Spiels am Ende des Installationsvorgangs erfüllt nicht den letzten Aspekt dieser Anforderung, wenn die Installation von einem Standardbenutzer gestartet wird, und wenn der Setupvorgang Administratorrechte erfordert (d. h. Aufforderungen zu Administratoranmeldeinformationen). Es übernimmt auch Administratorrechte, was ein potenzielles Sicherheitsrisiko darstellt. Stattdessen sollte ein Setup-Bootstrap-Ladeprogramm das Spiel starten, nachdem es von einem erfolgreichen Aufruf des Installationsprogramms zurückgegeben wurde. Weitere Informationen finden Sie im MSDN Magazine-Artikel Anwendungen für die Benutzerkontensteuerung von Windows Vista optimieren.

3.3 Installation zum Korrigieren von Ordnern

Anforderung

Spiele, die für alle Benutzer installiert sind, müssen standardmäßig im Ordner „Programme” installiert werden. Benutzerdaten müssen geschrieben werden, wenn das Spiel zum ersten Mal ausgeführt wird, nicht während der Installation.

Sinn

Benutzer sollten die Flexibilität haben, Anwendungen dort zu installieren, wo sie sie benötigen. Sie sollten auch eine konsistente und sichere Erfahrung mit dem Standardspeicherort von Dateien haben.

Weitere Informationen

Spiele können die verschiedenen bekannten Speicherorte von Ordnern (z. B. durch CSIDL_LOCAL_APPDATA und CSIDL_COMMON_APPDATA angegeben) verwenden, um erhebliche Mengen an Spieldaten zu speichern und ausführbare Dateien zu unterstützen, um erweiterte Installations- und Patch-Szenarien zu implementieren.

Da bei der Installation während des Installationsvorgangs für alle Benutzer die Rechteerweiterung zu einem anderen Benutzerkonto erforderlich sein kann, gibt es keinen richtigen Benutzerspeicherort, an dem Daten zur Installationszeit gespeichert werden sollen. Wenn die Dateiverschlüsselung aktiviert ist, können verschlüsselte Dateien nur von dem Benutzerkonto aufgerufen werden, das sie erstellt hat.

3.4 Ordnungsgemäßes Installieren von Windows-Ressourcen

Anforderung

Anwendungen dürfen nicht versuchen, Dateien oder Registrierungsschlüssel zu installieren, die durch Windows Resource Protection (WRP) geschützt sind. Wenn die Anwendung neuere Versionen von Systemkomponenten erfordert, muss sie diese Komponenten mithilfe eines Microsoft Service Pack oder eines von Microsoft genehmigten Installationspakets aktualisieren, das die Systemkomponente enthält. Systemkomponenten dürfen niemals neu verpackt werden.

Sinn

Windows Resource Protection (WRP) wurde entwickelt, um sicherzustellen, dass geschützte Systemressourcen nur mithilfe von Microsoft genehmigter Installations- oder Updatemechanismen aktualisiert werden. WRP verbessert die Systemsicherheit, indem sichergestellt wird, dass die Ergebnisse einer Installation vorhersehbar sind.

Weitere Informationen

WRP ist der Nachfolger von Windows File Protection, der den Großteil der Systemkomponenten schützt, die im Windows-Ordner installiert sind. WRP schützt die meisten Registrierungsschlüssel, die Einstellungen für die Erstellung von COM-Objekten speichern. Es behält auch bestimmte Ordner für die ausschließliche Verwendung durch das Betriebssystem vor. Versuche, auf geschützte Ressourcen zuzugreifen, führen in der Regel zu einem Zugriffsverweigerungsfehler.

Ausführliche Informationen zu bewährten Methoden, wenn die DirectX-Laufzeit mit einem Spiel bereitgestellt wird, finden Sie im DirectX-Artikel DirectX-Installation für Spieleentwickler.

3.5 Vermeiden von Neustarts während der Installation

Anforderung

Das Spieleinstallationsprogramm sollte nicht davon ausgehen, dass die Installation von Windows-Komponenten aus Umverteilungspaketen einen Neustart erfordert, es sei denn, der Neustart wird durch ein Rückgabeergebnis oder eine Microsoft-Dokumentation angegeben.

Wenn das Spielinstallationsprogramm immer einen Neustart erzwingt, muss dies von Microsoft genehmigt werden.

Dialogfelder für Dateien, die in Windows Installer-Paketen enthalten sind, müssen eine Option zum automatischen Schließen von Anwendungen enthalten und versuchen, sie nach Abschluss des Setups neu zu starten.

Sinn

Ein Neustart des Systems nach einer Installation ist eine unerwünschte Unterbrechung für die Benutzer und normalerweise unnötig.

Weitere Informationen

Weitere Informationen finden Sie unter Verwenden von Windows Installer mit Neustart-Manager.

3.6 Korrekte Verwendung der Dateiversionierung

Anforderung

Das Spielinstallationsprogramm muss ordnungsgemäß prüfen, ob die neuesten Dateiversionen installiert sind. Bei der Installation eines Spiels dürfen keine Dateien regressiert werden, die Sie nicht erstellt haben oder die von Anwendungen gemeinsam genutzt werden, die Sie nicht erstellt haben.

Sinn

Freigegebene Komponenten und Systemkomponenten werden häufig für Sicherheitsupdates und erweiterte Funktionen aktualisiert. Eine Installation, die eine ältere Version der aktualisierten Komponenten enthält, sollte nicht zum Verlust von Updates und Korrekturen führen, die bereits angewendet wurden.

3.7 Unterstützung für Autorun [Bedingungsanforderung]

Anforderung

Bei Spielen, die auf CD, DVD oder anderen Wechselmedien verteilt werden, die Autorun unterstützen, muss die Anwendung automatisch ausgeführt oder aufgefordert werden, das Spiel zu installieren, es sei denn, der Benutzer hat das Feature Autorun deaktiviert.

Nachdem die Anwendung erfolgreich installiert wurde, darf das erneute Einlegen des Datenträgers in das Laufwerk nicht dazu führen, dass die Installation automatisch erneut beginnt. Es ist akzeptabel, Benutzer zu fragen, ob sie ihre Installationsoptionen aktualisieren oder ändern möchten.

Die Autorun-Anwendung darf nicht zur Erhöhung auffordern (d. h. sie muss im Manifest gemäß Anforderung 2.1 über „AsInvoker” verfügen, obwohl sie das Setupprogramm oder ein anderes Dienstprogramm starten kann, das Administratorrechte erfordert. Erhöhungen sollten nur auftreten, wenn das Spiel nicht installiert ist oder der Benutzer es ausdrücklich auswählt.

Sinn

Autorun vereinfacht die Nutzung von Anwendungen, die über Medien verteilt werden, wie z. B. Spiele, bei denen die CD normalerweise im Laufwerk eingelegt sein muss, um das Spiel zu spielen.

Weitere Informationen

Es ist nicht akzeptabel, dass der Benutzer in Explorer navigiert, um die Installation über die CD oder DVD zu starten.

Bei Spielen, die auf mehreren Discs verteilt werden, sollten nachfolgende Discs im Idealfall entweder das Feature Autorun verwenden oder die Installation fortsetzen, ohne den Benutzer aufzufordern, eine Taste zu drücken oder andere Aktionen auszuführen.

Stellen Sie beim Erstellen eines Autorun-Programms sicher, dass alle erforderlichen Komponenten auf neu installierten Windows-Installationen vorhanden sind. Typische Anwendungen basieren auf Technologien, die vom Setup installiert wurden, aber Autorun selbst wird ausgeführt, bevor ein solches Setup auftritt. Ein häufiges Beispiel ist der Fehler von Autorun-Programmen, da die VISUAL C-Runtime-DLLs nicht als Teil des Windows-Setups enthalten waren. Das Autorun-Programm muss daher die lokale CRT-Bereitstellung der Anwendung verwenden oder den CRT statisch verknüpfen.

Autorun-Programme, die für die Verwendung in Versionen von Windows geschrieben wurden, bevor Windows Vista die .NET-Runtime nicht verwenden sollte, da diese Technologie nicht in Windows XP oder älteren Versionen von Windows enthalten ist. Windows Server 2003 und Windows Vista sind die ersten Versionen von Windows, die .NET-Runtime als Teil ihres Betriebssystems enthalten.

Aus ähnlichen Gründen können Autorun-Programme die Anwesenheit optionaler DirectX SDK-Komponenten wie D3DX9, D3DX10, D3DX11, XAudio2, X3DAudio, XACT, XINPUT und MDX 1.1 nicht erfordern.

Ein Beispiel für die Verwendung von Autorun finden Sie im AutoRun-Beispiel.

Zuverlässigkeit

Zusammenfassung der Sicherheits- und Kompatibilitätsanforderungen

Kundenvorteile

Diese Anforderungen machen eine Anwendung zuverlässiger, indem die Anzahl der Abstürze, Blockaden und Neustarts minimiert wird. Die Zuverlässigkeitsanforderungen können sicherstellen, dass Software vorhersehbarer, wartungsfähiger, robuster und wiederherstellbarer ist.

4.1 Vermeiden unnötiger Neustarts

Anforderung

Alle Anwendungsinstallationsprogramme müssen die Neustart-Manager-APIs nutzen, um Systemneustarts zu vermeiden (siehe Anforderung 3.5).

Spiele dürfen das Herunterfahren nicht blockieren.

Alle Anwendungen müssen auf den Neustart-Manager reagieren, indem sie die folgenden Abschaltmeldungen abhören und darauf reagieren:

WM_QUERYENDSESSION mit LPARAM = ENDSESSION_CLOSEAPP (0x1)

GUI-Anwendungen müssen sofort reagieren (TRUE), um einen Neustart vorzubereiten.

WM_ENDSESSION mit LPARAM = ENDSESSION_CLOSEAPP (0x1)

Anwendungen müssen innerhalb von 5 Sekunden einen Wert von 0 zurückgeben und dann schließen.

CTRL+C

Konsolenanwendungen, die diese Meldung erhalten, müssen sofort geschlossen werden.

Sinn

Systemneustarts sind eine große Unterbrechung. Sie führen zu einer schlechten Benutzererfahrung und sollten minimiert werden. Einige Vorgänge, z. B. wichtige Systemupdates, können Neustarts erfordern. Durch das Abhören von Shutdown-Meldungen können das Spiel und andere Anwendungen umgehend auf Anfragen des Neustart-Managers reagieren. Auf diese Weise können sie unnötige Verzögerungen bei gültigen Neustartanforderungen vermeiden.

Weitere Informationen

Wenn ein Spieleinstallationsprogramm die Windows Installer-Technologie (MSI) ohne benutzerdefinierte Aktionen verwendet, wird diese Funktionalität automatisch bereitgestellt. Microsoft-Umverteilungspakete unterstützen auch den Neustart-Manager.

Weitere Informationen zum Neustart-Manager finden Sie unter Informationen zum Neustart-Manager.

4.2 Beseitigen von Anwendungsüberprüfungsfehlern

Anforderung

Das Spiel muss keine Fehler generieren, die unter Microsoft Application Verifier (AppVerifier), Version 4.0 oder höher, in den folgenden Tests ausgeführt werden:

  • Grundlagen: Handles, Heaps, Sperren, Arbeitsspeicher, TLS
  • Verschiedenes: DangerousAPIs, DirtyStacks

Sinn

AppVerifier testet auf viele bekannte Probleme, die Abstürze und Blockaden in Windows-Anwendungen sowie bekannte Sicherheitslücken verursachen.

Weitere Informationen

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

Diese Anforderung gilt nicht für reine verwaltete Anwendungen ohne systemeigene Interoperabilität.

Diese Tests sollten auf einem Release-Build ausgeführt werden. Das Debuggen von Builds kann zu falschen Fehlern führen. Einige Antipiraterie- und Anti-Cheat-Technologien können die Ausführung von AppVerifier beeinträchtigen. Daher sollten diese Tests ohne aktivierte Antipiraterie- und Anti-Cheat-Technologien durchgeführt werden.

Möglicherweise muss die Full-Eigenschaft des Basics:Heaps-Tests auf FALSE festgelegt werden, da der gesamte PageHeap den Speicherdruck der ausgeführten Anwendung erheblich erhöht. Fehler werden weiterhin erkannt, aber es ist möglicherweise schwieriger, nachzuverfolgen, wenn Sie nur teilweise PageHeap verwenden.

Wenn Sie die UAC/LUA-bezogenen Tests in Application Verifier verwenden, um die Anforderungen der Benutzerkontensteuerung 2.1 und 3.2 zu erfüllen, sollten Sie die Standardbenutzeranalyse verwenden, um die Ergebnisse zu überprüfen. Es gibt auch zahlreiche weitere nützliche Tests von Application Verifier, die Sie dringend empfohlen werden, in der Entwicklung und Tests zu verwenden, um ein hohes Maß an Kompatibilität mit aktuellen und zukünftigen Versionen von Windows sicherzustellen. Der HighVersionLie-Test wird verwendet, um die Einhaltung der Anforderung 2.5 zu überprüfen.

Visual Studio Team System enthält eine Teilmenge der AppVerifier-Funktionalität, die in die Debug-Umgebung integriert ist. Dies kann hilfreich sein, um Probleme mit den Grundlagen zu verfolgen und zu beheben: Heaps-, Handles- und Sperrtests.

4.3 Unterstützung von Windows-Fehlerberichten und Dateiversionsinformationen

Anforderung

Um die Unterstützung von Windows-Fehlerberichterstattung zu ermöglichen, müssen Spiele die folgenden Anforderungen erfüllen:

  • Spiele dürfen nur Ausnahmen behandeln, die bekannt und erwartet werden. Windows-Fehlerberichterstattung darf nicht deaktiviert werden. Wenn ein Fehler wie eine Zugriffsverletzung in einem Spiel angezeigt wird, muss es Windows-Fehlerberichterstattung erlauben, den Absturz zu melden.
  • Alle ausführbaren Dateien (z. B. .exe Dateien oder DLLs) müssen einen genauen Produktnamen, Firmennamen und Dateiversion enthalten.
  • Das normale Beenden des Spiels darf nicht zu einem unbekannten Ausnahmefehler führen.

Sinn

Die Windows-Fehlerberichterstattung-APIs geben Microsoft wichtiges Feedback, um weit verbreitete Abstürze und Blockaden in Anwendungen zu erkennen. Auf diese Weise können Microsoft und seine Partner System- und Treiberprobleme schnell erkennen und beheben, die zu Anwendungsfehlern führen.

Weitere Informationen

Spiele können benutzerdefinierte unbehandelte Ausnahmehandler enthalten, um benutzerdefinierte Unterstützungs- und Berichterstellungsfunktionen auszuführen, aber sie müssen alle Fehler an die Funktionen ReportFault oder WerReportSubmit übergeben.

Die richtigen Dateiversionsinformationen können überprüft werden, indem sie die Dateieigenschaften auf der Windows-Desktopbenutzeroberfläche anzeigen und die Versionseigenschaftsseite überprüfen.

Weitere Informationen zu den Windows-Fehlerberichterstattung-APIs und zum Analysieren der Absturzabbilder, die bei Verwendung dieses Diensts generiert werden, finden Sie im DirectX-Artikel Absturzabbildanalyse.

Allgemeine Xbox 360-Controller für Windows-Terminologie

Name BESCHREIBUNG
A Die Schaltfläche „A”.
b Die Schaltfläche „B”.
Zurück Die Schaltfläche „Zurück”.
(rechts/links) Bumper Die Schaltfläche am oberen rechten und linken Rand des Controllers. Entspricht einer Schultertaste.
Steuerkreuz Steuerkreuz des Controllers.
D-Pad Akzeptierte Abkürzung des Steuerkreuzes.
DP Abkürzung für Steuerkreuz und Controllerbeschriftung.
RB, LB Abkürzungen für rechte und linke Bumper und Controllerbeschriftungen.
RS, LS Abkürzungen für rechte und linke Sticks und Controllerbeschriftungen.
RT, LT Abkürzungen für rechte und linke Trigger und Controllerbeschriftungen.
RSB, LSB Abkürzungen für rechte und linke Sticks und Controllerbeschriftungen.
Start Die Schaltfläche „Start”.
(rechts/links) Stick Der Controllerstick. Früher Ministick.
(rechts/links) Sticktaste Die Sticktaste des Controllers. Früher Ministick-Taste.
(rechts/links) Trigger Der Controllertrigger.
Vibration Spielfeedback, das vom Controllermotor erzeugt wird. Verwenden Sie kein Rumble.
X Die Schaltfläche „X”.
Y Die Schaltfläche „Y”.
Xbox 360-Controller für Windows Das Xbox 360-Gamepad wurde als PC-Hardware-SKU verkauft, einschließlich eines Windows-Gerätetreibers.
Xbox 360-Wireless-Controller für Windows Das Xbox 360-Wireless-Gamepad wurde als PC-Hardware-SKU verkauft, einschließlich eines Windows-Gerätetreibers.

Richtlinien für Spiele-Middleware-Produkte

Einführung

Damit Spiele für das Spiele für Windows-Programm qualifiziert werden können, müssen sie eine Liste der technischen Anforderungen erfüllen. Alle Komponenten von Drittanbietern, die mit einem Titel (ausführbare Dateien, DLLs, Treiber usw.) ausgeliefert werden, müssen auch diese Anforderungen erfüllen, damit das Spiel berechtigt ist. In diesem Dokument werden die am häufigsten verwendeten Anforderungen erläutert, die auch von den Drittanbieterkomponenten für das Spiel erfüllt werden müssen, um die Compliance-Tests zu bestehen. Installer und vollständige Spielemodul-/Produktionspakete sollten das vollständige Dokument „Spiele für Windows technische Anforderungen” überprüfen, da viele dieser Anforderungen von diesen Tools betroffen sind.

Weitere Empfehlungen

Neben der Sicherstellung, dass Ihre Komponente die Erstellung von Titeln unterstützt, die den Anforderungen für Spiele für Windows entsprechen, gibt es eine Reihe weiterer Überlegungen, die Sie berücksichtigen sollten, wenn Sie eine Bibliothek oder ein Hilfsprogramm für ein Windows-Spiel entwerfen und bereitstellen.

  • Um Entwickler zu unterstützen, die an 64-Bit-nativen x64-Anwendungen arbeiten, stellen Sie sowohl 32-Bit- als auch 64-Bit-native Versionen Ihrer Bibliotheken bereit. Die 32-Bit-Version muss 64-Bit-kompatibel pro 2.2 sein. Bibliotheken für 32-Bit-Anwendungen sollten nicht davon ausgehen, dass das hohe Bit einer 32-Bit-Adresse nicht verwendet wird, um die Verwendung in LARGEADDRESSAWARE x86-Anwendungen zu unterstützen.

  • Wenn Sie systemeigene Codeheader (C/C++) bereitstellen, verwenden Sie die Sal-Attributsyntax (Standard Annotation Language), um Ihre öffentlichen API-Routinen zu dekorieren. Auf diese Weise können Benutzer Ihrer Bibliothek den maximalen Vorteil der Verwendung der statischen Codeanalyse (/analyse) erzielen, die Teil von Visual Studio Team System 2005, Visual Studio Team System 2008, Visual Studio 2010 Premium und Visual Studio 2010 Ultimate ist, sowie die öffentlich verfügbaren Windows SDK-Compilertools.

  • Wenn Ihr Produkt Threads innerhalb des Prozesses des Benutzers erstellt, benennen Sie unbedingt jeden Thread, damit Debugging-Tools ordnungsgemäß ausgeführte Threads kommentieren können.

  • Wenn Sie Routinen schreiben, die in der Hauptschleife eines Spiels aufgerufen werden sollen, verwenden Sie die D3DX-Routinen D3DPERF_BeginEvent/EndEvent und D3DPERF_SetMarker, um Vorgänge auf hoher Ebene zur einfacheren Identifizierung von Engpässen mithilfe von PIX für Windows zu kommentieren.

    Hinweis

    Für die Visual Studio 2012-Grafikdiagnosefunktion werden diese D3DX- und PIX-Routinen durch die ID3DUserDefinedAnnotation-Schnittstelle ersetzt.

  • Stellen Sie für Netzwerkbibliotheken IP-neutrale Implementierungen bereit und vermeiden Sie veraltete IPv4-Routinen zur Unterstützung der IPv6- und Teredo-Technologien in Windows XP mit Service Pack 2, Windows Vista und Windows 7.

  • Spieledienstanbieter sollten sich bei Games Explorer mit Version 2 des GDF-Schemas registrieren und das RSS-Feature verwenden, um dienstbezogene Neuigkeiten bereitzustellen.

Spiele für Windows-Showcases

Einführung

Spiele für Windows-Showcases gehen über die Bereitstellung eines soliden Spielerlebnisses auf Windows-PCs hinaus. Durch die Implementierung dieser Features können Spiele der Benutzererfahrung auf den neuesten Windows-Plattformen mehr Spannung verleihen.

Spiele für Windows-Titel müssen alle technischen Anforderungen erfüllen, die in diesem Artikel aufgeführt sind, aber Showcase-Features sind optional. Diese Titel können einige, keine oder alle diese Showcases implementieren.

S.1 Exploit Direct3D 11

Anforderung

Direct3D 11 ist die Rendering-API der nächsten Generation für Windows Vista und Windows 7. Spiele, die Direct3D 11 nutzen, verwenden optimierte Inhalte, erweiterte Rendering-Techniken und neue Hardwarefeatures, um eine überzeugende Erfahrung auf Hardware zu schaffen, die 10, 10.1 und 11 unterstützt.

Wenn das Spiel auch Direct3D 9 implementiert, sollte ein paralleler Vergleich eine spürbare Verbesserung der Inhaltsqualität, der Visuellen Genauigkeit, der Leistung, der Szenenkomplexität und anderer Bereiche der Grafiktreue für Direct3D 11 demonstrieren. Diese Unterstützung unterliegt der „1.7 Technische Anforderung für Spiele für Windows”.

Direct3D 10level9-Technologie kann verwendet werden, um Shader-Modell 2.0/3.0 Direct3D 9-Videohardware unter Windows Vista und Windows 7 zu unterstützen, anstatt eine parallele Direct3D 9-Implementierung für umfassende Hardwareunterstützung zu verwenden. Dies reicht jedoch nicht aus, um dieses Showcase zu veranschaulichen.

Auf Computern, auf denen Windows Vista oder Windows 7 mit Direct3D 11 installiert ist, sollte das Spiel standardmäßig Direct3D 11 verwenden.

Sinn

Die Direct3D 11-API basiert auf dem Windows Display Driver Model (WDDM) und der Direct3D 10.1-Infrastruktur zur Unterstützung neuer Funktionen: Hardware-Tessellation, Compute-Shader, Multithread-Rendering und Ressourcenerstellung, neue Texturkomprimierungsformate und eine flexiblere Shader-Sprache. Direct3D 11 bietet einheitliche Hardwareunterstützung für moderne Grafikkarten, einschließlich der Direct3D 11-Teile der neuesten Generation, aller Direct3D 10- und 10.1-Grafikkarten und vielen Shader-Modell 2.0/3.0 Direct3D 9-Grafikkarten, die für den Aero 3D-Desktop mindestens erforderliche Videohardware sind.

Weitere Informationen

Das Migrieren eines Direct3D 9-Rendering-Moduls zur Verwendung der neuen Direct3D 11-Schnittstelle ist eine gut definierte Aufgabe:

  • Entfernen Sie alle Vorgänge mit fester Funktion zugunsten von programmierbaren Shadern.
  • Aktualisieren Sie alle vorhandenen Shader auf die neue Syntax von Shader-Modell 4.x/5.
  • Aktualisieren Sie die Ressourcenverwaltung, um das neue Ansichtsmodell zu unterstützen.
  • Konvertieren Sie alle Ressourcen, um eine neue Liste der verfügbaren Formate zu verwenden.
  • Aktualisieren Sie die Render-Zustandsbehandlung, um unveränderliche Zustandsblöcke zu verwenden, und bearbeiten Sie Shader-Konstanten in Konstantenpuffer.

Diese Konvertierung ist unerlässlich, um das Direct3D 11 Showcase zu ermöglichen, obwohl das Ergebnis nicht die Showcase-Anforderung erfüllt, die neue API auszunutzen.

Die neue API und das zugehörige HLSL-Programmiermodell bieten viele Möglichkeiten für erweiterte Inhalte:

  • Nutzen vorhandener Direct3D 10-Hardwarefeatures wie Geometry Shader, Stream Out, Textur-Arrays und der komprimierten BC4/BC5-Texturformate.
  • Nutzen vorhandener Direct3D 10.1-Hardwarefeatures, z. B. unabhängige Überblendungsmodi pro Render-Ziel, MSAA-Tiefenlesevorgang, MSAA pro Beispiel-Shader-Zugriff, Cube-Map-Arrays und Rendering für blockkomprimierte (BC)-Formate.
  • Implementieren erweiterter GPU-Algorithmen mit Compute-Shader mit CS4.x auf vorhandenen Direct3D 10/10.1-Grafikkarten (aktiviert durch aktualisierte Videotreiber) oder CS 5.0 auf Direct3D 11-Grafikkarten der nächsten Generation.
  • Rendern in mehreren Threads mithilfe von Freethread-Ressourcenerstellung und mehreren Gerätekontexten für eine verbesserte Leistung auf Multicore-Systemen (mit aktualisierten Videotreibern). Weitere Informationen finden Sie unter „Spiele für Windows Showcase S.3”.
  • Verwendung neuer Features von Direct3D 11-Klassen-Videohardware, z. B. Hardware-Tessellation mit Hull- und Domänen-Shadern, Shader-Modell 5.0 HLSL-Shader-Hardware-Features BC6HBC7 komprimierten Texturformaten und dynamischer Shader-Verknüpfung.

Techniken, die mit Direct3D 9 (größtenteils durch hohe CPU-Kosten) implementiert werden können, können effizient auf die GPU geladen werden, wodurch CPU-Ressourcen freigegeben werden, um andere Spielanforderungen zu unterstützen.

Direct3D 11-APIs, unterstützende Tools und Beispiele sind im DirectX SDK verfügbar. Siehe auch Grafik-APIs in Windows.

S.2 Exploit x64 Native

Anforderung

Das Spiel enthält eine 64-Bit-native ausführbare Datei, die eine überzeugende neue Oberfläche bietet, die von x64-Editionen von Windows aktiviert wird, die auf x64-fähiger Hardware ausgeführt werden. Ein paralleler Vergleich mit der 32-Bit-Version des Spiels sollte eine spürbare Verbesserung der Inhaltskomplexität, reduzierte Gesamtladezeiten und Leistung zeigen.

Bei 64-Bit-Editionen von Windows sollte die Installation immer die systemeigene 64-Bit-Version des Spiels als Standard für Tastenkombinationen in Spiele-Explorer und Windows XP Professional x64 Edition einrichten. Wenn eine duale Installation gewünscht ist, kann für den Spiele-Explorer unter Windows Vista und Windows 7 eine zusätzliche Spielaufgabe angegeben werden, die auf die 32-Bit-Version verweist, die Standardeinstellung sollte jedoch die native 64-Bit-Version bleiben.

Beachten Sie, dass das Spiel die 64-Bit-Editionen von Windows Vista und Windows 7 unterstützen sollte, um diese Showcase-Empfehlung zu erfüllen. Die Unterstützung für Windows XP Professional x64 Edition wird empfohlen, aber nicht erforderlich.

Sinn

Die x64-Technologie bietet 64-Bit-Adressierungsfunktionen für die Verbraucher- und Servermärkte, die vollgeschwindigkeitsbasierte 32-Bit-Abwärtskompatibilität für vorhandene Anwendungen enthalten. x64 ist ein wichtiger Bestandteil der Roadmap für AMD (AMD64) und Intel (EMT64) und unterstützt mit Ausnahme von ultra-mobilen CPUs die Technologie für alle Prozessoren der aktuellen und zukünftigen Generation.

Windows XP Professional x64 Edition war das erste verbraucherorientierte Windows-Betriebssystem (OS), das x64-Technologie unterstützt, und Windows Vista und Windows 7 erweitern die Verfügbarkeit der Betriebssystemaktivierung für 64-Bit-Consumer Computing erheblich. Mit 2 GB RAM als Standard auf vielen neuen Computern profitieren weitere Verbesserungen der Speicherskalierung nicht von 32-Bit-Einzelanwendungen, die nicht mehr als 2 GB physischen RAM adressieren können. Viele Spiele stehen heute vor Herausforderungen, die alle verfügbaren Inhalte in die Einschränkungen von 2 GB virtueller Adressraum passen, insbesondere in Kombination mit den großen Videospeichern, die auf High-End-GPUs verfügbar sind, und der Wechsel zur x64-Technologie erhöht die unterstützungsfähigen Detailebenen erheblich.

x64-Kompatibilität für 32-Bit-Spiele ist eine technische Anforderung für Spiele für Windows (2.2), die Nutzung der neuen Technologien erfordert jedoch eine native 64-Bit-Implementierung.

Weitere Informationen

Der Hauptvorteil der 64-Bit-Adressierung ist die Möglichkeit, direkt auf mehr als 2 GB physischen und virtuellen Arbeitsspeicher zuzugreifen. Der große virtuelle Speicheradressraum ermöglicht eine umfangreiche Nutzung von speicherabgebildeten E/A, ohne dass Probleme mit der Erschöpfung des VM-Adressraums auftreten, wie sie bei der 32-Bit-Programmierung üblich sind. Spiele können den neuen Platz nutzen, um Ladezeiten erheblich zu verbessern oder in einigen Fällen Pausen für das Laden von Inhalten zu vermeiden.

Vorhandene 32-Bit-Anwendungen können von x64-Editionen profitieren, indem sie die Möglichkeit haben, Adressen mit vollständigen 32-Bit-Daten zu verarbeiten, wenn sie mit der Linker-Option „Große Adressen aktivieren” (/LARGEADDRESSAWARE) erstellt wurden. Bei 32-Bit-Versionen von Windows XP ermöglichten spezielle Startmodi solche Anwendungen, bis zu 3 GB RAM zu adressieren, und x64-Editionen bieten Zugriff auf bis zu 4 GB RAM für LAA-Apps (Large Address Aware). Obwohl die Verwendung von LAA in einer 32-Bit-Anwendung diese Showcase-Anforderung nicht erfüllt, ist diese Brückentechnologie eine äußerst nützliche Möglichkeit, zusätzliche Skalierungsvorteile für x64-Versionen von Windows bereitzustellen, damit diese Showcase-Anforderung nicht vollständig implementiert wird.

Weitere Informationen finden Sie unter 64-Bit-Programmierung für Spieleentwickler und RAM, VRAM und mehr RAM: 64-Bit-Spiele finden Sie auf der Website für Spieleentwickler.

Hinweis

Eine wichtige Herausforderung für dieses Showcase besteht darin, sicherzustellen, dass alle Drittanbieterbibliotheken oder -komponenten, auf denen Ihr Spiel basiert, für die 64-Bit-native Entwicklung verfügbar sind. Viele ältere Microsoft-APIs wurden auch aus der nativen 64-Bit-Umgebung eliminiert, was sich als Herausforderung für Modulcodebasen mit älteren Implementierungen von Schlüsselsystemen erweisen kann.

S.3 Exploit Many-Core-Prozessoren

Anforderung

Das Spiel implementiert Features, die Multicore-Prozessoren nutzen, die bei Verfügbarkeit auf 3, 4 oder mehr Kerne skaliert werden.

Wenn das Spiel Einzelprozessor- oder Dual-Core-Systeme unterstützt, sollte ein paralleler Vergleich mit einem Quad-Core-System erkennbare neue Features, zusätzliche überzeugende Effekte, eine Verbesserung der Inhaltsqualität und/oder verbesserte Leistung demonstrieren.

Da die Dual-Core-Skalierung bereits von Spielen unterstützt wird und von verschiedenen Direct3D-Treibererweiterungen automatisch genutzt wird, reicht die Dual-Core-Skalierung nicht aus, um dieses Showcase zu veranschaulichen.

Sinn

Das anhaltende Wachstum der Leistung für CPUs hat sich von den Taktratenverbesserungen auf das Hinzufügen von Rechenkernen umgestellt. Sowohl AMD- als auch Intel-Roadmaps basieren auf skalierbaren Multicore-Designs. Alle Spieleplattformen der nächsten Generation verfügen über Multicore-CPUs aufgrund dieser grundlegenden Verschiebung der Entwicklung von Prozessoren. Single-Thread-Anwendungen werden keine signifikanten Gewinne mehr von CPUs der nächsten Generation erhalten. Einfaches Multithreading kann auch nicht skaliert werden, da die Anzahl der CPU-Kerne bei der gemeinsamen Verwendung auf drei oder mehr zunimmt.

Weitere Informationen

Beachten Sie, dass die Kernanzahl nicht eine Leistung von zwei sein muss, daher sollten Spiele linear skaliert werden und die Kernanzahl von 3, 4, 5, 6, 7, 8 usw. verarbeiten.

Durch die Erhöhung der Anzahl von Threads in einer Anwendung wird nur dann eine Rückgabe bereitgestellt, wenn die Kosten für die Kommunikation und Threadsynchronisierung überprüft werden. Die funktionsbasierte Skalierung kann kurzfristig eine einfachere Lösung sein, sodass das Spiel normal ohne die zusätzlichen Threads auf Single-Core-Systemen ausgeführt und aktiviert wird, wenn die zusätzliche CPU-Leistung verfügbar ist.

Weitere Informationen finden Sie unter Coding für mehrere Kerne auf Xbox 360 und Microsoft Windows und Überlegungen zur Programmierung ohne Sperren für Xbox 360 und Microsoft Windows in den DirectX-Artikeln, sowie das Dienstprogramm DXUTLockFreePipe und das CoreDetection-Beispiel.

Die Verwendung der Direct3D 11-Freethread-Ressourcenerstellung und Gerätekontexte ist nützlich, um die Skalierbarkeit beim Rendern und Laden von Grafikressourcen zu erreichen. Siehe die Spiele für Windows Showcase S.1.

Beachten Sie, dass die direkte Verwendung der CPU-Anweisung rdtsc anstelle von Windows-APIs zum Berechnen der Anzeigedauer auf Multicore-Systemen zu Problemen bei einigen Hardware- und Betriebssystemkonfigurationen führen kann; siehe Spieldauer und Multicore-Prozessoren in den DirectX-Artikeln.

S.4 Unterstützung für Spiele für Windows – LIVE

Für Spiele für Windows – LIVE wird von Microsoft kein Support mehr zur Verfügung gestellt.

S.5 Unterstützung für Windows Touch

Anforderung

Windows-Spiele mit Toucheingabe sind mit Toucheingaben und/oder Gesten auf Computern mit Windows 7 mit Einem Touch-Display spielbar. Tastatureingaben können ebenfalls verwendet werden, die primäre Wiedergabeschnittstelle muss jedoch touchbasiert sein.

Die Aktivierung der Toucheingabe sollte nicht verhindern, dass die Maus oder der gemeinsame Controller verwendet wird, vorbehaltlich der technischen Anforderung 1.4.

Es wird nicht erwartet, dass das Installationsprogramm des Spiels die Windows Touch-Funktionalität unterstützt.

Sinn

Multitouchfähige Displays für Computer sind für Laptops und Desktops verfügbar und stellen ein wichtiges Hardwarefeature dar, das mit der Veröffentlichung von Windows 7 höhergestuft wird. Windows 7 unterstützt Windows Touch in allen Bereichen des Desktops und der allgemeinen Benutzeroberfläche.

Weitere Informationen

Systemeigene Codeanwendungen können über die WM_TOUCH Meldungen in Kombination mit der RegisterTouchWindow-Funktion auf Multitoucheingabe zugreifen. Siehe auch die Manipulations- und Inertia-API.

Windows Presentation Foundation (WPF) 4.0 bietet eine verwaltete Lösung für Multitouch-Schnittstellen.

Weitere Informationen finden Sie in der Windows Touch SDK-Dokumentation.

S.6 Unterstützung für High Color

Anforderung

Spiele, die High Color unterstützen, verwenden ein Format von 10:10:10:2 (DXGI_FORMAT_R10G10B10A2, D3DFMT_A2B10G10R10) oder ein Format von 16:16:16:16:16 (DXGI_FORMAT_R16G16B16A16, D3DFMT_A16B16G16R16) für das Rendern des Hintergrundpuffers und des Vollbildanzeigemodus.

Mithilfe eines High-Color-Render-Ziels können HDR-Inhalte (High-Dynamic Range) mit einer erweiterten oder breiten Breite gerendert werden, wenn eine Tonzuordnung zu einem 10-Bit- oder 16-Bit-Bereich durchgeführt wird.

Sinn

Monitore können seit vielen Jahren mehr als 256 Farbstufen pro Kanal anzeigen, auch wenn CRT-Displays weit verbreitet waren. Die Scan-Hardware auf Grafikkarten war der limitierende Faktor. Moderne GPUs, einschließlich der meisten Direct3D 9-Hardware und aller Direct3D 10-Klasse und besserer Hardware, verfügen über Scanouthardware mit mindestens 10 Bit pro Kanal, und die Hardwarefunktion wird in Zukunft auf 16 Bit pro Farbkanal vergrößert. HD TV-Verbindungssysteme (HDMI, DisplayPort) wurden entwickelt, um mehr als 8 Bit pro Kanal zu verarbeiten, und analoge VGA-Systeme tragen bereits solche Signale.

Weitere Informationen

Beachten Sie, dass „High Color” oder „Hi Color” historisch auf das Verschieben von 256 (8-Bit)-Farbanzeigen auf 15- oder 16-Bit-Farbanzeigen verweist. Die meisten Anzeigesysteme haben sich seit langem auf True Color bewegt, die 24-Bit-Farbe oder 8-Bit pro Farbkanal für Rot, Grün und Blau ist. Mit „High Color” meinen wir hier eine neue Generation von Displays-Systemen, die mit mehr als 8 Bit pro einzelnem Farbkanal arbeiten können. Dies wird auch als „Deep Color” bezeichnet.

Einführung

Zusätzlich zur Erfüllung der technischen Anforderungen und der Einführung eines oder mehrerer Showcases in Ihrem Titel gibt es eine Reihe von bewährten Methoden, die für alle Windows-Spiele befolgt werden sollten. Während diese Empfehlungen außerhalb des Umfangs der grundlegenden technischen Anforderungen liegen, werden Sie dringend ermutigt, sie für alle Spiele für Windows-Titel zu verwenden.

Weitere Empfehlungen

  • Verwenden Sie den neuesten Visual Studio-Compiler und die neueste Laufzeit. Neuere Versionen des Compilers implementieren erhebliche Verbesserungen für die Qualität des generierten Codes und für Sicherheitsprobleme, und sie verwenden moderne Prozessoroptimierungsstrategien. Das Aktualisieren des Compilers und die Verwendung der neuesten C-Runtime ist eine einfache Möglichkeit, zu modernen Codierungsmethoden zu migrieren.
  • Verwenden Sie die DLL-Version (Dynamic Link Library) der C-Runtime anstelle statischer Verknüpfungen, und verwenden Sie Secure CRT. (Ausnahmen können in speziellen Vorinstallationsfällen erfolgen, z. B. für ein Autorun-Programm oder für das Installationsprogramm selbst).
  • Verwenden Sie für Spielaudio2, X3DAudio und/oder XACT anstelle von DirectSound. Verwenden Sie DirectSound für Windows XP (nur) und WASAPI unter Windows Vista und Windows 7 für Audiomodule, die alle Misch- und Quellratenkonvertierung ausführen und nur eine Lösung mit geringer Latenz benötigen.
  • Vermeiden Sie ältere und veraltete APIs: DirectDraw, DirectSound, DirectPlay, DirectMusics Leistungsebene, DirectPlay Voice und Direct3D Retained Mode. Beachten Sie, dass DirectPlay Voice und Direct3D Retained Mode unter Windows Vista oder Windows 7 nicht überhaupt verfügbar sind. Die Leistungsebene von DirectPlay und DirectMusic ist für x64-native Anwendungen nicht verfügbar.
  • Optimieren Sie die Verwendung von SSE/SSE2 SIMD-Anweisungssätzen. Sehen Sie sich die DirectXMath-API im Windows SDK als plattformübergreifende Lösung für SIMD-optimierte mathematische Vorgänge an.
  • Verwenden Sie moderne bewährte Methoden für die Windows-Sicherheit (einschließlich Compiler- und Linker-Optionen wie /NXCOMPAT, /GS, /SAFESEH, /DYNAMICBASE, /SDL usw.). Weitere Informationen finden Sie unter Best Security Practices in der Spieleentwicklung.
  • Verwenden Sie die neuesten Komponenten und Bibliotheken des Windows SDK. Entfernen Sie Abhängigkeiten von den Legacy-DirectSetup bereitgestellten Out-of-Band-Komponenten wie D3DX9, D3DX10 und D3DX11. Erwägen Sie die Verwendung von DirectXTex oder DirectXTK oder beiden.
  • Vermeiden Sie die Verwendung des älteren HLSL-Compilers, und verwenden Sie stattdessen den modernen HLSL-Compiler. Wenn die Unterstützung für Pixelshader 1.x von Ihrer Anwendung benötigt wird, verwenden Sie die Shader-Assembly anstelle von HLSL, oder beschränken Sie die Verwendung des älteren Compilers auf diese Szenarien.

Ressourcen

Begriff Beschreibung
Spiele für Windows: Testfälle
Bewährte Methoden für Spiele unter Windows XP, Windows Vista und Windows 7
Windows SDK
Windows SDKs
Richtlinien für die Benutzerkontensteuerung
Windows Vista-Anwendungsentwicklungsanforderungen für die Kompatibilität der Benutzerkontensteuerung
DirectX-Entwicklerportal
Directx Developer Center
Blog „Spiele für Windows und DirectX SDK”
Spiele für Windows und das DirectX SDK
Weitere DirectX-Artikel
Technische Artikel zu DirectX