Windows Phone 7: introduzione allo sviluppo con XNA

di Marco Leoncini, in Windows Phone 7,
  • 0
  • 0
  • 0
  • 143,93 KB

Microsoft XNA è una piattaforma di sviluppo basata sul .NET Framework e pensata per semplificare all'hobbista, studente o professionista, la realizzazione di videogiochi. La prima versione, rilasciata nel 2006, è basata sulla versione 2.0 del Framework e consente di utilizzare il medesimo set di API sia per lo sviluppo per XBOX che per Windows.

Microsoft ha successivamente migliorato le API mediante l'aggiunta di nuove funzionalità, come il supporto al gioco multiplayer, l'inserimento degli avatar di XBOX LIVE, il deploy su ZUNE, fino ad arrivare ad includere, recentemente, il supporto a Windows Phone 7.

XNA evita la scrittura di quella parte di codice definito "boilerplate", cioè ripetitivo e che dovremmo inserire in ogni nostro progetto; inoltre facilita la gestione delle risorse 2D, 3D, audio e video. Attenzione però al fatto che XNA non è un tool con il quale costruire un gioco a colpi di drag & drop: non dispone di un motore di gestione delle collisioni, né tantomeno un avanzato motore fisico (come potrebbe essere Havok).

Organizzazione del progetto

Creare un progetto XNA è semplice come per qualsiasi altro progetto .NET: una volta installati i tool di sviluppo è sufficiente un semplice click sull'apposita template che troviamo come di consueto nella finestra di dialogo "Add New Project".

alt

Utilizzando questo template, Visual Studio 2010 crea una nuova soluzione contenente due progetti, uno per contenere la logica del gioco e l'altro per i suoi contenuti digitali come video o immagini.

Tipicamente un videogioco è composto da un numero variabile d'immagini, video, suoni e grafica 3D che, nella nomenclatura di XNA, vengono chiamati asset. Questa tipologia di contenuti viene creata utilizzando programmi come ad esempio Photoshop o 3D Studio, e sono consumati da XNA mediante la content pipeline.

Content pipeline

La content pipeline è composta da tre fasi, in cui vengono coinvolti, nell'ordine, importer, processor, e content loader:

  • Gli Importer sono chiamati in causa nel primo passaggio della pipeline, e rendono possibile il supporto di un elevato numero di formati per i vari contenuti digitali; in questa fase, gli asset sono convertiti dal loro formato originale a uno standard, che possa poi essere gestito al secondo passaggio della pipeline.
  • Il secondo passaggio sfrutta invece i Processor e si occupa di convertire gli asset in oggetti .NET, così da garantirne un rapido caricamento e un modo standard per trattarli; questa fase viene eseguita a compile time.
  • La fase che coinvolge i Content loader, infine, rappresenta l'ultimo passaggio della pipeline e avviene a runtime, quando il contenuto serializzato viene effettivamente caricato nel gioco.

L'utilizzo della content pipeline evita la scrittura di tutta quella parte di codice che sarebbe altrimenti necessaria per interpretare e poi utilizzare i vari contenuti digitali. Vista la proliferazione dei formati nei quali quest'ultimi sono disponibili, il compito potrebbe infatti risultare tutt'altro che facile. Inoltre la content pipeline fa sì che il caricamento avvenga rapidamente ed in modo efficace, trattandosi, in fin dei conti, di oggetti .NET serializzati.

Aggiungere un asset 2D al progetto

Per quanto riguarda gli assets bidimensionali, XNA supporta i seguenti formati: .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, e .tga. In genere tra tutti si preferisce utilizzare il formato png, sia per le sue dimensioni compatte, sia per il supporto al canale alpha, che consente di creare immagini con trasparenze o semitrasparenze.

Per aggiungere un nuovo assets 2D al gioco è sufficiente fare click con il tasto destro sul progetto denominato nomeGiocoContent e dal menu contestuale selezionare la voce "Add Existing Item...", selezionando poi la risorsa desiderata.

Un rapido sguardo alle proprietà dell'asset appena importato ci mostra le impostazioni della content pipeline.

alt

4 pagine in totale: 1 2 3 4

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata