Come diventare un programmatore migliore in Unity

Con l'ascesa di AI e Machine Learning, è facile presumere che i programmatori non saranno necessari in futuro. Tuttavia, potrebbe volerci molto tempo prima che l'Intelligenza Artificiale sia in grado di interpretare compiti più complessi, come astrazione, ottimizzazione, interconnessione, ecc.

Pertanto, non è mai troppo tardi per affinare le tue conoscenze di programmazione in Unity, per diventare non solo un programmatore più efficiente ma anche, quando sarà il momento, in grado di supervisionare il codice scritto da altri e guidarli nella giusta direzione.

1. L'ottimizzazione prematura non è sempre la radice di tutti i mali

È un tema comune denigrare l'ottimizzazione prematura come un passaggio non necessario durante la prototipazione di qualcosa, tuttavia, non dovrebbe essere sempre così, specialmente durante l'aggiunta di piccole cose, che sai per certo avere un grande impatto sulle prestazioni e quando è il momento di fare la vera ottimizzazione, il tempo era già stato risparmiato occupandosi delle cose più piccole. Usiamo gameObject.name come esempio:

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

    void Update()
    {
        objectName = gameObject.name;
		Debug.Log(objectName);
    }
}

Sebbene l'utilizzo di gameObject.name possa sembrare innocuo, come abbiamo scoperto nel post "Unity Ottimizza il tuo gioco utilizzando Profiler", ottenere il nome di un oggetto alloca abbastanza un po' di memoria, che moltiplica il problema richiamandolo ad ogni fotogramma. Quindi, subito, possiamo spostare quell'assegnazione alla funzione Start (a meno che il nome dell'oggetto non cambi frequentemente, in tal caso sarebbe più efficiente saltare usando il nome del tutto e utilizzare invece una variabile).

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

    void Start()
    {
        objectName = gameObject.name;
    }

    void Update()
    {
        Debug.Log(objectName);
    }
}

2. Scrivi un codice più breve

Scrivere codice più breve fa sempre risparmiare tempo, rendendolo più leggibile e più facile da mantenere in futuro.

Esistono molti modi per scrivere codice più breve e, nel caso di Unity, un codice C#. Ad esempio, semplificando l'istruzione if/else utilizzando il simbolo '?':

int numA = 10;
int numB = 5;
int result;
if (numA > numB) {
    result = numA;
} else {
    result = numB;
}
Debug.Log(result);

Lo stesso codice può essere abbreviato in:

int numA = 10;
int numB = 5;
int result = (numA > numB) ? numA : numB;
Debug.Log(result);

Un altro modo per abbreviare il codice consiste nell'inserire il codice ripetitivo nella propria funzione e quindi utilizzare quella funzione al suo posto.

3. Prima codifica, poi fai domande

Mentre la pianificazione è una parte essenziale di qualsiasi progetto, se si tratta di un prototipo o se l'idea non è ancora scolpita nella pietra, è importante iniziare a programmare il prima possibile, poiché indipendentemente dalla quantità di pianificazione, non appena arrivi a lavoro scoprirai sempre qualcosa che può essere fatto meglio/più efficiente, o che alcune idee non sono valide nella pratica come altre, e viceversa.

Tutto sommato, pochissime cose ti renderanno migliore nella programmazione come mettersi al lavoro e iniziare a scrivere il codice.

4. Playtest, prima di apportare modifiche

Quando si dispone di una demo giocabile, è fondamentale iniziare a testarla il prima possibile per individuare dove le cose possono essere migliorate, perché spesso potrebbe non essere evidente solo guardando il codice.

Una volta padroneggiata l'arte del test di gioco e della raccolta di feedback, diventerai un programmatore più efficiente, sapendo esattamente dove cercare per migliorare il codice.

Unity ovviamente fornisce molti strumenti utili lungo il percorso, come Console (per individuare avvisi ed errori), Profiler per il debug delle prestazioni e il resto dell'interfaccia (Scene, Hierarchy, Ispettore, ecc. per monitorare il flusso del gioco/progetto).

5. L'ottimizzazione è un processo graduale

Siamo tutti d'accordo sul fatto che le prestazioni del gioco possono crearlo o distruggerlo ed è uno dei pilastri alla base di un lancio di successo. Ma le prestazioni del gioco possono essere valutate solo eseguendo i test di gioco in vari scenari e condizioni, al fine di simulare il gioco dal punto di vista dei giocatori normali.

Abbiamo discusso molti metodi su come eseguire il debug, ottimizzare e trovare i colli di bottiglia nel codice del gioco.

Per saperne di più su come ottimizzare il tuo gioco desktop o mobile, puoi controllare i post seguenti:

  1. Unity Ottimizza il tuo gioco usando Profiler
  2. Migliorare le prestazioni di un gioco per dispositivi mobili in Unity 3D
  3. Unity Suggerimenti per l'ottimizzazione

Se hai i tuoi suggerimenti su come diventare un programmatore migliore in Unity, sentiti libero di pubblicarli nei commenti.

Articoli suggeriti
Lavorare con matrici ed elenchi in codice Unity
Come aggiungere l'effetto mirino da cecchino in Unity
Come riprodurre file video in Unity
Come modificare la risoluzione dello schermo in Unity Game
Come attivare un filmato in Unity
Unity Come creare uno shader
Gestione delle eccezioni e gestione degli errori nel codice Unity