web design umbria
game development, web design Umbria, web developer Umbria

Aspettando Godot: non é Beckett ma Game Development

Strano, digitando Godot su un motore di ricerca mi aspetterei di trovare informazioni sul teatro dell’ assurdo e https://it.wikipedia.org/wiki/Samuel_Beckett e quindi sullo strano sig. Godot che se ne va in giro a passeggiare con la mascherina nella fase due aspettando qualcuno. Invece il primo risultato della SERP riporta: https://godotengine.org/ il cui claim è guarda un pò proprio un famigliare “Il motore di gioco che hai aspettato“. Ci sono alcune buone notizie immediate. La piattaforma di sviluppo è liberamente usabile senza restrizioni e anche open source! E’ finita l’attesa spasmodica delle nostre teatrali pulsioni! Ha inoltre un vasto eco di appassionati sviluppatori che continuano a far crescere questo potente engine per i giochi. Godot usa un linguaggio di scripting simile a Pyton che si chiama GDScript. I primi passi da fare sono scaricare dal sito indicato l’eseguibile da decomprimere e prendere familiarità con i nodi e le escene e la personalizzazione degli oggetti e dei caratteri. Questa piattaforma segue una logica architetturale a nodi. Godot user interface supporta anche i suoni a corredo creatico e naturalmente consente di creare nemici a piacere e collezioni di oggetto. Tutto questo lo fa con una interfaccia enormemente semplificata rispetto a Unity dove posso anche scegliere di mettere in piedi costruzioni di gioco 3D. I nodi servono a gestire le scene e possiamo mettere in moto delle collection di location che avranno a sostegno quindi dei nodi che come struttura root ramificazione e figli ricorda proprio il DOM dei documenti html manipolabili con javascript. Un nodo può essere associato alla scena quindi e la generazione di fatto crea un file sul file system del progetto con estensione TSCN, per esempio MainScene.tscn. Il modo migliore per capire come funziona la piattaforma è riportare in vita il deprecato FLASH, un portentoso software che qualche anno fa creava fantastiche animazione usando la metafora dello STAGE, dove gli elementi venivano posizionati a livelli uno sopra l’altro. Qui è lo stesso: un nodo potrebbe fare da cornice principale, un altro potrebbe aiutarci l’istanza nemici, un altro potrebbe avere da controllare ostacoli e pericoli etc etc fino a scomporre tutti gli elementi primari che formano la scena che diventa un gigantesco affresco armonico e funzionale. Ad esempio devo creare un elemento nel progetto chiamato PLAYER.TSCN che sarà un nodo figlio del blocco main. Questo giocatore lo posso posizionare con una griglia di precisione disposta sulla destra inserendo dei valori numerici sugli assi X e Y e posso anche decidere di inserire un’ area di collisione sempre gestendone da pannello di controllo INSPECTOR le proprietà. Il programma mi fa istanziare gli oggetti per cui da figlio posso ereditare caratteristiche o proprietà tipiche del papà menzionato. Le griglie di costruzione per le scene e i personaggi sono sagomate millimetricamente per posizionare ad esempio blocchi o ostacoli lungo il cammino dell’ eroe con assoluta precisione. Una volta definite le possibilità di movimento del personaggio giocatore che può saltare usando la gravità e muoversi avanti e indietro per aggirare gli ostacoli possiamo disegnare gli scenari di gioco con i blocchi di piramide o simili messi a disposizione dagli asset-risorse della piattaforma. Certo è che la fase di pianificazione per creare un gioco deve tenere conto di innumerevoli fattori che sono sempre tanti: dobbiamo considerare situazioni in cui l’eroe saltando per esempio raccoglie delle monete e quindi incrementa uno SCORE, oppure situazioni dove un nemico entra in collisione con noi ed esplodiamo o in alternativa ostacoli vaganti con certe caratteristiche di movimento da definire, per cui servirà una FUNZIONE DI RIPRISTINO per continuare il gioco azzerando tutti i progressi. Servirà un dispositivo di ripresa cinematografica attivabile da INSPECTOR che seguirà i movimenti del nostro prode Achille, per cui saltando, correndo ed evitando ostacoli il nostro sguardo è dinamico e segue noi che siamo i protagonisti mentre la location di sfondo scorre. Le dinamiche da prevedere sono sempre tante e complesse: se devo saltare e afferrare due euro intendendo graficamente un doblone d’oro raggiungibile alcuni metri sopra la mia testa che afferro volando, quel nodo al momento del contatto deve ubbidire a una funzione che dissolve il valore della moneta per alimentare il mio contatore e contemporaneamente attivare la possibilità di afferrare il prossimo target da raggiungere sempre saltellando dinamicamente come un canguro. Come se non bastasse al momento della digestione per indicare un successo dovrò richiamare un suono sintomatico che l’operazione di ingurgitamento è stata piacevole. Con Godot tutti questi aspetti della progettazione si possono controllare ma soprattutto alle prime armi la piattaforma ci mette a disposizione con l’import alcuni progetti che si possono vivisezionare e studiare per vedere l’effetto che fa e come sono strutturati. Si possono quindi richiamare delle librerie che hanno oggetti figli che a loro volta diventeranno padri per le nostre mainScene e in questo modo potremmo agganciare dei nodi, richiamare dei valori etc, mettere a disposizioni numerosi metodi per soddisfare le nostre esigenze e anche richiamare delle risorse utili con User Interface per fornire audio tematico per il nostro game! Godot, quello del teatro, ci dispiace ma l’attesa è finita: https://godotengine.org/

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...