Godot Game Template, un progetto di base per creare giochi

0

Negli ultimi tre anni ho creato vari piccoli giochi¹ con Godot e ho notato che per ogni progetto ripetevo molte operazioni tediose come:

  • creare uno SceneManager con caricamento (multithread), transizioni grafiche e passaggio parametri
  • creare una struttura ordinata per le scene di menù, gameplay, overlay di pausa
  • configurare gli export template per le varie piattaforme (Linux, Windows, OSX, HTML5, mobile, …)
  • aggiungere un .gitignore

Ho deciso quindi di raggruppare tutte queste cose in un game template, ovvero un progetto di partenza che tutti possono usare (licenza MIT) cliccando sul tasto “Use this template” di GitHub.

In alternativa, se preferite non usare GitHub, potete anche scaricare l’archivio .zip dell’ultima versione del progetto.

➡️ https://github.com/crystal-bit/godot-game-template

Cosa ne pensate? Voi avete mai usato game template (anche di altri framework/engine)? Pensate sia utile oppure si tratta solo di over-engineering?

¹ alcuni di questi giochi sono open source:

Interessante il pulsante “Use this template” su GitHub, non sapevo esistesse!

Personalmente avevo 1 template per quando lavoravo ai giochi Flash che bene o male avevano tutti una struttura di base simile. Per cose piu’ complicate credo che molto dipenda da quanto sia flessibile/copra il tuo template.

Aspetto di leggere maggiori info nel wiki!

Ah hai lavorato su giochi flash? Non lo sapevo! Effettivamente su progetti piccoli ha più senso usare un template, su progetti grossi quel vantaggio si riduce abbastanza.

Riguardo questo tema infatti sono indeciso se inserire nuove funzionalità nel template oppure se creare
degli add-on da installare dall’asset-store.

Nel frattempo ho aggiornato la wiki: https://github.com/crystal-bit/godot-game-template/wiki

Non sembra tanto lavoro, ma in realtà ho contribuito ad un tool chiamato GDScript_docs_maker per generare documentazione a partire dalle docstring degli script. Ad esempio il contenuto di questa pagina è generato automaticamente a partire dallo script main.gd

Nuova release 2021.01.0 del template!
➡ Changelog e download github.com/crystal-bit/godot-game-template

Ho scoperto gdlint e ho fatto un bel po’ di refactoring per semplificare il codice e aggiornarlo alla style guide ufficiale di GDScript.

Ho anche approfittato del video tutorial che ho fatto sui caricamenti in multithread per per aggiungere una progress bar da attivare con:

Game.change_scene("res://myscene.tscn", {
    'show_progress_bar': true
})

Ci sono state due nuove release del template, l’ultima è la v2021.04.1 sempre con base Godot 3.2.3.
Potete vedere le novità dal changelog!

Sono molto contento per l’arrivo dei primi 2 contributor: @Fahien e Andrea Miele (che non credo sia su Gameloop)! Vedere collaborazione sul progetto dona veramente “good vibes” 😃

Ho rilasciato la versione 2021.05.0 con supporto a Godot 3.3, update agli script id continuos integration ed altri miglioramenti generali!

La release 2022.04.0 ha dei grossi cambiamenti:

  • è stato aggiungo il supporto a Godot 3.4.4
  • la continuos integration è ora al 100% affidata a aBarichelle/godot-ci, rendendo più semplice la gestione dei prossimi update (in passato avevo dovuto sviluppare e mantenere un’immagine docker per supportare la build Android. Ora per fortuna non è più necessario)
  • è stato fatto un grosso refactor del codice per trasformare il template in un addon Godot. Prossimamente invierò l’addon all’Asset Library ufficiale di Godot
  • grazie al refactor, il core del template è in addons/game-template, separando nettamente i file del template dai file del gioco che si va a sviluppare
  • grazie al refactor ora c’è maggiore compatibilità con l’API di base di GDScript. Ad esempio ora si può utilizzare get_tree().change_scene() senza rompere nulla. In passato questo avrebbe rimosso alcuni nodi che erano fondamentali per il funzionamento del template (quindi bisognava cambiare scena sempre usando Game.change_scene())
  • Fixati 2 bug: https://github.com/crystal-bit/godot-game-template/issues/56 e https://github.com/crystal-bit/godot-game-template/issues/54

Comments are closed.