Condividi tramite


Sviluppo di Marble Maze- un gioco UWP (Universal Windows Platform) compilato con C++ per DirectX

Questo argomento descrive come usare DirectX e C++ per creare un gioco UWP (Universal Windows Platform) 3D. Il gioco, chiamato Marble Maze, abbraccia più formati, come tablet, PC desktop tradizionali e PC portatili.

Annotazioni

Per scaricare il codice sorgente di Marble Maze, vedere l'esempio di in GitHub.

Importante

Marble Maze illustra i modelli di progettazione che consideriamo come procedure consigliate per la creazione di giochi UWP. Puoi adattare molti dei dettagli di implementazione in base alle tue pratiche e ai requisiti unici del gioco che stai sviluppando. È possibile usare tecniche o librerie diverse quando queste sono più adatte alle proprie esigenze. Tuttavia, assicurarsi sempre che il codice superi Kit di certificazione app Windows. Quando consideriamo un'implementazione usata qui per essere essenziale per il successo dello sviluppo di giochi, lo sottolineiamo in questa documentazione.

Introduzione Marble Maze

Abbiamo scelto Marble Maze perché è relativamente semplice, ma dimostra ancora l'ampiezza delle caratteristiche che si trovano nella maggior parte dei giochi. Illustra come usare grafica, gestione degli input e audio. Illustra anche i meccanismi di gioco, ad esempio regole e obiettivi.

Marble Maze assomiglia al gioco labirinto in cima al tavolo che viene in genere costruito da una scatola che contiene fori e una biglia in acciaio o vetro. L'obiettivo di Marble Maze è lo stesso della versione da tavolo: inclinare il labirinto per guidare la biglia dall'inizio alla fine del labirinto nel minor tempo possibile, senza lasciare che la biglia cada in uno dei fori. Marble Maze aggiunge il concetto di checkpoint. Se la biglia cade in un buco, il gioco si riavvia nell'ultima posizione del checkpoint superata dalla biglia.

Marble Maze offre diversi modi per consentire a un utente di interagire con la tavola da gioco. Se hai un dispositivo abilitato per il tocco o abilitato per l'accelerometro, puoi usare questi dispositivi per spostare la scheda di gioco. Puoi anche usare un controller o un mouse per controllare il gioco.

screenshot del gioco marble maze.

Prerequisiti

  • Windows 10 Creators Update
  • Microsoft Visual Studio 2017
  • Conoscenza della programmazione C++
  • Familiarità con la terminologia di DirectX e DirectX
  • Conoscenza di base di COM

Chi dovrebbe leggere questo?

Se sei interessato a creare giochi 3D o altre applicazioni a elevato utilizzo di grafica per Windows 10, questo è per te. Speriamo di usare i principi e le procedure descritti in questa documentazione per creare un gioco UWP personalizzato. Un background o un forte interesse per la programmazione C++ e DirectX ti aiuterà a sfruttare al meglio questa documentazione. Se non hai esperienza con DirectX, puoi comunque trarre vantaggio se hai esperienza con ambienti di programmazione grafica 3D simili.

Il documento Procedura dettagliata: creare un semplice gioco UWP con DirectX descrive un altro esempio che implementa un gioco di tiro 3D di base usando DirectX e C++.

Informazioni su questa documentazione

Questa documentazione illustra come:

  • Usa l'API di Windows Runtime e DirectX per creare un gioco UWP.
  • Usare Direct3D e Direct2D per lavorare con contenuto visivo, ad esempio modelli, trame, vertex shader e pixel shader e sovrimpressioni 2D.
  • Integrare meccanismi di input come tocco, accelerometro e controller di gioco.
  • Usa XAudio2 per incorporare effetti musicali e audio.

Cosa non viene illustrato in questa documentazione

Questa documentazione non tratta gli aspetti seguenti dello sviluppo di giochi. Questi aspetti sono seguiti da risorse aggiuntive che li coprono.

  • Principi di progettazione di giochi 3D.
  • Nozioni di base sulla programmazione C++ o DirectX.
  • Come progettare risorse come trame, modelli o audio.
  • Come risolvere i problemi di comportamento o prestazioni nel gioco.
  • Come preparare il gioco per l'uso in altre parti del mondo.
  • Come certificare e pubblicare il gioco in Microsoft Store.

Marble Maze usa anche la libreria DirectXMath per lavorare con la geometria 3D ed eseguire calcoli fisici, ad esempio collisioni. DirectXMath non è trattato in dettaglio in questa sezione. Per informazioni dettagliate sul modo in cui Marble Maze usa DirectXMath, vedere il codice sorgente.

Anche se Marble Maze fornisce molti componenti riutilizzabili, non è un framework di sviluppo di giochi completo. Quando consideriamo un componente Marble Maze come riutilizzabile nel tuo gioco, lo mettiamo in evidenza nella documentazione.

Passaggi successivi

È raccomandato iniziare con i concetti fondamentali dell'esempio Marble Maze per comprendere la struttura Marble Maze e alcune delle linee guida per la codifica e lo stile che il codice sorgente Marble Maze segue. La tabella seguente descrive i documenti in questa sezione in modo che sia possibile farvi riferimento più facilmente.

In questa sezione

Titolo Descrizione
Fondamenti degli esempi di Marble Maze Fornisce una panoramica della struttura del gioco e di alcune delle linee guida relative al codice e allo stile che seguono il codice sorgente.
Struttura dell'applicazione 'Marble Maze' Descrive come il codice dell'applicazione Marble Maze è strutturato e come la struttura di un'app UWP DirectX differisce da quella di un'applicazione desktop tradizionale.
Aggiungere contenuti visivi al campione Marble Maze Descrive alcune delle procedure chiave da tenere presenti quando si lavora con Direct3D e Direct2D. Descrive anche come Marble Maze applica queste procedure per il contenuto visivo.
Aggiungere input e interattività all'esempio Marble Maze Descrive il funzionamento di Marble Maze con input di accelerometro, tocco e controller di gioco per consentire agli utenti di spostarsi tra i menu e interagire con la tavola da gioco. Vengono inoltre descritte alcune delle procedure consigliate da tenere presenti quando si lavora con l'input.
Aggiungere audio al progetto di esempio di Marble Maze Descrive il funzionamento di Marble Maze con l'audio per aggiungere musica ed effetti audio all'esperienza del gioco.