Creare una mappa per Spring Engine

ATTENZIONE: DA  AGGIORNARE

Generalità

Con questa guida si intende realizzare le mappe per SPRING RTS utilizzando solo ed esclusivamente le immagini. Per questo, un buon map creator è colui che, oltre ad utilizzare i terrain generator, sa utilizzare programmi di grafica come GIMP, COREL DRAW, PHOTOSHOP o simili. Se non avete questo requisito vi sarà molto difficile comprendere questa guida in quanto non ci soffermeremo sui dettagli di ogni singolo programma.

Innanzitutto vi servono i seguenti programmi:

  • Mapconv:  Serve per convertire le immagini nei formati utilizzati da SPRING per le mappe.
  • GIMP: Solo se non avete altri programmi di grafica. Si tratta di un programma open source.
  • SMD Creator (opzionale): Un programma per settare le caratteristiche della mappa.
  • 7Zip: Un programma come winzip, ma opensource. Utile per comprimere i dati in formato .sd7 e .sdz, riconosciuto da Spring per mods e mappe.

Per creare una mappa basilare per Spring RTS sono necessarie cinque immagini:

  • La Texture Map, un immagine che rappresentai colori della mappa del gioco;
  • La Height Map, un’immagine che definisce la forma della mappa;
  • La Metal Map, un’immagine che definisce la posizione del metallo da estrarre durante il gioco;
  • La Feature Map (opzionale), un’immagine che indica le posizioni delle fonti geotermiche con pixels in verde vivo, degli alberi standard con pixels in verde scuro e dei modelli solidi con pixels rossi. Questa immagine è opzionale in quanto le features (e cioè gli oggetti come piante, relitti, oggetti vari ) si possono inserire nella mappa anche tramite script in LUA che si possono inserire successivamente;
  • La Type Map, un’immagine che identifica diverse tipologie di terreno, utilizzando il colore rosso e le descrizioni contenute nel file .SMD che vedremo più avanti.

Le mappe di Spring si misurano in grandezze, ad esempio: 2×2 , 5×5, 6×15, 10×10, 16×16 e così via.
Supponendo di dover realizzare una mappa 16×16, dobbiamo tenere conto che le 5 immagini che Spring utilizzerà per creare la mappa dovranno avere determinate dimensioni in funzione della grandezza della mappa che si intende realizzare (in questo esempio, appunto, 16×16).

Qui sotto troviamo una tabella utile per calcolare le dimensioni che dovranno avere le relative immagini:

  • Texture Map: Bisogna moltiplicare la grandezza della mappa scelta per 512. Esempio: per la mappa grande 16×16, le dimensioni della Texture Map dovranno essere ( 16 x 512 ) x ( 16 x 512 ) cosi da ottenere un immagine da 8192 pixels x 8192 pixels.
  • Height Map: Deve essere avere dimensioni pari a (1/8) + 1 pixel della Texture Map. Nel caso dell’esempio di una mappa 16×16, la Texture Map si calcolerà facendo: ( 8192/8) + 1 x (8192/8) + 1. Otterremo quindi che la Height Map sarà un immagine con dimensioni di 1025 pixels x 1025 pixels.
  • Metal Map La Metal Map deve avere dimensioni pari a 1/8 della Texture map. Nel caso dell’esempio sarà (8192/8) x (8192/8). Quindi la nostra Metal Map sarà un immagine con dimensioni di 1024 pixels x 1024 pixels.
  • Feature Map Questa immagine è opzionale. La Feature Map deve avere dimensioni pari a 1/8 della Texture map. Nel caso dell’esempio sarà (8192/8) x (8192/8). Quindi la nostra Metal Map è un immagine con dimensioni di 1024 pixels x 1024 pixels.
  • Type Map Questa immagine è opzionale. La type map deve avere dimensioni pari a 1/16 della Texture map. Nel caso dell’esempio sarà (8192/16) x (8192/16). Quindi la nostra Type Map sarà un immagine con dimensioni di 512 pixels x 512 pixels.

Entriamo ora nei dettagli per capire il ruolo di ogni singola immagine che dovremo realizzare per ottenere una mappa da 16×16!

La Height Map:

Questa immagine, in scala di grigi, definisce le altezze e la forma fisica che deve avere la mappa. Qui potete decidere dove fare le montagne, i canyons, le pianure, le salite, etc. Con i programmi di grafica si possono ottenere forme più precise e, per i più esperti, si possono editare forme create con dei Terrain Generators (come Terragen, L3DT Bryce, etc.) in maniera più precisa. Con i Map editor invece ( come Frostegen per esempio) si modella e si colora interattivamente la mappa e poi si esportano la Heightmaps e la Texture map cliccando sul pulsante apposito.
Creazione della Height Map tramite programmi di grafica: andiamo a creare una nuova immagine in scala di grigi e calcoliamo le dimensioni in base alla grandezza della mappa (vedere la tabella precedente). Vogliamo realizzare una mappa 16×16, la dimensione dell’immagine della Height Map dovrà essere 1/8 della texture map + 1 pixel, oppure bisogna moltiplicare 64 per la grandezza della mappa e poi sommare 1, ad esempio (64×16)+1 x (64×16)+1, otterremo quindi che l’immagine della nostra Height Map dovrà essere 1025×1025. Incominciamo ora a disegnare la forma della mappa, ricordando che il nero sarà il punto più basso e il bianco sarà il punto più alto. Una volta disegnato il tutto salviamolo come height.bmp. Qui sotto un esempio di come si presenta una Height Map.

La Texture Map:

La Texture Map è un immagine che definisce la colorazione della mappa. Questa Texture Map è un immagine RGB 24 bits con dimensioni pari a 512 pixels moltiplicati per la grandezza della mappa in Spring che si intende realizzar. Ad esempio, noi vogliamo realizzare una mappa 16×16, per cui la grandezza dell’immagine della Texture Map verrà calcolata facendo (512×16) x (512×16) ossia 8192×8192 pixels.

Software per realizzare la texture map:

  • Terrain Generator (World Builder, L3DT, Terrain Generator, ecc), servono a realizzare quasi automaticamente una mappa. Questi software di norma, una volta inserita la Height map, colorano più o meno automaticamente l’intera mappa che si sta progettanto seguendo delle opzioni configurate dall’utente. Questo sistema è la via più semplice per ottenere una texture map. In alcuni casi, per dare un tocco in più alla qualità delle texture, l’immagine generata da questi software può essere abbellita tramite alcuni programmi di fotoritocco.
  • Programmi di grafica ( GIMP, Photoshop, Corel Photo Paint ecc), servono ad editare qualunque tipo di immagine. E’ possibile utilizzare questi software per colorare/editare le texture map.
  • Map designer, è un programma creato dalla community di SPRING che è in grado anche di colorare la mappa, in realtime. tale programma e carichiamo la Height Map precedentemente creata. Una volta caricata la Height Map, vediamo il terreno della mappa interattiva modellarsi seguendo le forme della Height Map stessa. Ora iniziamo a colorare la mappa. Selezioniamo la texture per il “texstage1” che sarà la texture di base che colorerà tutta la mappa. Creiamo una nuova texstage (layer) denominata texstage2. Impostiamo la relativa texture e successivamente la funzione paint texture e coloriamo, con il cursore del mouse, la mappa nei punti desiderati. Creiamo tutte le texstages che ci servono per colorare come vogliamo la mappa. Una volta completato il tutto, esportiamo la Texture Map andando sul menù in alto, export blended terrain texture. L’immagine esportata avrà già le giuste dimensioni. 

 

La Metal Map:

La Metal Map è un immagine RGB 24 bits con dimensioni pari a 1/8 della texture map ossia, volendo realizzare la nostra mappa 5×5, essa sarà grande (2560/8) x (2560/8) cioè 320×320 pixels. Si deve utilizzare uno sfondo RGB 0,0,0 (nero puro) e si devono fare delle macchie colore rosso puro (RGB 255,0,0) larghe 5-6 pixel, dove si vuole che i giacimenti di metallo appaiano nella mappa (una soluzione per facilitare il lavoro è quella di posizionare temporaneamente la Height Map rifessa verticalmente su un piano di lavoro in semitrasparenza, e di lavorare su quello sotto per avere un riferimento di dove si sta mettendo il giacimento). Spring, quando carica la mappa, riflette verticalmente l\\\’immagine della metal map. Ricordatevelo altrimenti durante il gioco vi troverete con i punti di estrazione in punti indesiderati! Tanto maggiore sarà la dimensione della macchia rossa, tanto maggiore sarà la grandezza del giacimento e la quantità di metallo estratta.

La Features Map:

La features map è un immagine RGB 24 bits con dimensioni pari a 1/8+1 della texture map ossia, volendo realizzare la nostra mappa 5×5, essa sarà grande (2560/8+1) x (2560/8+1) cioè 321×321 pixels. Si deve utilizzare uno sfondo RGB 0,0,0 (nero puro) e colorare i singoli pixel! ( togliete l’anti aliasing ). Colorate i singoli pixel di verde puro ( RGB 0,255,0 ) per indicare la posizione delle fonti geotermiche. Attenzione: I singoli pixel colorati devono essere distanziati di 4 o 5 pixel altrimenti potremmo avere dei problemi durante la compilazione della mappa. Come con la Metal Map, vi viene più facile sovrapporre temporaneamente la Height map per individuare più facilmente dove state posizionando le fonti geotermiche. Nella features map è possibile anche inserire la vegetazione, infatti basta colorare i pixel di un verde che varia dal RGB 0,200,0 al RGB 0,215,0 che andrete ad inserire le rispettive piante dal tipo 1 al tipo 16. Mentre per l’erba sul terreno i pixel devono essere colorati di blu (RGB 0,0,255). Per l’inserimento delle features ( oggetti ) invece bisogna colorare i pixel di colore rosso che parte dal RGB 255,0,0 e arriva via via fino al RGB 0,0,0. I numeri del canale rosso 255-0 indicano il tipo oggetto che inserisco nella mappa. Nel MapConv che avete scaricato trovate un file txt denominato fs.txt. Questo file contiene tutte le Features, disposte una per riga, che andremo ad inserire nella mappa utilizzando il canale rosso prima descritto. Quindi:

  • I pixel dipinti di rosso con RGB 255,0,0 inseriranno nella mappa l’oggetto della prima riga contenuta nel file fs.txt;
  • I pixel dipinti di rosso con RGB 254,0,0 inseriranno nella mappa l’oggetto della seconda riga contenuta nel file fs.txt;
  • RGB 253,0,0 oggetto della terza riga contenuta nel file fs.txt;-.. e cos&igrave; via.<br /> Ovviamente gli oggetti da inserire devono essere creati, e in questo caso bisogna saper realizzare le unit&agrave; in formato 3do o s3o. Se non siete in grado di realizzare queste unit&agrave; limitatevi ad inserire le fonti geotermiche, l\\\’erba e le piante.</p>\r\n<p><strong><a name=\\”type\\”></a>La Type map:</strong></p>\r\n<p>La Type Map &egrave; un immagine RGB 24 bits con dimensioni pari a 1/16 della Texture Map dunque, volendo realizzare la nostra mappa 5×5, essa sar&agrave; grande (2560/16) x (2560/16) cio&egrave; 160×160 pixels. Si deve utilizzare uno sfondo RGB 0,0,0 (nero puro) e colorare le superfici senza anti aliasing. Utilizzate sempre il metodo di creare un nuovo layer (nel programma di grafica che state utilizzando) su cui metterete la Height Map riflessa verticalmente. Disegnate ora tutte le superfici utilizzando i colori che vanno da RGB 0,0,0 a RGB 255,0,0. Questa mappa infatti deve utilizzare la scala del rosso. Ogni tipologia di rosso corrisponder&agrave; ad un tipo di terreno impostato nel file (ad esempio, RGB 0,0,0 sar&agrave; assegnato al [TERRAINTYPE0] di default; RGB 1,0,0 al [TERRAINTYPE1]; RGB 2,0,0 al [TERRAINTYPE2] e cos&igrave; via). L\\\’importante quindi &egrave; definire le superfici della mappa per assegnare loro una tipologia (si usa solitamente colorare con RGB 0,0,0 il terreno e con RGB 1,0,0 il mare). Bisogner&agrave; poi editare il file .smd che creeremo pi&ugrave; avanti, in cui comparir&agrave; la sezione [TERRAINTYPE0] in cui metteremo il nome del terreno (terrain appunto) e le varie velocit&agrave; che le unit&agrave; possono raggiungere su quel terreno. Nel mare ad esempio, i veicoli anfibi potrebbero andare ad una velocit&agrave; dimezzata rispetto a quella sulla terra. Ma ne parleremo pi&ugrave; avanti.</p>\r\n<p><strong><a name=\\”compilazione\\”></a>Compilazione della mappa con MapConv</strong></p>\r\n<p>Ora dobbiamo unire tutte le mappe in due files che SPRING utilizzer&agrave; per elaborare la mappa del gioco.<br /> Estraete l\\\’archivio di MapConv che avete scaricato prima.<br /> Assicuratevi quindi di avere tutte le immagini fin\\\’ora create denominate come descritto in seguito:<br /> – Texture.bmp<br /> – Height.bmp<br /> – Metal.bmp<br /> – Features.bmp ( immagine facoltativa )<br /> – Type.bmp ( immagine facoltativa ) <br /> <br /> Assicuratevi che queste immagini bitmap siano nella stessa posizione in cui avete estratto MapConv. Il motivo di questo &egrave; che ho creato dei files .bat tra i files di MapConv che voi potrete eseguire per compilare direttamente la mappa senza scrivere i vari comandi dal prompt di dos.<br /> Nel caso in cui userete solo le 3 immagini obbligatorie cliccherete su \\”Crea senza feature.bat\\”<br /> Nel caso in cui userete le 3 immagini obbligatorie + la Feature Map cliccherete su \\”Crea con feature.bat\\”<br /> Nel caso in cui userete le 3 immagini obbligatorie + la Feature Map + la Type Map, cliccherete su \\”Crea con feature e typemap.bat\\”.<br /> In tutti i casi, dopo l\\\’elaborazione, vi appariranno 2 nuovi files:<br /> – test.smf<br /> – test.smt<br /> Importante: il nome della mappa dipende da questa operazione. Scaricando il pacchetto di MapConv, il nome della mappa &egrave; impostato su Test. Per modificare tale nome, editate i tre files .bat e sostituite test.smf con \\”nomedellavostramappa.smf\\”. Salvate il file.BAT ed eseguitelo per creare la mappa.</p>\r\n<p>Ora abbiamo ottenuto i files della mappa. Copiate questi due files in una nuova directory denominata \\”maps\\”. Ora serve il terzo file che riguarda le impostazioni della mappa (l\\\’.smd).</p>\r\n<p><strong><a name=\\”impostazioni\\”></a>Le ultime impostazioni della mappa (.smd):</strong></p>\r\n<p>Queste impostazioni riguardano l\\\’illuminazione; il settaggio del vento; la forza di gravit&agrave;; la durezza della mappa; le coordinate di partenza dei giocatori; le tipologie di terreno; la velocit&agrave; massima raggiungibile da veicoli, navi, sottomarini etc. Per chi non avesse voglia di settare tutti i parametri usi <a href=\\”/files/tools/test.smd\\”>questo</a> file .smd standard, dovrete solo modificarlo come file di testo per settare le coordinate di partenza dei giocatori e salvarlo come \\”test.smd\\”. Una volta creato il file .smd, copiatelo nella cartella maps, insieme ai file precedentemente creati (test.smf e test.smt). All\\\’interno troverete anche le tipologie di terreno [TERRAINTYPEx]. Se avete creato la Type Map, dovrete impostare anche questi settaggi per definire i terreni. Usate l\\\’esempio e modificatelo a vostro piacimento.<br /> NB: il file .smd deve avere lo stesso nome dei file .smf e .smt .</p>\r\n<p><strong><a name=\\”creazione\\”></a>Creazione dell\\\’archivio .SD7 </strong></p>\r\n<p>Eccoci infine alla creazione del pacchetto .sd7 utilizzato da SPRING per riconoscere che tutto questo &egrave; una mappa. <br /> Arrivati a questo punto dovreste avere una cartella \\”maps\\” con all\\\’interno i 3 files sopra descritti. <strong>Non</strong> modificate il nome dei files a vostro piacimento. Questa operazione porterebbe SPRING a non caricare correttamente le texture della mappa! Ora vi serve 7zip, cliccando col tasto destro sopra la directory maps, andate su 7zip-&gt;aggiungi all\\\’archivio. Impostate il \\”formato dell\\\’archivio\\” su 7z e scrivete il nome dell\\\’archivio come \\”nomedellavostramappa.sd7\\”. Cliccate su ok. Verr&agrave; generato l\\\’archivio .sd7 della vostra mappa. Cliccateci due volte per autoinstallarlo nella directory delle mappe di SPRING. Il lavoro &egrave; quasi finito, resta solo da testare la mappa in tutte le sue funzioni.</p>\r\n<p><a name=\\”Frostregen\\”></a><strong>Creazione di una mappa con l\\\’uso di Frostregen</strong></p>\r\n<p>In alternativa a tutto quanto sopra descritto si pu&ograve; utilizzare Frostregen, un programma realizzato appositamente per la realizzazione delle mappe che potete scaricare <a href=\\”/downloads.php?cat_id=11&amp;download_id=81\\”>qui</a><a href=\\”/downloads.php?cat_id=3\\”></a>. Il programma &egrave; molto simile al MapDesigner ma &egrave; pi&ugrave; completo e stabile:<br /> -Importa o genera la height map, la texture map, la metal map e la feature map;<br /> -Genera terreni random;<br /> -Modella interattivamente una mappa;<br /> -Possiede molti strumenti di modellazione e di colorazione ( sono incluse gi&agrave; diverse Textures );<br /> -Inserisce direttamente le Features visualizzandole direttamente sulla mappa in 3D;<br /> -Realizza la metal map;<br /> -Esporta la mappa gi&agrave; nel formato utilizzabile da SPRING senza l\\\’utilizzo del \\”MAPCONV\\”.</p>’, 1, 1);