Come creare videogiochi? Consigli, linguaggi e tecnologie
Eccoci finalmente finalmente all'articolo relativo al gaming, cioè la creazione di veri e propri giochi.
Ti dico subito una cosa importante:
Se tu vuoi farti assumere da un’azienda per creare giochi, sappi che sarà difficilissimo farlo se tu vuoi stare qua in Italia. Questo perché in Italia non c’è una vera industria dietro i gaming. Le aziende che creano giochi sono veramente poche, quindi essere assunto da un’azienda che ti richiede questa competenza sarà veramente molto difficile.
Se non mi credi fai delle ricerche su LinkedIn o su Google in generale. Ci sono pochi annunci di lavoro per questo tipo di sviluppo. Se invece lo vuoi fare “per conto tuo”, quindi sviluppatore non dipendente è un altro discorso.
Se tu vuoi fare lo sviluppatore di giochi per professione le cose che ti consiglio di fare sono queste:
- Andare nel Nord Europa, questo perché ci sono delle grandissime aziende che sviluppano giochi e c’è un’industria dietro tutto il mondo del gaming. Oltre alle aziende che richiedono dipendenti, ci sono anche percorsi accademici che ti formano per poi entrare dentro a queste aziende. Quindi la prima cosa da fare è tendenzialmente partire per il Nord Europa. Ad esempio una persona che conosco ha finito la triennale in informatica qua in Italia, poi dopo è partito per Londra per iniziare un master specializzato nel gaming. Una grandissima azienda americana l’ha contattato e gli ha fatto una proposta di lavoro che è stata accettata. Ora questa persona si trova in America a lavorare nell’industria nel gaming con una laurea in informatica e un master iniziato a Londra ma mai finito, questo perché ovviamente aveva già un contratto di lavoro in mano. Nello specifico si occupa di Virtual Reality.
- Parliamo anche un po’ di tecnologia. La prima cosa che devi sapere è che in realtà, come quasi sempre in questi settori, le tecnologie e i linguaggi variano molto in base all’azienda e in base alle specifiche del progetto. Facciamo un esempio pratico: se la Disney vuole realizzare dei mini giochi all’interno del browser, quindi all’interno di un sito internet, per sviluppare il lato browser, quindi tecnologia lato client e lato front-end, utilizzerà ovviamente Java. Andrà ad utilizzare una libreria gratuita che si chiama PixiJS oppure un’altra molto interessante è Phaser.io. Tutte e due sono librerie per creare giochi basati su Java. Proviamo a pensare a giochi più strutturati, quindi magari per smartphone o addirittura per computer o per console. Non posso non citarti il Game Engine più famoso in assoluto, ovvero Unity. Essenzialmente Unity non è altro che un programma che al suo interno ha una marea di strumenti che ti consentono di creare, gestire il tuo gioco e tutte le sue dinamiche. Unity3d è il più famoso in assoluto, il più utilizzato. Viene utilizzato sia delle grandissime aziende che distribuiscono giochi sia dagli sviluppatori indipendenti. Per intenderci stiamo parlando di giochi che potresti trovare sul marketplace Steam. Perché viene utilizzato da entrambe queste due figure? Molto semplicemente perché Unity3d ha vari piani tra cui uno totalmente gratuito. Ciò vuol dire che lo puoi utilizzare anche tu, lo puoi andare subito a scaricare.
Approfondiamo Unity
Le cose importanti che ti voglio dire su Unity3D sono:
- Non è facile da imparare, ovviamente è molto difficile da imparare quindi soltanto per padroneggiare quella che è la schermata, tutte le varie voci e tutte le varie funzionalità ci vorrà molto tempo. In ogni caso ti consiglio di andare sul sito internet ufficiale dove trovi tutta la parte ben fatta di tutorial, di demo, che puoi scaricare
- Unity3d gestisce la distribuzione del gioco. Mi spiego meglio, forse distribuzione non è il termine adatto. Facciamo un esempio pratico, se vuoi che il tuo gioco funzioni all’interno degli smartphone o altre piattaforme, Unity si occuperà di creare l’eseguibile, creare cioè il file da installare all’interno degli smartphone. Stesso discorso se lo vuoi installare all’interno di computer Windows o computer Mac o computer Linux o addirittura all’interno di una console. In ogni caso gestisce per te la parte di esportazione. Se vuoi avere la lista completa di quelle che sono le piattaforme supportate da Unity, puoi sempre andare sul sito ufficiale dove trovi la lista di tutte le device o comunque le piattaforme in cui effettivamente Unity può esportare i giochi che vuoi realizzare. Ti preannuncio che la lista sarà molto lunga, ci sono anche le Smart TV ad esempio e quant’altro.
- I linguaggi all’interno sono molteplici. Il più utilizzato in assoluto è C#. Tuttavia ne potete vedere anche altri come ad esempio JavaScript. Io ti consiglio comunque C#, in quanto è quasi considerato una sorta di standard nel campo dello sviluppo del gaming o comunque per essere più specifici nello sviluppo del Game Community 3D. Infatti tutta la documentazione ufficiale e tutti i codici di esempio li trovi scritti in C#. L’altra cosa importante da sapere su C# è che è un linguaggio di programmazione ad oggetti. Ciò vuol dire che se tu non sai programmare e non hai neanche mi hai visto Unity avrai enormi difficoltà nell’utilizzare effettivamente il software. Ricordati poi come in tutti i settori, devi imparare e acquisire un determinato metodo di ragionamento. Quindi se tu vuoi imparare ti consiglio di farlo in tre step:
- Acquisire quelle che sono i concetti base della programmazione. Devi imparare a ragionare come un programmatore. Nei miei video e blog cerco sempre di insegnare ai miei studenti questa cosa che è totalmente slegata dal linguaggio di programmazione.
- Imparare quelli che sono i concetti fondamentali della programmazione ad oggetti. Tendenzialmente li devi padroneggiare da un punto di vista mentale, dal punto di vista teorico e di ragionamento.
Una volta che hai acquisito queste due competenze, a quel punto non avrai problemi a utilizzarle nella pratica.
Noi con i nostri studenti del nostro corso Java ci impegniamo veramente tanto ad insegnare questi concetti che ripeto sono totalmente slegati dal linguaggio di programmazione che si va ad utilizzare. L’importante è acquisire un determinato metodo di allenamento e conoscere le basi fondamentali per poi applicarle nella pratica con i vari linguaggi.
Consigli finali
Ok quindi detto questo ricapitoliamo lo sviluppo gaming:
- In Italia c’è davvero poco lavoro, per questo tipo di sviluppo guarda oltre l’Italia tendenzialmente focalizzati sul Nord Europa. Ti consiglio anche di guardare quelli che sono i percorsi accademici o comunque i percorsi di studio in Nord Europa perché lì c’è una vera industria fiorente
- Le tecnologie variano tantissimo in base alle esigenze del progetto e in base al progetto che si vuole realizzare. Non esiste solo Unity, ma si possono utilizzare tantissime tecnologie diverse. Ci sono Game Engine che ti consentono di utilizzare Python o JavaScript. Anche unity3d tra l’altro ti consente di farlo
- La cosa importante da capire è quali di questi linguaggi vengono richieste nel mercato del lavoro e quali invece vengono richieste meno. Facendo questa distinzione puoi capire innanzitutto qual è il tuo obiettivo:
- Se vuoi farti assumere delle aziende scegli ovviamente le tecnologie che vengono richieste e che vengono utilizzate
- Se devi semplicemente realizzare dei progetti tuoi e quant’altro puoi scegliere la tecnologia che più preferisci, che magari ti facilita di più il lavoro e che può quindi non essere unity3d ma degli altri strumenti che sono appositi. Quindi la tecnologia cambia in base a quelli che sono i tuoi obiettivi.
Finito, buon gaming e buona programmazione!