C# è uno dei linguaggi di programmazione più popolari che viene utilizzato per creare giochi nel motore di gioco Unity. Le esperienze (giochi, app AR/VR, ecc.) costruite con Unity hanno raggiunto quasi 3 miliardi di dispositivi nel mondo e sono state installate 24 miliardi di volte negli ultimi 12 mesi. Abbiamo parlato con Harrison Ferrone, ingegnere del software, sviluppatore di giochi, tecnologo creativo e autore del libro “Learning C# by Developing Games with Unity 2019”. Abbiamo parlato del perché C# è usato per la progettazione di giochi, della recente release Unity 2019.2 e di alcuni consigli e suggerimenti per chi sviluppa giochi con Unity.
Sul C# e lo sviluppo di giochi
Perché C# è ampiamente usato per creare giochi? Come si confronta con il C++? Come viene usato C# in altre aree come lo sviluppo mobile e web?
Penso che Unity abbia scelto di andare avanti con C# invece che con Javascript o Boo a causa della sua curva di apprendimento e della sua storia con Microsoft.
Nella mia esperienza, C# è più facile da imparare rispetto a linguaggi come C++, e questa accessibilità è una grande attrazione per i game designer e i programmatori in generale. Con lo sviluppo mobile Xamarin e le applicazioni web ASP.NET nel mix, non c’è davvero modo di fermare il linguaggio C# a breve.
Cosa sono gli script C#? Come sono utili per creare giochi con Unity?
Gli script C# sono i file di codice che memorizzano i comportamenti in Unity, alimentando tutto ciò che il motore fa. Mentre ci sono molti nuovi strumenti che permettono ad uno sviluppatore di creare un gioco senza di essi, gli script sono ancora il modo migliore per creare azioni e interazioni personalizzate all’interno di uno spazio di gioco.
Suggerimento dell’editore: Per iniziare a capire come creare uno script C# in Unity, potete leggere il capitolo 1 del libro di Harrison Ferrone Learning C# by Developing Games with Unity 2019.
Sul perché Harrison ha scritto il suo libro, Learning C# by Developing Games with Unity 2019
Diteci la motivazione dietro la scrittura del vostro libro Learning C# by Developing Games with Unity 2019. Perché sviluppare giochi Unity è un buon modo per imparare il linguaggio di programmazione C#? Perché preferisci Unity ad altri motori di gioco?
La mia motivazione principale per scrivere il libro è stata duplice. Primo, ho sempre voluto essere uno scrittore, quindi sposare il mio amore per la tecnologia con il sogno di una vita è stato un gioco da ragazzi. In secondo luogo, volevo scrivere un libro per principianti che rimanesse fedele ad un pubblico di principianti, tenendoli sempre in mente.
In termini di scelta dei giochi come mezzo di apprendimento, ho scoperto che fare qualcosa di interessante e nuovo mentre si impara una nuova abilità porta ad un maggiore assorbimento del materiale e più divertimento generale. Unity è sempre stato il mio motore preferito perché la sua interfaccia è molto intuitiva e facile da usare.
Hai 3 anni di esperienza nella costruzione di applicazioni iOS in Swift. Hai anche una serie di articoli e tutorial sullo stesso argomento sul sito di Ray Wenderlich. Recentemente, hai iniziato a ramificare in C++ e Unreal Engine 4. Come sei arrivato al game design e allo sviluppo di Unity? Cosa ti ha fatto interessare alla costruzione di giochi?
In realtà mi sono avvicinato al game design e allo sviluppo di Unity prima di tutte le esperienze con iOS e Swift. Era la mia specializzazione all’università, e anche se non sono riuscito a trovare un lavoro nell’industria dei giochi subito dopo la laurea, l’ho tenuta come una passione.
Sullo sviluppo dei giochi
L’ultima versione di Unity, Unity 2019.2 ha una serie di caratteristiche interessanti come ProBuilder, Shader Graph, ed effetti, animazione 2D, Burst Compiler, ecc. Quali sono alcune delle tue caratteristiche preferite in questa release? Quali sono le tue aspettative da Unity 2019.3?
Sono davvero entusiasta di ProBuilder in questa release, in quanto è un enorme risparmio di tempo per una persona artisticamente sfiduciata come me. Penso che strumenti come questo livelleranno il campo di gioco per gli sviluppatori indipendenti che potrebbero non avere accesso all’ambiente o ai costruttori di livelli.
Quali sono alcuni suggerimenti e trucchi essenziali che uno sviluppatore di giochi deve tenere a mente quando lavora in Unity? Quali sono le cose da fare e da non fare?
Direi che la cosa più grande da tenere a mente quando si lavora con Unity è l’architettura dei componenti su cui è costruito. Quando scrivete i vostri script, pensate a come possono essere separati nelle loro singole funzioni e strutturateli così – con uno scopo. Non c’è niente di peggio che avere un enorme e gonfio script C# che fa tutto sotto il sole e attaccarlo ad un singolo oggetto di gioco nel vostro progetto, per poi rendersi conto che ha davvero bisogno di essere separato nelle sue parti componenti.
Quali sono le maggiori sfide oggi nel campo dello sviluppo dei giochi? Qual è il tuo consiglio per coloro che sviluppano giochi usando C#?
Raggiungere il pubblico giusto è sempre la sfida numero uno in qualsiasi settore, e lo sviluppo dei giochi non è diverso. Questo è particolarmente vero per gli sviluppatori di giochi indie, che devono sempre essere consapevoli di chi stanno creando il loro gioco e progettare e programmare i loro giochi di conseguenza. Per quanto riguarda i consigli, dico sempre la stessa cosa – imparare i design pattern e le metodologie di sviluppo agile, apriranno nuove strade per la programmazione professionale e la gestione dei progetti.
Rust è stato propagandato come uno dei successori della famiglia dei linguaggi C. Lo stato attuale dello sviluppo di giochi in Rust è anche abbastanza incoraggiante. Quali sono i vostri pensieri su Rust per lo sviluppo di giochi? Pensi che i principali motori di gioco come Unity e Unreal supporteranno Rust per lo sviluppo di giochi in futuro?
Non ho alcuna esperienza con Rust, ma è improbabile che i principali motori come Unity e Unreal adottino un nuovo linguaggio a causa degli enormi costi associati a un cambiamento di tale portata. Tuttavia, questo lascia anche aperta la possibilità che in futuro venga sviluppato un altro motore intorno a Rust che si rivolga ai giochi, ai dispositivi mobili e/o allo sviluppo web.
Informazioni sull’autore
Harrison Ferrone è nato a Chicago, IL, e cresciuto ovunque. La maggior parte dei giorni, lo si può trovare a creare contenuti didattici per LinkedIn Learning e Pluralsight, o a fare il tech editing per il sito di Ray Wenderlich. Dopo alcuni anni come sviluppatore iOS presso piccole start-up e una società Fortune 500, è caduto in una carriera di insegnante e non si è mai voltato indietro. In tutto questo, ha comprato molti libri, ha acquistato alcuni gatti, ha lavorato all’estero, e si chiede continuamente perché Neuromancer non sia presente nei programmi dei corsi. Potete seguirlo su Linkedin e GitHub.