Piccolo editor di terreni free

Approfitto dopo tanto di un momento di pace per scrivere e postare qualcosa che spero possa interessare a molti.
Rendo infatti disponibile il codice sorgente di questa mia applicazione, un piccolo terrain editor che ho realizzato per un esame universitario.
Il perchè di questa mia scelta: primo perchè credo che nonostante le grandi imprecisioni, gli errori e i bug che ci possono essere, può essere di interesse per qualcuno, sia per i concetti applicati sia come punto di partenza per altro.
Secondo perchè lo considero io stesso un progetto ormai superato, che però mi ha fatto imparare tanto.
Infatti lo userò come base teorica per realizzare ben altro.

Cominciamo con una piccola spiegazione:
l'interfaccia dell'applicazione è questa:

Per un riassunto veloce dei comandi e delle funzioni basta che andate sulla voce "comandi" sotto "?" nel menù in alto.

La prima cosa che dovete fare è creare un nuovo livello. Dopo potete o agire direttamente con i mouse sul terreno o caricare una Height Map (tramite il bottone nella colonna di destra). Ecco cosa viene realizzato caricando una delle HM che ho inserito come prova.

La modalità di editing è modale: se vedete bene in alto a sinistra c'è un gruppo di radio button che vi dicono attualmente cosa state andando a modificare nel livello, se il terreno, le texture o i modelli. Quando siete in una modalità agite solo su quella parte.
Potete cambiare la modalità cliccando sul radio button relativo o premendo 'T'.
Potete texturizzare il terreno a vostro piacere utilizzando le 4 texture in alto a destra. Per cambiare la texture da usare basta farci click sopra, mentre se proprio volete caricare un'altra immagine al suo posto dovete farci doppio click.

Per inserire i modelli nella scena dovete prima caricarli: andate sotto la scheda Objects e cliccate su "Load Model". Selezionate il modello da caricare e date l'ok. Il modello verrà "compilato" al volo nel formato compatibile con XNA e potrete poi utilizzarlo nel livello. Se ci cliccate sopra nel riquadro sottostante vedrete anche l'anteprima del modello in questione.


Provatelo poi ditemi.

Immagiamo di aver salvato questo livello:

Per caricarlo all'interno di un progetto XNA game dovete seguire alcuni passi:
1) dovete aggiungere il file *.map che viene generato quando salvate la mappa al progetto XNA e impostare le sue proprietà in modo che venga copiato nella directory finale del progetto durante la compilazione
2) Dovete copiare la bitmap del livello, che ha lo stesso nome del file *.map, e le texture usate per texturizzare il terrain sotto la directory "Content\Textures" del vostro gioco XNA
3) dovete copiare i modelli che avete utilizzato nel livello sotto la directory "Content\Models"
4) dovete copiare le texture usate dai vostri modelli nel gioco XNA mantenendo lo stesso percorso relativo rispetto ai file di origine
NOTA: Naturalmente tutte queste risorse vanno aggiunte al progetto Content del gioco XNA per permettergli di elaborarle.
A questo punto tutto è fatto. Basta che lanciate il il programma e vi ritroverete con il vostro livello caricato e pronto all'uso.
Ecco un'immagine dell'esempio allegato:


Vi allego di seguito la soluzione per Visual Studio 2008.
Per far girare il programma è necessario aver installato XNA 3.1 e il .Net Framework 3.5.
Per qualsiasi cosa, consigli, problemi, lamentele, critiche commentate il pure, o mandate un'email.
Per favore, se scaricate e provate il codice commentate, almeno mi lasciate un feedback sul mio lavoro ^^

Codice sorgente

Alla prossima :)
Alessio (Odino)

Continua a leggere!

Donazioni

My Menu'