Sto codificando un gioco nel mio tempo libero, ma per lo più sono ancora un principiante quando si parla di programmazione. Mi dispiace se questa domanda è fuori tema o se finisce per non essere utile a nessun altro, ma spero che lo sarà.
Ho passato molto tempo a leggere libri sulla progettazione del codice, oltre a diverse metodologie e approcci alla codifica. Nel corso di questa ricerca continuo a correre sul concetto di Test Driven Development. Le persone che sposano questa idea di solito sembrano molto appassionate al riguardo. Credo che possa aiutare la velocità e l'efficienza del software di scrittura. Il tempo è una risorsa molto preziosa quindi preferirei imparare a fare le cose nel modo migliore piuttosto che cavarmela senza cercare di espandere la mia conoscenza del mestiere di programmazione.
Comunque, forse perché sono un principiante, non riesco a immaginare come applicare lo sviluppo basato sui test ai giochi. Ho trovato un paio di articoli sull'argomento ma non sono stati di grande aiuto. La maggior parte degli esempi di test unitari che ho visto sono esempi di piastre semplici, o esempi di software che non assomigliano affatto a un gioco.
Nel mio codice, cerco di avvicinarlo con una mentalità simile per testare lo sviluppo guidato, anche se sono sicuro che in realtà non si qualifica come TDD. Scrivo la quantità minima di codice per provare ad implementare qualsiasi funzione che sto aggiungendo al gioco, quindi eseguo immediatamente il test del gioco per vedere se funziona. Se le cose non accadono come volevo, faccio subito delle modifiche per avvicinarmi a ciò che voglio. Se non funziona o non funziona, e se non riesco a trovare gli errori leggendo il codice, passo i metodi nel debugger finché non trovo il comportamento imprevisto, e poi lo rimuovo. Quello che sto cercando di dire è che sto testando costantemente il gioco, praticamente dopo ogni singolo cambiamento. I test guidano il mio sviluppo. Il "test unitario" è nella mia testa, perché ad esempio so che cosa dovrebbe fare l'unità nel mio gioco, quindi faccio il test per assicurarmi che lo stia facendo, e se no, cerco di sistemarlo subito .
Attivo alla mia domanda attuale. Come si possono scrivere test unitari per un gioco complesso? Per complesso, intendo con molti aspetti emergenti del gameplay, in modo tale che la carne del gameplay emerga dall'interazione tra i molti elementi diversi all'interno del gioco combinati con le scelte del giocatore. Ad esempio, un rpg simile a un roguelike con un mondo procedurale. Che tipo di test unitari scriveresti per un gioco del genere? Come si può applicare lo sviluppo guidato da test a un gioco del genere?