COS'E' XNA?

Come spiego meglio nella prima pagina del tutorial, non intendo annoiarvi con testi inutili ai fini pratici. Ma se siete giunti in questa pagina vuol dire che non avete la minima idea dello strumento che state per prendere tra le mani e sicuramente ne volete sapere di più.




XNA è un Framework, ovvero una libreria di istruzioni che rende la gestione di tutti gli aspetti di DirectX (Grafica, Input, Sonoro, ecc...) semplificata.
Possiamo paragonarlo ad un "plug-in" per VISUAL C# mirato allo sviluppo per i videogiochi.
robo

Come sarà ormai chiaro (almeno spero) XNA è un ambiente di sviluppo per la creazione di videogiochi, 3D e 2D. Non ha nulla a che vedere con programmi tipo Klick&Create o simili, con XNA si programma veramente ed i risultati sono professionalmente paragonabili ai videogiochi di fascia alta. Con XNA non ci sono limiti.
Se vi state chiedendo perché utilizzare C#/XNA, direttamente dalle F.A.Q. del sito http://www.mastersofbelial.com/:

Q: Why did you decide to use C# and XNA over the more widely used C++ and DirectX?

R:Developing games with older languages and APIs is a very time consuming process. With C# and XNA we saved hundreds of thousands of dollars in development costs. Without C# and XNA making this game would have been impossible.



Ecco qualche esempio di giochi fatti con XNA:
  Mastersofbelial
  Battletennis
  Avatar Golf
  Sol Survivor
  Dust an Elysian Tail Is
  Rotorscopefull
  HurricaneX2
  Platform in 2D
  Gioco di corse automobilistiche
  Jally Car, geniale.

Ciò che lo rende uno strumento adatto a chiunque, è l'estrema immediatezza d'uso anche per chi non ha grosse conoscenze di programmazione. Questo grazie ad una valanga di "istruzioni" già impostate dai creatori di XNA che, accoppiate al linguaggio C#, permettono di non tenere conto di molte problematiche legate all'uso della memoria e scocciature simili. Il programmatore deve solo scrivere le istruzioni per muovere gli oggetti, le eventuali telecamere, gli eventuali effetti grafici (gli "shader") e tutto ciò che ruota intorno ad un videogioco, senza arrovellarsi il cervello su questioni tecnicamente più complesse. Per il resto si tratta di un ambiente di sviluppo esattamente uguale a quelli con cui sono stati programmati tutti i videogiochi che conosciamo.

Riporto qui un articolo da punto-informatico.it:
Quello della produzione videoludica è un settore in cui riescono ad accedere solo pochi eletti, in genere programmatori di talento assunti da team già affermati. Per gli sviluppatori in erba mostrare le proprie capacità non è però affatto semplice, soprattutto nel settore delle console, dove i kit di sviluppo hanno prezzi nell'ordine delle svariate migliaia di dollari. Microsoft ritiene di poter colmare questa lacuna con XNA Game Studio Express, una piattaforma di sviluppo per videogiochi la cui caratteristica di spicco è quella di essere gratuita.

"XNA Game Studio Express offre un impulso decisivo all'innovazione e allo sviluppo dei videogiochi", ha affermato Chris Satchell, general manager del Game Developer Group di Microsoft. "Aprendo il mercato della console Xbox 360 ai titoli realizzati dalla community intendiamo dare vita a un nuovo genere di giochi multipiattaforma basati su XNA. L'obiettivo è la condivisione dei talenti e della creatività per dare origine a una grande community di giochi realizzati direttamente dagli utenti sulla console di nuova generazione".



Dunque, XNA è un framework per Visual C# 2005 per la creazione di videogiochi PC/XBOX.
Sia XNA che Visual C# sono completamente gratuiti
, cosa alquanto rara per la Microsoft.
Sviluppare un gioco per PC o per XBOX con XNA è praticamente la stessa cosa, sarà possibile far girare il proprio gioco su entrambi i sistemi senza cambiare una riga di codice. Dunque ci troveremo tra le mani non solo un gioco per PC ma anche per la console di mamma Microsoft.


Installato il Visual C# e XNA siamo pronti per creare le nostre prime opere, 2D e 3D che nulla hanno da invidiare ai moderni giochi commerciali. Tutti i software di modellazione(Max, Lightwave, Blender, Softimage...) sono pronti per esportare i modelli caricabili in XNA grazie agli exporter in .X o FBX.
Per usare tutto questo ben di Bill, bisogna conoscere un po' la programmazione, ma nulla di complicatissimo, il C# è molto più semplice del C++ e seguendo questo tutorial potrete a vedere i primi modelli girare sul proprio schermo senza aver mai scritto una riga di codice.

Su YouTube esistono migliaia di video che esprimono le potenzialità di XNA.
Ecco qualche video di esempio (è tutto in real-time):

Animazioni polimorfiche in XNA, da vedere assolutamente .

Esempio di fisica in XNA:
http://it.youtube.com/watch?v=82Up63VXFUk
http://it.youtube.com/watch?v=13rMPwYfZrY
http://it.youtube.com/watch?v=CyAZ2Y7nOTw&NR=1

Esempi grafici..
Ombre e shader metallo
Bell'effetto luce solare
Effetti particellari


Vi consiglio dunque di procedere a leggere questa guida non tralasciando nulla. Cercherò di darvi un'infarinatura di base sulla programmazione, in particolare di C#, che è il linguaggio più adatto per interagire con XNA.
Ricordiamoci che XNA non è un tool, non è un programma con menù a tendina e oggetti da cliccare. L'utente deve scrivere del codice per fare qualsiasi cosa e deve avere dunque almeno un minimo di base sui concetti della programmazione che cercherò di darvi con le prime lezioni di questa guida.