Salve a tutti, cari FollowHz!
Come ben vi ricorderete, io sono uno sviluppatore di siti web e videogiochi, ed oggi, vi introdurrò al mondo della programmazione focalizzandomi sullo sviluppo di videogiochi. Naturalmente, è chiaro che questo, quindi, è il primo di una serie di tutorial sull’argomento.
Prima di tutto, chiariamo il concetto di programmazione: tale sostantivo indica tutta quella serie di attività tecniche che, grazie ad un linguaggio di programmazione per l’appunto, si ottiene un software che agirà secondo il suo codice sorgente che gli abbiamo scritto a monte.
Una volta, i linguaggi di programmazione erano molto più complessi, detti proprio “a basso livello” perché erano più simili al linguaggio macchina ma ora, per rendere più accessibile a tutti la programmazione e per semplificarla, la maggior parte dei nuovi linguaggi di programmazione che nascono sono detti “ad alto livello” proprio perché sono più simili al linguaggio umano.
DEFINIZIONE DI SVILUPPARE UN VIDEOGIOCO
Sviluppare un videogioco, significa, creare un’opera videoludica. Queste opere offrono all’utente finale dell’intrattenimento che può essere fine a se stesso o per scaturire delle emozioni, oppure, persino far riflettere riguardante al tema trattato dal videogioco.
Il Team di Lavoro
Sebbene io sviluppi ancora i miei videogiochi da solo, sappiate che sia indie che aziende sono formati da più persone. In particolare, il team minimo richiesto è formato da questi ruoli: uno o più programmatori, uno o più gamedesigner, uno o più 2DArtist e uno o più 3DArtist.
Questo team di sviluppo, seguendo diverse metodologie di lavoro (a seconda di cosa si decide), si combinano per creare il gioco: i 2DArtist si occuperanno di creare icone, interfacce, insomma, tutto ciò che c’è di bidimensionale in un gioco. Chiaramente, se il gioco è bidimensionale, si occuperanno loro della creazione dell’intero gioco sostanzialmente; i 3DArtist si occupano, ovviamente, della creazione di modelli 3D e lavorano in coppia col 2DArtist poiché, dal loro disegno, hanno un’idea di come creare il loro modello che verrà inserito in gioco; il programmatore è la colonna portante di tutto il team: senza di lui, il gioco non vive ed è solo una raccolta di modelli artistici privi di vita. Infatti, tramite lo script (che è letteralmente il copione dall’inglese), forniremo tutte le istruzioni che ogni oggetto in gioco deve seguire per poter ottenere il gioco che ci aspettiamo; il gamedesigner è il coordinatore di tutto il team: conosce un po’ di programmazione e un po’ di modellazione e disegno ed il suo compito è di rendere il gioco figo stabilendo dal movimento migliore del player all’oggetto che deve essere in una determinata posizione in un determinato momento, nonché la storia del gioco, nel caso ci fosse.
Il Modo di Lavorare di uno Sviluppatore
Lo sviluppatore avrà il compito di rendere, naturalmente, giocabile il gioco all’utente finale seguendo le direttive del gamedesigner. E questo, credo sia il suo compito più evidente, ma non è l’unico: lo sviluppatore ha anche il compito di mantenere il codice pulito e, soprattutto, più corto possibile per questione di prestazioni. Inoltre, sempre per questione di prestazioni, se ad un certo punto, un oggetto sparisce dal gioco per qualsiasi motivo (ed è giusto che succeda) e non torna mai più (come anche un banale proiettile), quell’oggetto non deve stare a fluttuare nel gioco anche se è ben nascosto dal giocatore, perché il dispositivo che sta eseguendo il gioco lo continuerà a processare inutilmente con inspiegabili cali di prestazione. Perciò, è sempre compito dello sviluppatore far sì che quell’oggetto venga letteralmente distrutto e non esistere più.
Perché Iniziare a Sviluppare in Unity?
Ho scelto questo Engine pur sapendo che molto probabilmente non lo userò più solamente perché l’ho trovato molto semplice da usare ed imparare. Ma non è inutile impararlo perché i concetti della programmazione dei videogiochi sono gli stessi per ogni Engine, o comunque farò in fretta ad imparare alcune piccole differenze. Inoltre, c’è da dire che, per quanto Unity goda di una brutta fama, ce l’ha solo da parte dei giocatori, tant’è vero che molti giochi vecchi di Assassin’s Creed hanno parti gestite proprio da questo Engine, come la gravità, ad esempio.
Come vi ho spiegato, gli script dovremmo svilupparli poiché altrimenti quando metteremo “Play”, nulla si muoverà. Per fare degli script, dovremo aver bisogno di un qualsiasi editor di testo che conosca il C#, altrimenti, vi complicherete la vita.
L’editor lo paragono spesso al tavolo da cucina in cui gli sviluppatori creano la loro arte, ma se il tavolo non aiuta, in questo caso, non conoscendo il linguaggio usato, sarà tutto molto più complicato. Il “tavolo”, o meglio, l’editor di testo consigliato da me è Visual Studio per chi possiede Windows, mentre per chi possiede un Mac, Unity ha integrato un suo editor di testo che conosce, naturalmente, C# che può essere usato anche dagli utenti Windows, a vostra totale discrezione.