Guida allo sviluppo di giochi per Windows

Benvenuti nella guida allo sviluppo di giochi in Windows.

Questa guida fornisce una raccolta approfondita delle risorse e delle informazioni necessarie per sviluppare un gioco sulla piattaforma UWP (Universal Windows Platform). Una versione in inglese (Stati Uniti) di questa guida è disponibile in formato PDF.

Introduzione allo sviluppo di giochi per la piattaforma UWP (Universal Windows Platform)

Quando si crea un gioco per Windows si ha l'opportunità di raggiungere milioni di giocatori in tutto il mondo su PC e Xbox One. Con Xbox su Windows, Xbox Live, la modalità multiplayer su dispositivi diversi, una straordinaria community di gioco, nonché nuove e potenti funzionalità quali la piattaforma UWP (Universal Windows Platform) e DirectX 12, i giochi per Windows appassionano i giocatori di ogni genere ed età. La nuova piattaforma UWP offre la compatibilità del gioco in tutti i dispositivi Windows con un'API comune per telefono, PC e Xbox One, oltre a strumenti e opzioni per adattare il gioco all'esperienza di ogni tipo di dispositivo.

Questa guida fornisce una raccolta approfondita di informazioni e risorse che aiuteranno a sviluppare il gioco. Le sezioni sono organizzate in base alle fasi di sviluppo del gioco, per sapere sempre dove cercare informazioni quando occorre.

Se non si ha familiarità con lo sviluppo di giochi in Windows o Xbox, la guida introduttiva potrebbe essere il punto da cui iniziare. La sezione Risorse di sviluppo di giochi fornisce anche un panoramica generale su documentazione, programmi e altre risorse utili per la creazione di un gioco. Se si preferisce iniziare esaminando codice UWP, vedere Esempi di giochi.

Risorse per lo sviluppo di giochi

Dalla documentazione ai programmi per sviluppatori, forum, blog ed esempi, sono disponibili molte risorse di aiuto nel percorso di sviluppo di un gioco. Ecco le risorse da conoscere quando si inizia a sviluppare un gioco di Windows.

Nota

Alcune funzionalità sono gestite tramite programmi di vario tipo. Questa guida illustra un'ampia gamma di risorse, ed è possibile che alcune risorse non siano accessibili a seconda del programma in uso o del ruolo di sviluppo specifico. Alcuni esempi sono i collegamenti che si risolvono in developer.xboxlive.com, forums.xboxlive.com, xdi.xboxlive.com o in Game Developer Network (GDN). Per informazioni su partnership con Microsoft, vedere Programmi per sviluppatori.

Documentazione relativa allo sviluppo di giochi

Questa guida fornisce collegamenti diretti alla documentazione pertinente, organizzata per attività, tecnologia e fase di sviluppo del gioco. Per una panoramica generale delle funzionalità disponibili, ecco i principali portali di documentazione per lo sviluppo di giochi di Windows.

Portale principale di Windows Dev Center Windows Dev Center
Sviluppo di app di Windows Sviluppare app di Windows
Sviluppo per la piattaforma UWP (Universal Windows Platform) Documentazione della piattaforma UWP (Universal Windows Platform)
Guide pratiche per i giochi UWP Giochi e DirectX
Informazioni di riferimento e panoramica su DirectX Grafica e giochi DirectX
Azure per il gioco Creare e scalare giochi con Azure
Azure PlayFab Soluzione back-end completa per giochi live
UWP in Xbox One Compilazione di app UWP in Xbox One
UWP su HoloLens Compilazione di app UWP in HoloLens
Documentazione di Xbox Live Guida per sviluppatori di Xbox Live
Documentazione sullo sviluppo di Xbox One (XGD) Sviluppo di Xbox One
White paper sullo sviluppo di Xbox One (XGD) White paper
Documentazione interattiva Mixer Aggiungere interattività al gioco

Centro per i partner

La registrazione come sviluppatore nel Centro per i partner è il primo passo per pubblicare un gioco di Windows. Un account per sviluppatore consente di riservare il nome del gioco e inviare giochi gratuiti o a pagamento nel Microsoft Store per tutti i dispositivi Windows. Usare il proprio account per sviluppatore per gestire i giochi e i prodotti.in-game, ottenere analisi dettagliate e attivare servizi che creano esperienze eccezionali per i giocatori in tutto il mondo.

Microsoft offre anche diversi programmi per sviluppatori che consentono di sviluppare e pubblicare giochi di Windows. Consigliamo di controllare se sono adatti prima di registrarsi per un account del Centro per i partner. Per maggiori informazioni, vedere Programmi per sviluppatori

Programmi per sviluppatori

Microsoft offre diversi programmi per sviluppatori che consentono di sviluppare e pubblicare giochi di Windows. È possibile partecipare a un programma per sviluppatori se si desidera sviluppare giochi per Xbox One e integrare le funzionalità di Xbox Live nel gioco. Per pubblicare un gioco in Microsoft Store, si dovrà anche creare un account per sviluppatore nel Centro per i partner.

Programma per creatori Xbox Live

Il Programma per creatori Xbox Live consente a chiunque di integrare Xbox Live nel titolo e di pubblicare in Xbox One e Windows. Esiste un processo di certificazione semplificato e non è necessaria alcuna approvazione del concetto al di fuori dei criteri standard del Microsoft Store.

È possibile distribuire, progettare e pubblicare il gioco in Creators Program senza un kit di sviluppo dedicato, usando solo hardware di vendita al dettaglio. Per iniziare, scarica l'app Attivazione in modalità sviluppo in Xbox One.

Se si desidera accedere ad altre funzionalità di Xbox Live, supporto dedicato per marketing e sviluppo e avere la possibilità di essere in primo piano nel principale store xbox One, fare richiesta per il programma ID@Xbox.

Programma per creatori Xbox Live Altre informazioni sul programma per creatori Xbox Live

ID@Xbox

Il programma ID@Xbox consente agli sviluppatori di giochi qualificati di pubblicare automaticamente in Windows e Xbox One. Se si desidera sviluppare per Xbox One o aggiungere funzionalità xbox Live come Gamerscore, achievment e classifiche al gioco di Windows, registrarsi a ID@Xbox. Diventando uno sviluppatore ID@Xbox si possono ottenere gli strumenti e il supporto necessari per scatenare la tua creatività e massimizzare il tuo successo. È consigliabile fare domanda a ID@Xbox prima di registrarsi per un account sviluppatore nel Centro per i partner.

Programma per sviluppatori ID@Xbox Programma per sviluppatori indipendenti per Xbox One
Sito consumer ID@Xbox ID@Xbox

Esempi di gioco

Sono disponibili molti esempi di giochi e app di Windows per comprendere le funzionalità di gioco di Windows, nonché una guida introduttiva allo sviluppo di giochi. Nuovi esempi vengono sviluppati e pubblicati regolarmente, quindi non dimenticare di controllare i portali per scoprire le novità. È anche possibile osservare i repository GitHub per ricevere notifichi su modifiche e aggiunte.

Esempi di app UWP (Universal Windows Platform) Esempi di Windows universale
Esempi di grafica Direct3D 12 Esempi di grafica DirectX
Esempi di grafica Direct3D 11 directx-sdk-samples
Esempio di gioco in prima persona Direct3D 11 Creazione di un semplice gioco UWP con DirectX
Esempio di effetti immagine personalizzati Direct2D D2DCustomEffects
Esempio di mesh con sfumature Direct2D D2DGradientMesh
Esempio di regolazione foto Direct2D D2DPhotoAdjustment
Esempi pubblici di Xbox Advanced Technology Group Esempi di Xbox-ATG
Esempi di Xbox Live xbox-live-samples
Esempi di giochi Xbox One (XGD) Esempi
Esempi di giochi di Windows (MSDN Code Gallery) Esempi di giochi di Microsoft Store
Esempio di gioco JavaScript 2D Creare un gioco della piattaforma UWP in JavaScript
Esempio di gioco JavaScript 3D Creazione di un gioco JavaScript 3D con three.js
Esempio di gioco UWP MonoGame 2D Creare un gioco UWP in MonoGame 2D

Forum per sviluppatori

I forum per sviluppatori sono un ottimo posto dove porre e rispondere alle domande sullo sviluppo di giochi e connettersi alla community di sviluppo di giochi. I forum possono anche essere risorse fantastiche per trovare risposte esistenti a problemi difficili che gli sviluppatori hanno affrontato e risolto in passato.

Pubblicazione di app e forum per sviluppatori di giochi Pubblicazione e annunci in-app
Forum per sviluppatori di app UWP Sviluppo di app per la piattaforma UWP (Universal Windows Platform)
Forum per sviluppatori di applicazioni desktop Forum per applicazioni desktop di Windows
Giochi di Microsoft Store DirectX (post del forum archiviati) Creazione di giochi di Microsoft Store con DirectX (archiviato)
Forum per sviluppatori di partner gestiti di Windows 10 Forum per sviluppatori XBOX: Windows 10
Forum di Xbox Live Forum di sviluppo di Xbox Live
Forum di PlayFab Forum di PlayFab

Blog per sviluppatori

I blog per sviluppatori sono un'altra grande risorsa per le informazioni più recenti sullo sviluppo di giochi. Sono disponibili post su nuove funzionalità, dettagli di implementazione, procedure consigliate, sfondo dell'architettura e altro ancora.

Creazione di app per Windows (blog) Sviluppo di app per Windows
Windows 10 (post di blog) Post in Windows 10
Blog del team di progettazione di Visual Studio Blog di Visual Studio
Blog di strumenti per sviluppatori di Visual Studio Blog sugli strumenti di sviluppo
Blog degli strumenti di sviluppo di Somasegar Blog di Somasegar
Blog per sviluppatori DirectX Blog per sviluppatori DirectX
Introduzione a DirectX 12 (post di blog) DirectX 12
Blog del team di Visual C++ Blog del team di Visual C++
Blog del team PIX Ottimizzazione delle prestazioni e debug per giochi DirectX 12 in Windows e Xbox
Blog del team di distribuzione di app di Windows universale Blog del team di creazione e distribuzione app UWP

Concetto e pianificazione

Nel concetto e nella fase di pianificazione si decide quale sarà il gioco e quali tecnologie e strumenti lo porteranno a compimento.

Panoramica delle tecnologie di sviluppo di giochi

Quando si inizia a sviluppare un gioco per la piattaforma UWP, sono disponibili molte opzioni per grafica, input, audio, rete, utilità e librerie.

Se si conoscono già tutte le tecnologie che si useranno nel gioco, si può iniziare. In caso contrario, la guida alle tecnologie di gioco per le app UWP offre una panoramica eccellente di molte delle tecnologie disponibili e ne è altamente consigliata la lettura per comprendere le opzioni e capire come si adattino insieme.

Panoramica sulle tecnologie dei giochi UWP Tecnologie di gioco per le app UWP

Pianificazione del gioco

Questi sono alcuni concetti generali e argomenti da considerare durante la pianificazione del gioco.

Rendere accessibile il gioco Accessibilità per i giochi
Creare giochi usando il cloud Cloud per i giochi
Monetizzare il gioco Monetizzazione per i giochi

Scelta della tecnologia grafica e del linguaggio di programmazione

Sono disponibili diversi linguaggi di programmazione e tecnologie grafiche per i giochi di Windows. Il percorso da seguire dipende dal tipo di gioco che si sta sviluppando, dall'esperienza e dalle preferenze dell'ambiente di sviluppo e dagli specifici requisiti di funzionalità del gioco. Si userà C#, C++o JavaScript? DirectX, XAML o HTML5?

DirectX

Microsoft DirectX è la scelta ideale per la grafica e i contenuti multimediali 2D e 3D ad alte prestazioni.

DirectX 12 è più veloce ed efficiente di qualsiasi versione precedente. Direct3D 12 consente scene più complete, più oggetti, effetti più complessi e l'uso completo dell'hardware GPU moderno nei PC Windows e Xbox One.

Se si desidera usare la pipeline grafica familiare di Direct3D 11, potrai comunque trarre vantaggio dalle nuove funzionalità di rendering e ottimizzazione aggiunte a Direct3D 11.3. Inoltre, gli sviluppatori di API Desktop Windows con esperienza e radici in Win32 avranno anche questa opzione per il gioco di Windows.

Le funzionalità estese e l'integrazione completa della piattaforma di DirectX offrono la potenza e le prestazioni necessarie per i giochi più complessi.

DirectX per lo sviluppo UWP Programmazione DirectX
Esercitazione: Come creare un gioco DirectX UWP Creazione di un semplice gioco UWP con DirectX
Informazioni di riferimento e panoramica su DirectX Grafica e giochi DirectX
Guida alla programmazione e informazioni di riferimento su Direct3D 12 Grafica Direct3D 12
Video di sviluppo per grafica e DirectX 12 (canale YouTube) Microsoft DirectX 12 e Graphics Education

XAML

XAML è un linguaggio dichiarativo facile da usare con funzionalità pratiche come animazioni, storyboard, data binding, grafica scalabile basata su vettori, ridimensionamento dinamico e grafici della scena. XAML è ideale per l'interfaccia utente del gioco, i menu, gli sprite e la grafica 2D. Per semplificare il layout dell'interfaccia utente, XAML è compatibile con strumenti di progettazione e sviluppo come Expression Blend e Microsoft Visual Studio. XAML viene comunemente usato con C#, ma anche C++ è una buona scelta, ad esempio se il gioco ha esigenze di CPU elevate.

Panoramica della piattaforma XAML Piattaforma XAML
Interfaccia utente e controlli XAML Controlli, layout e testo

HTML 5

HyperText Markup Language (HTML) è un noto linguaggio di markup dell'interfaccia utente usato per pagine Web, app e client avanzati. I giochi di Windows possono usare HTML5 come livello di presentazione completo con le caratteristiche familiari di HTML, l'accesso alla piattaforma UWP (Universal Windows Platform) e il supporto per funzionalità Web moderne come AppCache, Web Worker, canvas, trascinamento della selezione, programmazione asincrona e SVG. Dietro le quinte, il rendering HTML sfrutta la potenza dell'accelerazione hardware DirectX, in modo da poter ottenere comunque i vantaggi in termini di prestazioni di DirectX senza scrivere codice aggiuntivo. HTML5 è una buona scelta se si è esperti di sviluppo Web, conversioni di giochi Web o se si desidera usare livelli di linguaggio e grafica più facili da affrontare rispetto alle altre scelte. HTML5 viene usato con JavaScript, ma può anche chiamare nei componenti creati con C# o C++/CX.

Informazioni sul modello a oggetti di documenti e HTML5 Riferimento ad HTML ed DOM
Raccomandazione W3C HTML5 HTML5

Combinazione di tecnologie di presentazione

Microsoft DirectX Graphics Infrastructure (DXGI) offre interoperabilità e compatibilità tra più tecnologie grafiche. Per la grafica ad alte prestazioni, è possibile combinare XAML e DirectX; usando XAML per menu e altre semplici interfacce utente e DirectX per il rendering di scene 2D e 3D complesse. DXGI offre anche la compatibilità tra Direct2D, Direct3D, DirectWrite, DirectCompute e Microsoft Media Foundation.

Guida e informazioni di riferimento sulla programmazione dell'infrastruttura grafica DirectX DXGI
Combinazione di DirectX e XAML Interoperabilità DirectX e XAML

C++

C++/WinRT è un linguaggio a prestazioni elevate e a basso sovraccarico che offre la potente combinazione di velocità, compatibilità e accesso alla piattaforma. C++/WinRT semplifica l'uso di tutte le grandi funzionalità di gioco in Windows, tra cui DirectX e Xbox Live. È anche possibile riutilizzare codice e librerie C++ esistenti. C++/WinRT crea codice nativo veloce che non comporta il sovraccarico di operazioni Garbage Collection, in modo che il gioco possa avere prestazioni elevate e basso consumo di energia, garantendo così una maggiore durata della batteria. Usare C++/WinRT con DirectX o XAML o creare un gioco che sfrutti la combinazione di entrambi.

C#

C# (pronunciato "See sharp") è un linguaggio moderno e innovativo con caratteristiche di semplicità e potenza, indipendente dai tipi e orientato agli oggetti. C# consente uno sviluppo rapido mantenendo al tempo stesso la familiarità e l'espressività dei linguaggi in stile C. Sebbene sia facile da usare, C# offre numerose funzionalità avanzate di linguaggio come polimorfismo, delegati, espressioni lambda, chiusura, metodi iteratori, covarianza ed espressioni LINQ (Language-Integrated Query). C# è una scelta eccellente se si usa XAML, se si desidera iniziare rapidamente a sviluppare il gioco o se si ha già avuto esperienza con C#. C# viene usato principalmente con XAML, quindi se si desidera usare DirectX, è preferibile scegliere C++ o scrivere parte del gioco come componente di C++ che interagisce con DirectX. In alternativa, è possibile considerare l'uso di Win2D, una libreria grafica Direct2D in modalità immediata per C# e C++.

Riferimenti e guida per programmatori C# Riferimenti al linguaggio C#

Usare i componenti di Windows Runtime per combinare linguaggi

Con la piattaforma UWP (Universal Windows Platform), è facile combinare componenti scritti in linguaggi diversi. Creare componenti Windows Runtime in C++, C# o Visual Basic e quindi chiamarli da JavaScript, C#, C++o Visual Basic. È un ottimo modo per programmare parti del gioco nel linguaggio preferito. I componenti consentono anche di usare librerie esterne disponibili solo in un particolare linguaggio, nonché di usare codice già scritto.

Come creare componenti Windows Runtime Componenti Windows Runtime con C++/WinRT

Quale versione di DirectX deve usare il gioco?

Se si sceglie DirectX per il gioco, si dovrà decidere quale versione usare: Microsoft Direct3D 12 o Microsoft Direct3D 11.

DirectX 12 è più veloce ed efficiente di qualsiasi versione precedente. Direct3D 12 consente scene più complete, più oggetti, effetti più complessi e l'uso completo dell'hardware GPU moderno nei PC Windows e Xbox One. Dal momento che Direct3D 12 lavora a un livello molto basso, può dare a un team di sviluppo di grafica esperto o a un team di sviluppo di DirectX 11 esperto tutto il controllo necessario per l'ottimizzazione grafica.

Direct3D 11.3 è un'API grafica di basso livello che usa il familiare modello di programmazione Direct3D e gestisce la complessità del rendering GPU. È supportata anche in Windows e Xbox One. Se si è già scritto un motore in Direct3D 11 e non è ancora il momento per passare a Direct3D 12, è possibile usare Direct3D 11 su 12 per ottenere alcuni miglioramenti delle prestazioni. Le versioni a partire dalla 11.3 contengono nuove funzionalità di rendering e ottimizzazione attivate anche in Direct3D 12.

Scelta di Direct3D 12 o Direct3D 11 Cos'è Direct3D 12?
Panoramica di Direct3D 11 Grafica Direct3D 11
Panoramica di Direct3D 11 su 12 Direct3D 11 su 12

Bridge, motori di gioco e middleware

A seconda delle esigenze del gioco, l'uso di bridge, motori di gioco o middleware può risparmiare tempo e risorse di sviluppo e test. Ecco alcune informazioni generali e risorse per bridge, motori di gioco e middleware.

Azure PlayFab

Azure PlayFab, ora parte della famiglia Microsoft, è una piattaforma back-end completa per giochi live che offre un approccio avanzato per attività iniziali delle case di produzione indipendenti. Incrementa i ricavi, il coinvolgimento e la fidelizzazione, riducendo al tempo stesso i costi, con servizi per i giochi, analisi in tempo reale e LiveOps.

PlayFab Panoramica di strumenti e servizi
Introduzione Che cos'è PlayFab?
Serie di esercitazioni video Serie di video dimostrativi sui sistemi principali di PlayFab
Ricette Ricette
Repository GitHub Ottenere script e SDK per varie piattaforme, tra cui Android, iOS, Windows, Unity e Unreal.
Documentazione sull'API Panoramica di REST API
Forum Forum di PlayFab

Unity

Unity offre una piattaforma per la creazione di accattivanti giochi e app 2D, 3D, VR e AR. Consente di realizzare rapidamente la propria visione creativa e di distribuire il contenuto a qualsiasi supporto o dispositivo.

A partire da Unity 5.4, Unity supporta lo sviluppo di Direct3D 12.

Motore di gioco Unity Unity - Motore di gioco
Ottenere Unity Ottenere Unity
Documentazione di Unity per Windows Manuale di Unity/Windows
Aggiungere LiveOps con PlayFab Guida introduttiva: Libreria client PlayFab per C# in Unity
Come aggiungere interattività al gioco usando Mixer Interactive Guida introduttiva
Mixer SDK per Unity Plug-in Mixer Unity
Documentazione di riferimento di Mixer SDK per Unity Informazioni di riferimento sulle API per il plug-in Mixer Unity
Risoluzione dei problemi con riferimenti mancanti agli assembly in API.NET API .NET mancanti in Unity e UWP
Pubblicare il gioco Unity come app piattaforma UWP (Universal Windows Platform) (video) Come pubblicare un gioco Unity come app UWP
Usare Unity per creare giochi e app di Windows (video) Creazione di giochi e app di Windows con Unity
Sviluppo di giochi Unity con Visual Studio (serie di video) Uso di Unity con Visual Studio 2015

Havok

La suite modulare di strumenti e tecnologie di Havok aiuta i creatori di giochi a raggiungere nuovi livelli di interattività e di immersione. Havok consente di ottenere una fisica altamente realistica, simulazioni interattive e incredibili scene cinematografiche. Dalla versione 2015.1 o successiva supporta ufficialmente la piattaforma UWP in Visual Studio 2015 su x86, 64 bit e Arm.

Sito Web di Havok Havok

MonoGame

MonoGame è un framework open source di sviluppo di giochi multipiattaforma basato originariamente su XNA Framework 4.0 di Microsoft. Monogame supporta attualmente Windows e Xbox, Linux, macOS, iOS, Android e diverse altre piattaforme.

MonoGame Visita il sito Web
Documentazione di MonoGame Visualizzare la documentazione
Versioni di Monogame Ottenere la versione più recente tramite NuGet

Cocos2d

Cocos2d-x è un motore di sviluppo di giochi open source multipiattaforma e una suite di strumenti che supporta la creazione di giochi UWP. A partire dalla versione 3 dispone anche di funzionalità 3D.

Cocos2d-x Cos'è Cocos2d-x?
Guida del programmatore a Cocos2d-x Guida del programmatore a Cocos2d-x
Cocos2d-x in Windows 10 (post di blog) Esecuzione di Cocos2d-x in Windows 10
Aggiungere LiveOps con PlayFab Guida introduttiva a Cocos2D-x

Unreal Engine

Unreal Engine è una suite completa di strumenti di sviluppo per ogni tipo di gioco e di sviluppatore. Unreal Engine viene usato dagli sviluppatori di giochi in tutto il mondo per creare i giochi di console e PC più esigenti.

Panoramica di Unreal Engine Unreal Engine

BabylonJS

BabylonJS è un framework JavaScript completo per la creazione di giochi 3D con HTML5, WebGL, WebVR e Web Audio.

BabylonJS BabylonJS
Creazione di un gioco WebGL multipiattaforma con BabylonJS Usare BabylonJS per sviluppare un gioco multipiattaforma

Conversione del gioco

Nel caso di un gioco esistente, sono disponibili molte risorse e guide per scoprire come convertirlo rapidamente nella piattaforma UWP.

Conversione di un'app di Windows 8 in un'app UWP (Universal Windows Platform) Passare da Windows Runtime 8.x a UWP
Conversione di un'app di Windows 8 in un'app UWP (Universal Windows Platform) (video) Conversione di app 8.1 a Windows 10
Conversione di un'app iOS in un'app UWP (Universal Windows Platform) Passare da iOS a UWP
Conversione di un'app Silverlight in un'app UWP (Universal Windows Platform) Passare da Silverlight per Windows Phone a UWP
Conversione da XAML o Silverlight a un'app UWP (Universal Windows Platform) (video) Conversione di un'app da XAML o Silverlight a Windows 10
Conversione di un gioco Xbox in un'app UWP (Universal Windows Platform) UWP in Xbox One
Conversione da DirectX 9 a DirectX 11 Conversione da DirectX 9 alla piattaforma UWP (Universal Windows Platform)
Conversione da Direct3D 11 a Direct3D 12 Conversione da Direct3D 11 a Direct3D 12
Conversione da OpenGL ES a Direct3D 11 Conversione da OpenGL ES 2.0 a Direct3D 11
Convertire da OpenGL ES a Direct3D 11 con ANGLE ANGLE
API Windows classiche equivalenti nella piattaforma UWP Alternative alle API di Windows nelle app UWP (Universal Windows Platform)

Progettare e creare prototipi

Dopo avere stabilito il tipo di gioco da creare e gli strumenti e la tecnologia grafica da usare, scatta la fase di progettazione e di creazione del prototipo. Il cuore del gioco è un'app della piattaforma UWP (Universal Windows Platform), perciò è da qui che occorre iniziare.

Introduzione alla piattaforma UWP (Universal Windows Platform)

La piattaforma UWP (Universal Windows Platform) rappresenta una piattaforma API comune per i vari dispositivi che ospitano Windows. La piattaforma UWP evolve ed espande il modello Windows Runtime (WinRT) e lo integra in modo unificato e coeso. I giochi destinati alla piattaforma UWP possono chiamare API WinRT comuni a tutti i dispositivi. Poiché la piattaforma UWP offre livelli API garantiti, è possibile scegliere di creare un singolo pacchetto di app che verrà installato nei dispositivi Windows. Se lo si desidera, il gioco può comunque chiamare API (incluse alcune API di Windows classiche da Win32 e.NET) specifiche per i dispositivi sui quali viene eseguito il gioco.

Di seguito sono riportate alcune ottime guide che illustrano in dettaglio le app della piattaforma UWP (Universal Windows Platform) e sono consigliate per comprendere la piattaforma.

Introduzione alle app della piattaforma UWP (Universal Windows Platform) Cos'è un'app UWP (Universal Windows Platform)?

Introduzione allo sviluppo UWP

La configurazione e la preparazione per lo sviluppo di un'app piattaforma UWP (Universal Windows Platform) è semplice e veloce. Le guide seguenti illustrano in modo dettagliato il processo.

Introduzione allo sviluppo UWP Iniziare a usare le app di Windows
Configurazione per lo sviluppo UWP Effettuare la configurazione

Se si è agli inizi della programmazione UWP e si sta valutando l'uso di XAML nel gioco (vedere Scelta della tecnologia grafica e del linguaggio di programmazione), la serie di video per principianti nello sviluppo di Windows 10 è un buon punto di partenza.

Annuncio della serie per principianti di Windows 10 con XAML (post di blog) Windows 10: sviluppo per principianti assoluti)

Concetti relativi allo sviluppo UWP

Panoramica dello sviluppo di app per la piattaforma UWP Sviluppare app di Windows
Panoramica della programmazione di rete nella piattaforma UWP Rete e servizi Web
Uso di Windows.Web.HTTP e Windows.Networking.Sockets nei giochi Reti per i giochi
Concetti di programmazione asincrona nella piattaforma UWP Programmazione asincrona

API Desktop di Windows e UWP

I seguenti collegamenti illustrano come interagire con codice per desktop e UWP.

Usare codice C++ esistente per lo sviluppo di giochi UWP Procedura: Usare codice C++ esistente in un'app UWP
API di Windows Runtime per API Win32 e COM API Win32 e COM per app UWP
Funzioni CRT non supportate in UWP Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform)
Alternative per API Windows Alternative alle API di Windows nelle app UWP (Universal Windows Platform)

Gestione della durata dei processi

La gestione della durata dei processi (detta anche durata delle app) descrive i vari stati di attivazione che può attraversare un'app UWP (Universal Windows Platform). Il gioco può essere attivato, sospeso, ripreso o terminato e può passare attraverso tali stati in diversi modi.

Gestione delle transizioni di vita delle app Ciclo di vita dell'app
Uso di Microsoft Visual Studio per attivare le transizioni di app Come attivare eventi di sospensione, ripresa e background nelle applicazioni UWP in Visual Studio

Progettazione dell'esperienza utente di un gioco

La genesi di un grande gioco è nella sua progettazione.

Giochi e app condividono alcuni elementi di interfaccia e principi di progettazione; ma i giochi hanno spesso aspetti e obiettivi di progettazione del tutto particolari per quanto riguarda l'esperienza utente. I giochi hanno successo quando la loro ponderata progettazione viene applicata a entrambi questi aspetti e deve scegliere tra un'esperienza utente comprovata e scelte divergenti e innovative. La tecnologia di presentazione del gioco, ovvero DirectX, XAML, HTML5 o una loro combinazione, influirà sui dettagli di implementazione, ma i principi di progettazione applicati sono in gran parte indipendenti da tale scelta.

A differenza dell'esperienza utente, il design del gioco (livelli, ritmo, caratterizzazione del mondo e altri aspetti) rappresenta una forma d'arte propria che dipende dalla creatività del team di sviluppo e non è trattata in questa guida.

Nozioni di base e linee guida sulla progettazione UWP Progettazione di app UWP
Progettazione per gli stati del ciclo di vita dell'app Linee guida UX per avvio, sospensione e ripresa
Progettare app UWP per Xbox One e schermi televisivi Progettazione per Xbox e TV

Linee guida sulle tavolozze dei colori

Una linea guida di colore coerente nel gioco migliora l'estetica, facilita la navigazione e rappresenta un ottimo strumento per informare il giocatore sui menu e sulle funzionalità della grafica in sovrimpressione. La colorazione coerente degli elementi di gioco come avvisi, danni, punti e obiettivi può portare a un'interfaccia utente più pulita e ridurre la necessità di etichette esplicite.

Guida ai colori Colore nelle app di Windows 11

Tipografia

L'uso appropriato della tipografia migliora molti aspetti del gioco, tra cui il layout dell'interfaccia utente, la navigazione, la leggibilità, l'atmosfera, il marchio e l'immersione del giocatore.

Guida alla tipografia Procedure consigliate: tipografia

Mappa dell'interfaccia utente

Una mappa dell'interfaccia utente è un layout di spostamento e menu di gioco espressi in forma di diagramma di flusso. La mappa dell'interfaccia utente aiuta il team di sviluppo e chiunque si coinvolto nel lavoro sul gioco a comprenderne l'interfaccia e i percorsi di navigazione, e può risultare molto utile per scovare potenziali ostacoli e vicoli ciechi all'inizio del ciclo di sviluppo.

Guida alla mappa dell'interfaccia utente Procedure consigliate: Mappa interfaccia utente

Audio del gioco

Di seguito sono riportate guide e riferimenti per l'implementazione di audio nei giochi con XAudio2, XAPO e Windows Sonic. XAudio2 è un'API audio di basso livello che fornisce l'elaborazione dei segnali e la base di combinazione per lo sviluppo di motori audio a elevate prestazioni. L'API XAPO consente la creazione di oggetti di elaborazione audio multipiattaforma (XAPO) da usare con XAudio2 in Windows e Xbox. Il supporto audio di Windows Sonic consente di aggiungere Dolby Atmos per Home Theater, Dolby Atmos per le cuffie e il supporto HRTF di Windows per lo streaming del gioco o del'applicazione multimediale.

API XAudio2 Guida alla programmazione e informazioni di riferimento sulle API per XAudio2
Creare oggetti di elaborazione audio multipiattaforma Panoramica XAPO
Introduzione ai concetti relativi all'audio Audio per i giochi
Panoramica di Windows Sonic Audio spaziale
Esempi di audio spaziale con Windows Sonic Esempi audio con Xbox Advanced Technology Group

Direct3D 12

Novità e differenze in Direct3D 12 rispetto a Direct3D 11 e come iniziare a programmare con Direct3D 12.

Guida alla programmazione e informazioni di riferimento su Direct3D 12 Grafica Direct3D 12
Configurare l'ambiente di programmazione Configurazione dell'ambiente di programmazione Direct3D 12
Come creare un componente di base Creazione di un componente Direct3D 12 di base
Modifiche in Direct3D 12 Modifiche importanti nella migrazione da Direct3D 11 a Direct3D 12
Come convertire da Direct3D 11 a Direct3D 12 Conversione da Direct3D 11 a Direct3D 12
Concetti relativi all'associazione di risorse (descrittore, tabella descrittore, heap del descrittore e firma radice) Associazione di risorse in Direct3D 12
Gestione della memoria Gestione della memoria in Direct3D 12

Sviluppo in DirectX

Guide e riferimenti per lo sviluppo di giochi con DirectX.

DirectX per lo sviluppo UWP Programmazione DirectX
Esercitazione: Come creare un gioco DirectX UWP Creazione di un semplice gioco UWP con DirectX
Interazione di DirectX con il modello di app UWP Oggetto app e DirectX
Informazioni di riferimento e panoramica su DirectX Grafica e giochi DirectX
Nozioni fondamentali su DirectX 12 (video) Maggiore potenza, migliori prestazioni di gioco su DirectX 12

Kit e librerie degli strumenti DirectX

Il DirectX Tool Kit, la libreria di elaborazione delle texture DirectX, la libreria di elaborazione geometrica DirectXMesh, la libreria UVAtlas e libreria DirectXMath forniscono texture, mesh, sprite e altre funzioni utili e classi helper per lo sviluppo in DirectX. Queste librerie consentono di risparmiare tempo e sforzi di sviluppo.

Ottenere DirectX Tool Kit per DirectX 12 DirectXTK 12
Ottenere DirectX Tool Kit per DirectX 11 DirectXTK
Ottenere la libreria di elaborazione delle texture DirectXTex DirectXTex
Ottenere la libreria di elaborazione geometrica DirectXMesh DirectXMesh
Ottenere UVAtlas per la creazione e la compressione dell'atlas delle texture isochart UVAtlas
Ottenere la libreria DirectXMath DirectXMath
Supporto di Direct3D 12 in DirectXTK (problema in GitHub) Supporto per DirectX 12

Risorse DirectX dei partner

La documentazione seguente proviene da documentazione DirectX aggiuntiva creata da partner esterni.

Nvidia: Cose da fare e da non fare con DX12 (post di blog) Cose da fare e da non fare con DX12, post aggiornato
Intel: Elaborazione parallela con DirectX 3D 12 Elaborazione parallela con DirectX 3D 12
Intel: Come implementare un'applicazione a più schede esplicita con DirectX 12 Supporto di più adattatori in DirectX 12
Intel: White paper collaborativo di Intel, Suzhou Snail e Microsoft Esercitazione: Migrazione delle app a DirectX 12 - Parte 1

Produzione

In questa fase il team è totalmente immerso nelle attività di sviluppo e nel ciclo di produzione, occupando ogni singolo membro. Si perfezionano i dettagli, si fa refactoring e si estende il prototipo per trasformarlo in un gioco completo.

Riquadri animati e notifiche

Un riquadro è la rappresentazione del gioco nel menu Start di Windows. I riquadri e le notifiche possono favorire l'interesse dei giocatori anche quando non giocano.

Sviluppo di riquadri e badge Riquadri, badge e notifiche
Esempio che illustra riquadri animati e notifiche Esempio di notifica
Modelli di riquadri adattivi (post di blog) Modelli di riquadri adattivi - Schema e documentazione
Progettazione di riquadri e badge Linee guida per riquadri e badge
App di Windows 10 per lo sviluppo interattivo di modelli di riquadri animati Notifications Visualizer
Estensione del generatore di riquadri UWP per Visual Studio Strumento per la creazione dei riquadri usando un'unica immagine
Estensione del generatore di riquadri UWP per Visual Studio (post di blog) Suggerimenti sull'uso dello strumento di creazione di riquadri UWP

Attivare acquisti di prodotti (componenti aggiuntivi) in-app

Un componente aggiuntivo (prodotto in-app) è un articolo supplementare che i giocatori possono acquistare dall'interno del gioco. Possono essere livelli di gioco, articoli, oggetti o qualsiasi altro elemento interessante per i giocatori. Usati in modo appropriato, i componenti aggiuntivi possono produrre ricavi e migliorare allo stesso tempo l'esperienza di gioco. Definire e pubblicare i componenti aggiuntivi del gioco tramite il Centro per i partner e attivare gli acquisti in-app nel codice del gioco.

Componenti aggiuntivi durevoli Attiva gli acquisti di prodotti in-app
Componenti aggiuntivi di consumo Abilitare gli acquisti di prodotti di consumo in-app
Dettagli e invio del componente aggiuntivo Invii di componenti aggiuntivi
Monitorare le vendite dei componenti aggiuntivi e i dati demografici Report Acquisizioni componenti aggiuntivi

Debug, monitoraggio e ottimizzazione delle prestazioni

Per ottimizzare le prestazioni, è possibile sfruttare la modalità gioco in Windows per offrire ai giocatori la migliore esperienza di gioco possibile utilizzando completamente la capacità dell'hardware in uso.

Windows Performance Toolkit (WPT) è costituito da strumenti di monitoraggio delle prestazioni che producono profili di prestazioni approfonditi di sistemi operativi e applicazioni Windows. Risulta particolarmente utile per monitorare l'utilizzo della memoria e migliorare le prestazioni del gioco. Windows Performance Toolkit è incluso in Windows SDK e Windows ADK. Questo toolkit è costituito da due strumenti indipendenti: Windows Performance Recorder (WPR) e Windows Performance Analyzer (WPA). ProcDump, che fa parte di Windows Sysinternals, è un'utilità della riga di comando che monitora i picchi di CPU e genera file di dump durante gli arresti anomali del gioco.

Test delle prestazioni del codice Azure Test Plans
Ottenere il tipo di console Xbox usando informazioni sul dispositivo di gioco Informazioni sui dispositivi di gioco
Migliorare le prestazioni ottenendo l'accesso esclusivo o prioritario alle risorse hardware usando le API modalità gioco Modalità gioco
Ottenere Windows Performance Toolkit (WPT) Windows Performance Toolkit
Ottenere Windows Performance Toolkit (WPT) da Windows ADK Windows ADK
Ottenere ProcDump ProcDump

Tecniche e concetti avanzati di DirectX

Alcune parti dello sviluppo DirectX possono essere complesse e piene di sfumature. Quando si arriva a un punto nella produzione in cui è necessario esaminare i dettagli del motore DirectX o eseguire il debug di problemi di prestazioni difficili, le risorse e le informazioni in questa sezione possono essere utili.

Strumento di ottimizzazione e debug delle prestazioni per DirectX 12 in Windows Introduzione a PIX in Windows
Guida alla programmazione di Direct3D 12 Grafica Direct3D 12
Combinazione di DirectX e XAML Interoperabilità DirectX e XAML

Sviluppo di contenuti HDR (High Dynamic Range)

Crea contenuto di gioco che usa le funzionalità di colore complete di HDR.

Informazioni su come eseguire il rendering del contenuto HDR e rilevare se lo schermo corrente lo supporta Esempio HDR di Direct3D 12
Creare e configurare un colore avanzato con DirectX Esempio di rendering avanzato delle immagini a colori Direct2D

Globalizzazione e localizzazione

Sviluppare giochi pronti per la pubblicazione mondiale sulla piattaforma Windows e scoprire le funzionalità internazionali integrate nei prodotti principali di Microsoft.

Preparazione del gioco per il mercato globale Globalizzazione e localizzazione

Invio e pubblicazione del gioco

Le guide e le informazioni seguenti consentono di rendere il processo di pubblicazione e invio il più agevole possibile.

Pubblicazione

Per pubblicare e gestire i pacchetti di gioco si usa il Centro per i partner.

Pubblicazione di app con il Centro per i partner Pubblicare app di Windows
Usare Azure Active Directory (AAD) per aggiungere utenti all'account del Centro per i partner Creare gruppi di clienti
Valutazione del gioco (post di blog) Ora disponibile: sistema di classificazione a fascia d'età singola per semplificare gli invii di app

Creazione di pacchetti e caricamenti

Dividere e raggruppare il contenuto per attivare l'installazione in streaming Installazione in streaming di app UWP
Creare pacchetti facoltativi come contenuti di gioco DLC Pacchetti facoltativi e creazione di set correlati
Creare un pacchetto di gioco UWP Creazione di pacchetti delle app
Creare un pacchetto di gioco DirectX UWP Creare un pacchetto di gioco DirectX UWP
Creazione del pacchetto di gioco come sviluppatore di terze parti (post di blog) Creare pacchetti caricabili senza accesso in qualità di editore all'account dello Store
Creazione di pacchetti di app e bundle di pacchetti di app con MakeAppx Creare pacchetti con lo strumento di creazione pacchetti di app MakeAppx.exe
Firma digitale dei file con SignTool Firmare i file e verificare le firme nei file con SignTool
Caricamento e controllo delle versioni del gioco Caricare pacchetti di app

Certificati e criteri

Non lasciare che i problemi di certificazione posticipino il rilascio del gioco. Ecco i criteri e i problemi di certificazione comuni di cui tenere conto.

Contratto Microsoft Store App per gli sviluppatori Contratto per gli sviluppatori di app
Criteri per la pubblicazione di app sul Microsoft Store Criteri di Microsoft Store
Come evitare alcuni problemi comuni di certificazione delle app Evitare gli errori di certificazione comuni

File di manifesto dello store (StoreManifest.xml)

Il manifesto dello store (StoreManifest.xml) è un file di configurazione facoltativo che è possibile includere nel pacchetto dell'app. Il manifesto dello store fornisce funzionalità aggiuntive che non fanno parte del AppxManifest.xml file. Ad esempio, è possibile usare il manifesto dello store per bloccare l'installazione del gioco se un dispositivo di destinazione non ha il livello minimo di funzionalità DirectX specificato o se il sistema non ha la memoria minima specificata.

Schema del file di manifesto dello store Schema StoreManifest (Windows 10)

Gestione del ciclo di vita del gioco

Dopo avere completato lo sviluppo e avere pubblicato il gioco, c'è ancora altro da fare. Lo sviluppo della versione 1 può anche essere terminato, ma il percorso del gioco nel marketplace è appena agli inizi. Sarà doveroso monitorare l'utilizzo e la segnalazione degli errori, rispondere ai commenti e ai suggerimenti degli utenti e pubblicare gli aggiornamenti del gioco.

Dati, analisi e promozione nel Centro per i partner

Analisi nel Centro per i Partner Analizzare le prestazioni delle applicazioni
Informazioni su come i clienti interagiscono con le funzionalità Xbox nel gioco Report Analisi Xbox
Risposte alle recensioni dei clienti Rispondere alle recensioni dei clienti
Modi per promuovere il gioco Attirare i clienti e promuovere le app

Visual Studio Application Insights

Visual Studio Application Insights offre analisi di prestazioni, telemetria e utilizzo per il gioco pubblicato. Application Insights consente di rilevare e risolvere i problemi dopo il rilascio del gioco, monitorarne e migliorarne continuamente l'utilizzo e comprendere come i giocatori continuano a interagirvi. Con Application Insights all'app viene aggiunto un SDK che invia dati di telemetria al portale di Azure.

Analisi delle prestazioni e dell'utilizzo delle applicazioni Panoramica di Application Insights
Monitoraggio di Azure Panoramica di Monitoraggio di Azure

Soluzioni di terze parti per l'analisi e la promozione

Comprendere il comportamento del giocatore con GameAnalytics GameAnalytics
Connettere il gioco UWP in Google Analytics Ottenere Windows SDK per Google Analytics
Usare Facebook App Installs Ads per promuovere il gioco agli utenti di Facebook Ottenere Windows SDK per Facebook
Usare Vungle per aggiungere annunci video nei giochi Scaricare Vungle SDK per Windows

Creazione e gestione degli aggiornamenti del contenuto

Per aggiornare il gioco pubblicato, è necessario inviare un nuovo pacchetto dell'app con un numero di versione superiore. Una volta passato attraverso l'invio e la certificazione, il pacchetto sarà automaticamente disponibile per i clienti come aggiornamento.

Aggiornamento e controllo delle versioni del gioco Numerazione delle versioni dei pacchetti
Linee guida per la gestione dei pacchetti di giochi Linee guida per la gestione dei pacchetti dell'app

Aggiunta di Xbox Live al gioco

Xbox Live è una rete di gioco premier che connette milioni di giocatori in tutto il mondo. Gli sviluppatori ottengono l'accesso alle funzionalità di Xbox Live che possono aumentare in modo organico il pubblico, tra cui la presenza di Xbox Live, classifiche, salva nel cloud, hub di gioco, club, chat di party, game DVR e altro ancora.

Nota

Se si desidera sviluppare titoli attivati per Xbox Live, sono disponibili diverse opzioni. Per informazioni sui vari programmi, vedere Scelta di un programma per sviluppatori Xbox Live.

Panoramica di Xbox Live Documentazione di Xbox Live

Per gli sviluppatori iscritti al programma per creatori Xbox Live

Panoramica Iscrizione al programma Creators

Per partner gestiti e sviluppatori nel programma ID@Xbox

Panoramica Introduzione a Xbox Live per partner gestiti
Esempi Esempi di sviluppo di giochi Xbox

Risorse aggiuntive

Video di grandi conferenze, ad esempio GDC e //build Video sullo sviluppo dei giochi