Torna alla home page XNA
 
TutorialsProgettiNewsForum
XNA Tutorials RSS

Preparare l'ambiente di sviluppo di XNA

XNA | 16 febbraio 2007 | Paolo Bragonzi

Un po' di storia...

  • 24 maggio 2004 - Alla Game Developers Conference di San Jose (California), viene annunciato il progetto che, a detta dei creatori, cambierà il mondo della programmazione di videogames.
  • 14 marzo 2006 - Viene rilasciata la prima beta di XNA Game Studio Express.
  • 11 dicembre 2006 - Microsoft rilascia la versione 1.0 di XNA Game Studio Express.

XNA è un framework. Un framework è una grossa libreria di oggetti (e altro...) specificatamente studiati per rispondere a tutte le esigenze base dei programmatori.
Questo framework è il "fratello minore" di .NET 2.0, base sulla quale si appoggia e ne eredita le peculiarità, come la possibilità di sviluppare in C#, il potente linguaggio di sviluppo targato Microsoft.

A questo proposito è bene spendere due parole. C# è un linguaggio managed, ovvero che gestisce in maniera "autonoma" il processo di eliminazione degli oggetti in memoria. C++, che rappresenta tuttora lo standard, agisce esattamente in maniera contraria; venendo gestita manualmente la liberazione della memoria è possibile controllare questo evento evitando che possa interferire con la fluidità dell'azione di gioco. Secondo alcuni questo potrebbe essere un handicap per la programmazione di videogiochi professionali, ma c'è anche chi è convinto, come i programmatori della Lionhead Studios (Fable), delle potenzialità del linguaggio C# e che se venisse data la possibilità di "bloccare" nei momenti più caldi dell'azione il Garbage Collection, gestore del processo di pulizia della memoria del linguaggio, ciò ne farebbe un linguaggio ideale.

Staremo a vedere se tutto ciò accadrà, nel frattempo iniziamo a conoscere da vicino alcuni dei vantaggi che tutto questo nuovo ambiente ci mette a disposizione.

Da dove iniziare

Dunque, la prima bella notizia è che tutto quello che ci occorre per programmare un videogioco su piattaforma Windows in XNA è scaricabile gratuitamente. Per Xbox 360, lo vedremo più avanti; ma andiamo con ordine...

Come prima cosa dovrete controllare che il vostro PC sia in grado di far "girare" il tool di sviluppo, o più correttamente, l'applicazione che state creando, almeno per testarla. Per far questo, sostanzialmente un PC deve avere Windows XP sp2 (al momento non pare funzionare su Vista, ma a breve dovrebbero uscire degli aggiornamenti appositi), i requisiti del sistema sono minimi per gli standard di oggi e potete verificarli qui.
Questo è quanto vi serve per utilizzarlo... ora, sarebbe bello anche poter vedere le nostre creazioni, quindi verificate che la scheda video supporti le DirectX 9.0 e Shader Model almeno versione 1.1 (2.0 consigliato).

Una volta appurato che il vostro PC è "abile" è ora di... "arruolarlo".
Partendo da http://msdn2.microsoft.com/en-us/xna/default.aspx, sotto la sezione "download" è possibile scaricare la build 1.0 del XNA Game Studio Express. Prima di poterlo istallare, manca ancora un requisito, ovvero il motore del linguaggio C# di cui abbiamo appunto parlato poco sopra. Se avete installato sul PC una qualsiasi versione di Visual Studio, questo è già presente, altrimenti lo potete scaricare al seguente link: http://msdn.microsoft.com/vstudio/express/visualcsharp/default.aspx in versione Express, anch'esso completamente gratuito.
Quest'ultimo provvederà anche a installare il .NET Framework 2.0, la base sulla quale "appoggeranno" le "estensioni" del Framework XNA.

Installazione

Come prima cosa installiamo C# 2005 Express Edition. Verrà installato anche, se necessario, il .NET Framework 2.0. Si tratta di un classico wizard con il classico "avanti-avanti-avanti..." senza dover impostare nessuna opzione se non l'accettazione della licenza.
Una volta terminato il setup è la volta di XNA Game Studio Express. Anche quest'ultimo installerà, oltre ai tool di sviluppo e multimedia, le librerie XNA appunto.
Come sopra, anche qui non c'è nessuna decisione da prendere, ma basterà cliccare "avanti-avanti-avanti..." e attendere il termine dell'installazione.

Partiamo

Dall'elenco dei programmi apriamo il menù di "Microsoft XNA Game Studio Express": qui troveremo un'ulteriore sottocartella "tools", con all'interno degli strumenti che esamineremo nelle prossime sessioni, l'immancabile collegamento al readme ("leggimi"), la documentazione (molto utile e ben fatta, in tipico stile Microsoft) e ovviamente il link all'eseguibile; clicchiamo e ci verrà mostrata la "start page", ormai familiare a chi è abituato all'ambiente di sviluppo Visual Studio. Qui possiamo accedere in modo diretto agli ultimi progetti utilizzati oppure crearne uno nuovo. Per fare ciò clicchiamo su "file" -> "new project..." ed avremo questa scheramata:



Quelli che ci vengono presentati sono i "Template" da cui partire per creare la nostra applicazione, libreria o altro. Per questo nostro primo passo nel mondo di XNA, il tipo di template più interessante è lo starter kit.
Uno starter kit è, come suggerisce la parola, un progetto contenente già il codice necessario per partire in pochi click con un videogioco già pronto per essere personalizzato. Di default avremo un solo starter kit, abbastanza misero, infatti si tratta del "remake" dello storico (e datato) SpaceWar, più didattico che effettivamente utile ad una "produzione" vera e propria, ma presto dovrebbero essere rilasciati degli altri starter kit "tematici" (un gioco di corsa, un RPG, etc.) che mostrano le vere potenzialità di XNA (una dimostrazione è disponibile all'indirizzo http://channel9.msdn.com/Showpost.aspx?postid=261254&pvrid=415).
Comunque, non titubiamo e lanciamo lo starter kit SpaceWar per Windows.

Ambiente di sviluppo

Una volta aperto il progetto, la prima cosa che si nota subito è che pur essendo un gioco "esile", è un gioco "fatto e finito" e ciò significa che contiene tutta la gestione del ciclo vita, dalla presentazione alla sezione delle opzioni, la concatenazione dei livelli, la classifica e le logiche di gioco; ce lo suggerisce anche il cospicuo numero di file da cui è composto che si possono scorgere nella finestra sulla destra. Per questo motivo risulterebbe troppo complesso esaminare tutto questo codice ora che siamo solo all'inizio del nostro viaggio nel "mondo XNA", perciò, rimandiamo questo argomento alla prossima sezione e passiamo direttamente a vedere come, una volta realizzata un'applicazione, sia possibile eseguirla e "debuggarla" in modo semplice e ricco di informazioni.

Dal menù "Debug" si può avviare l'applicazione cliccando su "Start Debugging" et voilà, stiamo eseguendo il "nostro" primo videogioco in XNA.
Per dimostrare il controllo che possiamo avere sull'applicazione che stiamo eseguendo, apriamo ad esempio il file SpacewarGame.cs ed inseriamo un break point alla riga 219 dove il loop del gioco esegue il check dello stato della tastiera e come potrete notare il gioco si bloccherà rendendo disponibile in Visual Studio la visibilità su tutti gli oggetti caricati e l'esecuzione delle funzioni di debug quali l'avanzamento "passo passo" o l'utilizzo della "immediate window".

Xbox 360

Abbiamo visto come creare e controllare un videogioco per Windows tramite XNA, ma per Xbox 360? L'operazione da eseguire è la medesima, con la sola accortezza di selezionare un template "Xbox 360", esso provvederà ad impostare tutto il necessario.
Tecnicamente questa operazione è sufficiente, ma in pratica, senza poter testare il codice scritto, risulterebbe ostico ottenere un qualsivoglia risultato, e qui scatta la tariffa (beh... dopotutto non poteva essere tutto gratuito!).

XNA Launcher è un programma scaricabile dal Marketplace di Xbox Live sotto la voce "tutti i download dei giochi". Per eseguirlo è però richiesta la sottoscrizione al "XNA Creators Club". Una volta sottoscritto l'abbonamento e scaricato il programma sarà possibile stabilire una connessione tra il PC di sviluppo e l'Xbox 360; prima però occorre eseguire alcuni passi per la configurazione.

Sull'XNA Launcher, entriamo nei "settings" dove avremo la possibilità di generare una "connection key"; prendiamo nota di questa "chiave" e torniamo sull'ambiente di sviluppo su PC. Clicchiamo su "Tools" -> "Options", selezioniamo l'ultima voce dell'alberatura a sinistra "XNA Game Studio" -> "Xbox 360", qui cliccando su "add" è possibile aggiungere la propria console, con la rispettiva "connection key" (anche più di una se si lavora su più console).

Ora è possibile, dopo aver lanciato il programma di connessione sulla Xbox 360, "lanciare" il debug del nostro gioco, il compilato verrà trasferito alla console e il gioco inizierà a girare su di essa.

Analogamente a quanto fatto in precedenza durante il debug su Windows è possibile interrompere il debug con un break point nel codice ed averne totale controllo.

Questi sono gli strumenti base messi a disposizione da XNA.

Non esiste approccio ad una nuova tecnologia di sviluppo senza l'immancabile "hello world!!!" grazie al quale, nel prossimo appuntamento, ci "sporcheremo le mani" col codice, ma in puro stile XNA.

» Vai al Tutorial #2