E allora a lavoro
Poco dopo che la decisione era stata presa, i kit di sviluppo sono cominciati ad arrivare. Come è consuetudine per hardware non definitivi erano più grandi del design finale con una accozzaglia di connettori e porte usati specificatamente per lo sviluppo. Quindi li abbiamo collegati e passati sotto l’ultimo system code, dopo abbiamo provato a far girare un tipo di gioco semplice, una sorta di “hello world, che si è dimostrato più difficile di quanto pensiate.
Immagino che avendo lavorato su hardware di altre console fossimo stati viziati dall’aver potuto sfruttare strumenti maturi che si integrassero ottimamente col nostro ambiente di sviluppo. WiiU dall’altra parte sembrava provare in ogni momento a rendere le cose difficili da compilare e da far girare ogni codice. Nintendo aveva inviato un’integrazione dei loro strumenti di sviluppo in Visual Studio – il de facto standard per lo sviluppo – ma non funzionava, minimamente. Quindi tempo fu speso provando a ripararlo, nel mentre riportando questa problematica alla casa produttrice. Alla fine abbiamo ricevuto una soluzione da Nintendo attraverso un’altra compagnia terze parti che aveva anche lei lavorato su questo problema per un po’.
Quindi ora potevamo rendere visibile il codice in Visual Studio e compilarlo, che era buono, ma i tempi di compilazione erano davvero lenti, anche per minimi cambiamenti. Dopo doveva fare il passaggio della sincronizzazione, a quel punto potevi felicemente alzarti, fare una tazza di the, fare una chiacchierata e tornare alla tua scrivania prima che la sincronizzazione fosse completata. I tempi di sincronizzazione erano misurati in multipli (quattro o più) minuti su WiiU comparati intorno al minuto su altre piattaforme.
Questo non suona male, ma quando stai facendo debugging e cambiando molte cose, questi tempi addizionali si sommano. Se fai 10 cambiamenti ad un file in una mattina, potresti spendere più di 50 minuti aspettando che la sincronizzazione finisca, il che equivale a molto tempo sprecato.
Alla fine, quando hai il codice, vorresti solo metterlo nella console e far partire il debugger, che fa parte della catena di strumenti che Nintendo ha in licenza da Green Hills Software. Come developer navigato ho usato molti debugger, ma questo ha sorpreso anche me. La sua interfaccia era goffa, era molto lento nell’utilizzo e se facevi l’errore di cliccare su del codice, si metteva in pausa e recuperava tutti i valori per le variabili che avevi cliccato, il che poteva durare un minuto o più.
Tutte queste cose hanno reso lo sviluppo di codice più difficile di quanto sarebbe dovuto essere, mangiando il tempo di sviluppo del gioco. Come team, abbiamo perso giornate per compilare/sincronizzare/debug sovrastrutture e questo ha avuto un impatto negativo sulle feature che avremmo potuto mettere nel gioco prima della data d’uscita.
Un’altra cosa curiosa da notare a questo punto è che dopo un percorso di sei mesi abbiamo ricevuto numerosi kit di sviluppo differenti di vari colori, nessuno dei quali rivelava perché fossero diversi da quello precedente. Sapevamo che c’erano alcuni bug hardware da correggere, ma le note d’accompagnamento raramente dicevano cosa era stato cambiato – dovevamo solo prendere quelli nuovi e farli lavorare con il nostro codice, consumando tempo di sviluppo essenziale. Ci sono stati dei rumor interessanti riguardo box di sviluppo di tipo PC, e anche con una Radeon HD 4850 (che girava depotenziata) utilizzata come proxy per la GPU del WiiU. Abbiamo lavorato su WiiU sin dai primi giorni e non abbiamo mai visto un’attrezzatura simile – i nostri kit avevano sempre la forma di hardware personalizzati che presumo basati sul silicio quasi finale.