Argomenti di questa pagina :

System tabDisplay tab – Physics VisualizationFramerate and Profile

 

Introduzione

Come detto nel capitolo di presentazione vi sono delle tecniche per ridurre il lavoro al motore di gioco e permettergli di farci eseguire il gioco più fluido possibile, quindi più giocabile, ci sono anche delle impostazioni su Blender che ci aiutano a rendere il gioco meno pesante. Sono opzioni che si usano in fase di sviluppo del gioco e che danno la possibilità di testare in tempo reale le differenze.

Alcune di queste opzioni si possono trovare sulla tab del Render, quella con la fotocamera, come nell’immagine seguente

System tab

In questa tab vi sono alcune impostazioni di base che dicono a Blender di usare alcuni parametri interni al motore.

  • Use Frame Rate se è selezionato vincola o no l’esecuzione del gioco al frame rate indicato nella prossima scheda (non ha niente a che vedere col FPS della tab Physics delle proprietà World, quello è per il calcolo della fisica).
  • Restrict Animation Update se selezionato costringe il motore di gioco a scartare alcuni frame dell’animazione (a volte anche ridisegnandola, il che crea disturbi visivi al gioco e rallentamenti) se il numero di frame renderizzati è maggiore del numero indicato nella tab Display.
  • Use Materials Chaching se selezionato aiuta a calcolare i materiali e le texture, quindi rende il tutto più veloce, ma può causare problemi se si usano le Multi Texture.
  • Display Lists se selezionato dice a Blender di mantenere la lista delle mesh (e le texture) nella memoria della GPU, in tal modo il render sarà più veloce, sempre se si ha a disposizione una buona quantità di memoria nella GPU (la scheda grafica).
  • Vsync sincronizza i fotogrammi al secondo con la frequenza di aggiornamento del monitor, le tre opzioni del menù a tendina sono : On attivo; Off disattivato; Adaptive questa ultima opzione è sconsigliata perchè non sappiamo se il pc su cui verrà eseguito il nostro gioco supporti tale opzione.
  • Storage questa opzione serve a impostare la modalità di memorizzazione usata dal modulo Rasterizer (quello che si occupa del render), le tre opzioni sono : Auto Select è il metodo di default ed è quello col maggior supporto; Immediate Mode le prestazioni sono rallentate e richiede qualsiasi versione di OpenGL; Vertex Array ottime prestazioni, richiede almeno la versione 1.1 di OpenGL.
  • Exit Key è il tasto di default per uscire dal motore di gioco, si può cambiare basta cliccare sullo spazio adiacente.

Display tab

In questa tab, sempre delle proprietà della finestra del Render, vi sono le specifiche per mostrare a video le principali informazioni di debug per dare allo sviluppatore la possibilità di capire dove si trova l’errore o come procedere per migliorare le prestazioni del gioco.

Le opzioni sono :

  • Animation Frame Rate di default 24, determina il massimo numero di frame in cui il gioco verrà eseguito, si può cambiare minimo 1 massimo 120.
  • Debug Properties serve a mostrare a video le Properties e gli State di un’oggetto.
  • Deprecation Warning è un’ottimo strumento che rileva le funzioni obsolete delle API del BGE, cioè quando programmiamo in Python e usiamo un’API che non esiste più Blender ci avvisa.
  • Mouse Cursor mostra il mouse quando parte il motore di gioco, non esattamente il massimo perchè di solito si fa via Python in runtime per mostrare e nascondere il mouse in determinate parte del gioco.
  • Framing è il bordo della telecamera, se fai partire il motore noterai che attorno all’immagine della scena è tutto nero, con questa impostazione si può cambiare il colore Letterbox della parte esterna. Le altre due opzioni : Extend serve ad allargare a tutto schermo, e Scale allarga o restringe la scena per farla entrare nella finestra di esecuzione.

Ho lasciato di proposito due opzioni per il finale perchè sono le più importanti per il recupero delle informazioni per modificare al meglio il gioco.

Physics Visualization

Questo paragrafo si ricollega alla pagina teorica Prestazioni del gioco al paragrafo finale sul calcolo delle collisionie diminuzione dei poligoni di collisione; faccio un esempio veloce e semplice.
Usando la scena di default dalla vista camera, metti la spunta su Physics Visualization e fai partire il motore di gioco, noterai che il cubo è bordato di rosso e ha delle linee verdi a formare i triangoli che formano la mesh (figura di sinistra). Adesso vai sulle proprietà Fisica dell’oggetto e lasciando il tipo Static clicca sulla tab Collision Bounds senza cambiare niente. Fai ripartire il motore di gioco e noterai che le linee verdi si sono ridotte (figura di destra), mancano quelle diagonali. Perchè in questo modo diamo al cubo un box di collisione diverso da quello di default del tipo Static.
Tornerò su questo argomento su un tutorial specifico perchè vi sono diverse visualizzazioni fisiche a seconda anche dei Sensors che si usano.

Framerate and Profile

Ho lasciato questo argomento per il finale perchè è quello che ha più opzioni di lettura, infatti mettendo la spunta sulla casella di controllo, in alto a sinistra dell’area di gioco compariranno dei parametri (figura seguente), espressi in ms (millisecondi, frazione piccolissima del secondo) e rappresentano il tempo di calcolo che Blender usa per determinare alcuni aspetti del nostro gioco.

  • Frametime mostra il tempo che Blender impiega a renderizzare la scena in tempo reale, in più mostra il framerate dell’utente.
  • Physic mostra il tempo in cui Blender calcola la fisica, siccome Blender usa Bullet come modulo di calcolo per la fisica, si può dire che questo valore rappresenta il tempo che Blender occupa in Bullet, minori sono le collisioni fisiche da calcolare più fluido è il gioco.
  • Logic è il tempo che impiega a calcolare le nostre logiche di gioco (sia Logic Bricks che Python), per velocizzare il calcolo bisogna snellire le procedure logiche, cercando di evitare troppi giri macchinosi.
  • Animations come dice la parola stessa, calcola il tempo che impiega nelle interpolazioni di movimento, è inclusa anche l’armatura, quindi tutti i movimenti di tutte le ossa.
  • Network è parte del calcolo dei dati che vengono inviati via internet, non ho mai provato personalmente, quindi non so se funziona realmente.
  • Scenegraph calcola il tempo per la posizione, angolatura e scalatura degli oggetti (comprese le parentele), per alcuni persi quindi calcola anche le armature, quindi se capita che il numero è alto e non si capisce perchè prova a guardare l’armatura.
  • Rasterizer è il maggior responsabile perchè calcola il render del gioco, include tutti gli aspetti le geometrie, le luci, le ombre ecc ecc. E’ importante non fare salire troppo questo parametro.
  • Services calcola le periferiche che interaggiscono col gioco (tastiera, mouse o gampad), di solito non da problemi.
  • Overhead calcola il tempo in cui Blender mostra a video queste informazioni, si proprio quello che sto spiegando ora e in più le Properties e gli State, per ridurre il numero bisogna diminuire gli elementi in debug.
  • Outside Blender ci segnala anche se abbiamo altri programmi in esecuzione, quindi è meglio chiuderli.
  • GPU Latency è il tempo che Blender rasterizza la scena (cioè trasforma gli elementi da dati di vettori a pixel) e poi la mostra a video, quindi non è quasi mai basso. Più potente è la scheda grafica più veloce è il calcolo, ma attenzione perchè non tutti i pc hanno la vostra stessa scheda grafica.

Queste impostazioni vanno cambiate quando si è già ad un buon livello con lo sviluppo del proprio gioco, diciamo quando si arriva alla fase BETA, in modo da poterlo esportare e farlo testare in varie macchine.
Consiglio inoltre di recuperare più informazioni possibili sul pc di ogni utente che testerà il gioco le principali sono : sistema operativo, processore, scheda grafica e memoria Ram, ma bisogna anche chiedere di effettuare degli screenshot nei momenti topici di calcolo, quindi rimandarvi il tutto. A tale proposito farò un tutorial sulla fase dei Test, come testare un gioco, recuperare le informazioni, i bug e reimpostare il tutto.

Tornando in fine alla scheda sopra spiegata, c’è da dire che le impostazioni di default sono ottime per moltissimi tipi di pc, compresi quelli datati, quindi prima di cambiare qualcosa provate a fare dei test.

 

Leave a Comment.