Instanziazione (continua)

Ricapitolando

Istanziare ha molti usi. A prima vista, attraverso l'istanziazione si ha:

  • L'abilitá di suddividere le scene e renderle piú facili da gestire.
  • Uno strumento per gestire e modificare multiple istanze di Nodi alla volta.
  • Un modo per organizzare e integrare logiche di gioco complesse o anche UI (in Godot anche gli elementi dell'UI sono nodi).

Linguaggio di design

Il grande vantaggio che proviene dall'instanziazione delle scene é che funziona come un eccellente linguaggio per il design. Questo è ciò che distingue Godot da tutti gli altri motori esistenti. Godot é stato progettato con l'idea di questo concetto.

Quando si creano giochi con Godot, l'approccio raccomandato é quello di mettere da parte i design pattern piú comuni come MVC o il modello E-R per concentrarsi su un design piú naturale per le proprie scene. Inizia immaginando gli elementi visibili nel tuo gioco, quelli che possono essere nominati non solo da un programmatore ma da ognuno.

Per esempio, ecco come un semplice sparatutto puó essere immaginato:

../../_images/shooter_instancing.png

È possibile creare un diagramma come questo per quasi tutti i tipi di gioco. Scrivi le parti del gioco che puoi visualizzare, poi aggiungi frecce per rappresentare la proprietà di un componente da un altro.

Una volta che si dispone di un diagramma come questo il processo consigliato per la creazione di un gioco è quello di creare una scena per ogni elemento elencato nel diagramma. Si userà l'istanziazione (tramite codice o direttamente nell'editor) per i rapporti di proprietà.

Molto tempo speso nella programmazione dei giochi (o del software in generale) è dedicato alla progettazione di un'architettura e all'adattamento dei componenti di gioco a tale architettura. La progettazione basata su scene sostituisce questo approccio e rende lo sviluppo molto più veloce e semplice, permettendoti di concentrarti sulla logica del gioco stesso. Poiché la maggior parte dei componenti di gioco sono mappati direttamente su una scena, l'utilizzo di un'istanziazione basata sulle scene significa che serve poco codice aggiuntivo.

Osserviamo un altro esempio, forse un po' più complesso, di un gioco in stile open-world pieno di assets ed elementi intrecciati:

../../_images/openworld_instancing.png

Date un'occhiata all'elemento della stanza. Presupponiamo di iniziare lì. Potremmo creare una serie di differenti scene per ciascuna stanza, con diverse disposizioni dei mobili (anch'esse scene). In seguito, potremmo creare una scena per la casa, e connettere tutte le stanze precedenti per formare tutti i suoi interni.

Poi, potremmo creare una scena per la cittadella, che sarà formata da tutte le istanze delle case. In seguito, potremmo iniziare a lavorare sulla mappa del gioco, aggiungendo la cittadella al suo interno.

Poi, potremmo creare scene rappresentanti guardie (e altri NPC) e aggiungere anch'essi alla cittadella. Di conseguenza, verranno indirettamente aggiunti al complessivo mondo di gioco.

Con Godot è facile creare giochi come questo, e tutto ciò che hai bisogno è creare ed istanziare più scene. Perlopiù, l'interfaccia dell'editor è designata per essere facile da usare sia per programmatori e non. Un tipico gruppo di sviluppo comprende artisti 2D o 3D, level designers, game designers e animatori, tutti che lavorano con l'interfaccia dell'editor.

Sovraccarico di informazioni!

Questo è stato un numero enorme di informazioni di alto livello mostratoti tutto in una volta. Comunque, la parte importante di questo tutorial era creare l'idea di come le scene e l'istanziamento sono usati nei progetti reali.

Tutto ciò di cui abbiamo discusso qui, ti diverrà familiare una volta che inizierai a creare videogiochi e metterai in pratica questi concetti. Per ora, non darci troppa importanza, e prosegui con il prossimo tutorial!