Siamo arrivati alle ultime battute. Cerchiamo di tirare le somme da quest’esperienza, questo tutorial incentrato su GDExtension, ma che ha finito per virare verso alcuni aspetti della grafica tridimensionale, un po’ perché necessari per torchiare il C++ e vedere di che pasta è fatto, un po’ perché era proprio quello che volevo dimostrare, prima di tutto, a me stesso, per i miei progetti personali.
Direi di lasciar perdere le questioni squisitamente tecniche, per lasciarci andare a considerazioni più filosofiche: il dowload e la compilazione di Godot e delle librerie di GDExtension si fanno in un certo modo, che abbiamo visto nei primissimi articoli, e non sono discutibili più di tanto.
Chiediamoci, piuttosto: che se ne fa il buon programmatore delle informazioni trovate qui dentro? Noto con un certo dispiacere che esistono una serie di diatribe relative a quale sia il linguaggio migliore per Godot: sarà GDScript o C#? Peggio, sembra che il linguaggio scelto, sia una specie di specchio delle capacità del programmatore, come a dire che se usi GDScript sei uno sfigato, se usi C# sei un figo, ma se usi C++… bé, se usi C++ devi essere un guru per forza, no? Questa roba, seppur scherzando, io la chiamo integralismo informatico, perché vive di slogan e verità assolute come succede per i regimi integralisti.
Non so voi, ma io non ho mai sentito parlare di un ottimo idraulico Bosch oppure di un fantastico elettricista Black & Decker, con tutto il rispetto per i marchi citati. Il motivo è che, probabilmente, le capacità dell’artigiano non dipendono dagli strumenti che usa, ma da come li usa. Per qualche strano motivo, questo stesso concetto fatica ad insinuarsi nel mondo dell’informatica, dove per essere un buon programmatore, devi per forza usare C++. Sappiate che io, il Pinbot, l’ho fatto tutto in GDScript e penso che abbia un suo peso.
Quello che voglio dire è che per essere buoni programmatori di videogiochi, prima di tutto mi dovete finire almeno uno di ‘sti benedetti videogiochi, no? Altro che linguaggio di programmazione figo! Poi ci sono situazioni dove, effettivamente, l’uso di strumenti di un certo livello, porta vantaggi indiscutibili. Gli stessi strumenti avanzati, però, si portano anche delle insidie non da niente, altrimenti useremmo solo quelli, par chiaro.
Nel corso di questo tutorial, siamo partiti con il mettere insieme gli strumenti del mestiere necessari per lavorare con GDExtension e C++, ma abbiamo anche fatto tre benchmark distinti, con i seguenti risultati:
- Nel primo test, abbiamo semplicemente contato fino a 5.000.000 e C++ ha vinto a mani basse rispetto a GDScript: peccato che non stesse facendo niente…
- Nel secondo, abbiamo creato una composizioni di mille cubi a formarne uno più grande e GDScript ha tenuto benissimo testa a C++, tanto da insinuare l’idea che, forse, GDExtension è un male di cui poter fare a meno…
- Nel terzo, ci siamo resi conto che in contesti molto specifici e particolari, GDExtension non è una risposta, ma è semplicemente l’unica possibile!
Che insegnamento ne possiamo trarre? Direi che un buon programmatore, visto che deve essere in grado di portare a termine i suoi lavori, vorrà scegliere, se il senno lo aiuta, il prodotto che gli rende la vita più facile e, qui, GDScript vince a mani basse, mi pare. Nel caso in cui trovasse un muro di gomma impenetrabile, poi, potrebbe rivolgersi a strumenti più avanzati, e qui parliamo ovviamente di C++ con GDExtension.
Come avrete notato, C# non l’ho neppure nominato. Perché? Semplice: C# è più complesso di GDScript, ma meno potente di C++ e tanto basta per cestinarlo. Poi si porta dietro anche le librerie .NET, che non sono proprio leggere, ma sono del tutto inutili visto che, in ambito Godot, se ne usa una piccolissima parte. A che serve? Sinceramente, dai?
Traete pure le vostre conclusioni. A parte la questione squisitamente didattica, credo di aver dimostrato, collateralmente, che quando dico di usare GDScript in prima battuta, sto esprimendo un’opinione pesata: credo sia colpa dei capelli bianchi.
Detto questo, spero abbiate trovato utile tutto quello che fa parte di questo lavoro. Se si, pubblicizzatelo tanto, anche perché c’ho messo giorni per metterlo insieme, almeno che qualcuno lo usi! Se poi vi va, offritemi un caffè!