Come imparare XNA

XNA è una piattaforma di sviluppo di giochi di Microsoft che può essere utilizzata per creare giochi per Windows, Xbox 360 e Windows Phone. In questo articolo, condivideremo libri, tutorial e suggerimenti per l'apprendimento di XNA nel modo più fluido possibile.

Interessato ad altre piattaforme gamedev? Consulta le nostre guide per l'apprendimento di Unity o Flash!

Cos'è XNA?

XNA (originariamente "Xbox New Architecture", ora semplicemente "XNA's Not Acronymed") è un insieme di strumenti di sviluppo di giochi basati su .NET, che girano su Windows - mi spiace, Mac e Linux. I giochi creati con XNA possono essere eseguiti su Windows, Xbox 360 e Windows Phone 7, con altri progetti come MonoXNA e MonoGame che tentano di portare i giochi su altre piattaforme.

Gli strumenti XNA sono gratuiti e, con una tariffa annuale, puoi vendere i tuoi giochi tramite Xbox Live Indie Games (supponendo che superino la peer review) e il marketplace di Windows Phone 7. (Se sei uno studente, puoi avere un abbonamento Xbox Live Indie Games gratuito.) I giochi Windows creati con XNA possono essere venduti come i giochi Windows creati con altri strumenti: non esiste un mercato ufficiale per i giochi XNA.

Poiché XNA Framework è basato su .NET, qualsiasi linguaggio .NET può essere utilizzato tecnicamente per creare giochi con esso - sebbene solo C # e Visual Basic.NET siano ufficialmente supportati.

L'ultima versione di XNA, 4.0, è stata rilasciata a settembre 2010 con un aggiornamento a ottobre 2011, quindi è abbastanza matura e ci sono molte risorse per questo. Non c'è stato alcun annuncio della versione 5.0, quindi non devi preoccuparti di imparare XNA 4.0 solo perché la tua conoscenza diventi immediatamente obsoleta.


Installare XNA

Come accennato in precedenza, gli strumenti XNA sono solo ufficialmente supportati su Windows.

Piuttosto confusamente, il sito ufficiale di XNA è l'hub per app MDSN, la cui pagina di download ha un intenso focus su Windows Phone - non è molto chiaro cosa è necessario scaricare se si desidera sviluppare giochi XNA per Xbox o desktop.

Tuttavia, è in realtà semplice: basta scaricare e installare Windows Phone SDK 7.1, che contiene tutto il software e gli strumenti necessari per lo sviluppo con XNA per Windows Phone, Xbox o desktop.

Il download include Visual Studio Express 2010, ma se hai già una versione migliore di Visual Studio 2010, puoi scaricare e installare gli strumenti XNA separatamente: XNA Game Studio 4.0 e XNA Game Studio 4.0 Aggiorna.

Potresti anche voler acquistare un controller Xbox 360 per il tuo PC a scopo di test, anche se ovviamente è facoltativo.


Il tutorial ufficiale

L'app Hub di MSDN ha un'esercitazione introduttiva (video in parte, in parte scritta) che ti guida nella costruzione di un semplice gioco sparatutto. Sono circa novanta minuti, anche se puoi aspettarti di passare qualche ora a completarlo tu stesso, e usa C #, che ti consiglio di scegliere come linguaggio XNA anche se conosci già un'altra lingua .NET..

Una volta completato, prova a cambiare qualcosa: l'artwork, la velocità dei nemici, la frequenza con cui appaiono i nemici, la potenza dei proiettili ... Potresti anche provare a creare un boss che richiede più colpi! Entrare nel gioco in questo modo ti aiuterà a capire cosa hai capito e su cosa hai bisogno di lavorare.

Altri tutorial, articoli e esempi di codice sorgente sono disponibili nel catalogo dei contenuti di App Hub. Ancora una volta, può essere divertente prendere qualcosa e scavare nel codice per vedere se è possibile cambiare il modo in cui funziona o aggiungere una nuova funzione.

Presumibilmente, questo tutorial è rivolto a persone che sono principianti per lo sviluppo del gioco, e non richiede alcuna conoscenza precedente della programmazione. Tuttavia, avendo seguito me stesso, sospetto che se non hai già esperienza in C # (o in un linguaggio simile come Java o AS3), lo troverai travolgente.

Pensa a quel tutorial come a una prova: se senti che non hai veramente capito cosa stava succedendo, allora non preoccuparti, significa solo che devi imparare a codificare ...


Apprendimento C #

Se vuoi fare giochi con XNA, dovrai imparare a programmare. Piuttosto che cercare di imparare a programmare e imparare lo sviluppo del gioco XNA allo stesso tempo, è più facile affrontare la programmazione da solo. Sì, questo significa costruire cose che non sono giochi, ma questo ti aiuterà a fare giochi a lungo termine.


Testa prima C #

Head First C # è un ottimo libro per iniziare. Ha un approccio divertente; gli autori usano effettivamente le lezioni apprese dai game designer per strutturare il libro.

Se hai più fame dopo questo, ottieni una copia di Essential C # 4.0. Quello che imparerai da Head First C # è probabilmente sufficiente per farti saltare nello sviluppo del gioco XNA; Essential C # ti aiuterà ad affinare la sega e diventare un programmatore C # migliore.

È utile avere un riferimento per cercare parole chiave non familiari (come un dizionario per programmatori). Il riferimento MSDN C # va bene per questo, ma se vuoi qualcosa di fisico, procurati una copia del riferimento tascabile C # 4.0.

Esegui nuovamente il tutorial XNA ufficiale dopo aver preso confidenza con C #: sarà molto più sensato!


XNA Books

Ok, quindi comprendi C # - o almeno comprendi un linguaggio di programmazione simile. Grande! È tempo di immergersi in XNA e iniziare a creare giochi.

Ci sono due grandi scelte per il tuo primo libro XNA, ed entrambi suppongono che tu sappia già C #. Scegli quello il cui approccio pensi che ti piacerà di più (o prendi entrambi!).

Learning XNA 4.0 è un'introduzione a XNA che ha un approccio abbastanza teorico. Insegna lo sviluppo di giochi 2D e quindi lo sviluppo di giochi 3D, nel contesto di giochi di costruzione. Parte del libro è dedicata a spiegare come esportare i tuoi giochi su Windows Phone 7 e Xbox.

XNA 4.0 Game Development by Example ha un approccio più pratico o funzionale, spiegando XNA mostrandoti come creare quattro giochi separati. Oltre a insegnarti nuovi concetti, il libro ti aiuta a praticare i giochi.

Se vuoi andare oltre dopo aver letto uno di questi, dai un'occhiata alla programmazione di XNA Game Studio 4.0. Va molto più in profondità in XNA e contiene materiale avanzato che dovrai sapere se vuoi essere uno sviluppatore XNA serio. Non sento il bisogno di correre a comprarlo, però; mettersi a proprio agio con le basi, in primo luogo.


Tutorial sul Web

Non c'è carenza di tutorial XNA online, ma questi siti offrono le guide più complete:

  • Esercitazioni XNA di RB Whitaker: questo sito ha un numero enorme di esercitazioni XNA, organizzate per argomento in una gerarchia - quindi c'è una struttura per loro, ma hai una buona quantità di scelta riguardo a quale ordine le fai.
  • Il blog di Shawn Hargreaves: Shawn Hargreaves è uno dei designer di XNA, quindi non sorprende che abbia una profonda conoscenza della piattaforma. La maggior parte - ma non tutti - dei suoi post sono tutorial. C'è anche un elenco di post categorizzati.
  • Esercitazioni Riemer 2D e 3D XNA: Riemer ha una serie dedicata alla realizzazione di tiratori 2D e quattro serie alla realizzazione di giochi 3D, suddivisa in 89 esercitazioni individuali. Come dice lui, "l'obiettivo principale di questi tutorial XNA è quello di produrre risultati di bell'aspetto nel più breve tempo possibile".
  • XNA Game Programming Adventures: questo sito ha una breve serie di tutorial sulla costruzione di un rompicapo, rivolto ai principianti, e una serie enorme (lunga più di 30 parti!) Sulla costruzione di un gioco di ruolo, rivolto a sviluppatori più esperti.
  • Catalin's Blog: Catalin Zima ha alcuni tutorial eccellenti sulle trame dei vertici, il rendering posticipato e il rendering delle pellicce in XNA.

Vuoi ancora di più? Scopri il kit di sopravvivenza XNA per sviluppatori di Nelxon Studio 2, che elenca un enorme numero di risorse su tutti gli argomenti XNA.

Se hai bisogno di materiale di riferimento, controlla la MSDN Library su XNA. Per domande e risposte, c'è sempre il Game Development Stack Exchange: dai uno sguardo alle domande precedenti taggate XNA 4.0.


Crea giochi

Questo è solo un consiglio generale: per il tuo primo gioco, non creare qualcosa di complesso come un MMO, o qualcosa che richiede un'enorme quantità di opere d'arte e storie come un gioco di ruolo. Inizia con qualcosa di semplice che potresti essere in grado di espandere in seguito. Ad esempio: un gioco a pulsante singolo come Canabalt potrebbe essere esteso per creare un platform; un clone di Pong potrebbe essere trasformato in un gioco rompicapo con più livelli; un gioco avoider potrebbe diventare un clone di invasori spaziali e quindi uno sparatutto in piena regola.

Non preoccupatevi di apprendere ancora abbastanza tecniche di programmazione avanzate; avrai tempo per familiarizzare con i modelli di progettazione e l'architettura generale del codice più tardi. Concentrati sulla conclusione di alcuni giochi, anche se i tuoi primi saranno solo piccoli.


Enorme ringraziamento a Stephane Beniak e Michael Hoffman di NullCandy per le loro raccomandazioni! Guarda i loro tutorial su XNA e dai un'occhiata a qualche nuovo tutorial da loro qui a Gamedevtuts + a breve.

Se avete suggerimenti per risorse di apprendimento XNA che abbiamo perso, fatecelo sapere nei commenti. Non dimenticare di consultare anche le altre guide How to Learn!