Ne parliamo con Alberto Barbati, core trainer del corso di game programming alla Digital Bros Game Academy

20 anni di esperienza nel mondo dello sviluppo dei videogame con significative esperienze in Ubisoft, Alberto ha rivestito ruoli centrali nella pubblicazione di oltre 12 titoli AAA, attualmente sviluppa middleware  per il motore Unreal Engine con il suo marchio Gamecentric.

Ciao Alberto,
come core trainer di un corso di game programming a inizio corso trovi forse il quadro più disallineato e complesso come hard skill negli studenti: dal laureato in informatica al diplomato ad un istituto tecnico, dal giovane programmatore con esperienza allo studente in grado di scrivere qualche riga di codice formatosi in autonomia.
Come riesci ad allineare ai blocchi di partenza del corso di game programming queste figure così variegate?

Alberto: Le prime settimane del corso sono fondamentali. Prima di tutto faccio presente alla classe la situazione, perché la percepiscano come una opportunità, piuttosto che come un problema. Un concetto in cui credo molto e che ripeto spesso agli studenti è “il modo migliore per imparare è dover spiegare a qualcuno”. Quindi coinvolgo gli studenti che hanno già qualche esperienza a mettersi a disposizione dei colleghi per rivedere, durante le ore di laboratorio, gli argomenti trattati a lezione. In questo modo, chi fa più fatica a lezione ha una seconda opportunità e non rimane indietro. Nelle settimane successive, una volta identificati gli studenti effettivamente più in gamba, procedo a nominare in maniera ufficiale alcuni studenti come mentor, che facciano da punto di riferimento per questo processo. Infine, quando iniziamo a svolgere i progetti interdisciplinari con designer e grafici, cerco sempre di formare team bilanciati in modo da creare un vero e proprio buddy system in cui gli studenti si prendono cura uno dell’altro.

Come sappiamo la Digital Bros Academy ha un approccio hands-on alla didattica, superato lo scoglio dell’allineamento delle hard skill, si apre il capitolo dell’armonizzazione nella realizzazione dei progetti. Quale metodo e strumenti di sviluppo di videogames ad essi legati adotti in aula e nei laboratori durante corso di game programming?

Alberto: Durante il corso, si svolgono tipicamente cinque progetti, con una progressione ben precisa. Il primo progetto utilizza Game Maker, che è un motore grafico per videogiochi molto semplice e accessibile che consente quindi un’introduzione soft alla programmazione. I team sono formati da uno o al massimo due programmatori e due designer. In team così piccoli gli studenti si cimentano subito con le soft skill necessarie per lavorare in gruppo senza però invischiarsi nelle dinamiche più complesse dei gruppi numerosi. Inoltre, permette a noi core trainer di avere subito una percezione delle capacità di ogni singolo studente. Nel secondo progetto i team si ingrandiscono fino a tre programmatori e introduciamo anche gli artisti. Qui iniziano a sorgere le prime dinamiche di gruppo. Il terzo progetto è la chiave di volta. Innanzitutto, introduciamo Unity 3D e il linguaggio C# che sono entrambi strumenti decisamente più potenti di Game Maker, ma anche più complessi. Un’altra cosa sottile, ma fondamentale, è che, per la prima volta, assegniamo dei ruoli specifici, nominando i lead di reparto e di progetto. Questo cocktail mette gli studenti di fronte ad una esperienza già molto simile a quella di un vero studio di sviluppo. Il quarto progetto è utile per ruotare i ruoli e consentire a potenziali lead che non hanno ricoperto tale ruolo nel terzo progetto, di farne l’esperienza. Il quinto e ultimo progetto è giustamente soprannominato “The Big One” perché è il più lungo e impegnativo. A questo punto noi core trainer abbiamo tutte le informazioni per creare dei team in grado di resistere allo stress di lavorare per mesi spalla a spalla con le stesse persone, al fine di conseguire un obbiettivo comune.

L’auto-formazione e l’aggiornamento sono tratti ormai consolidati in tutte le professioni intellettuali. Le necessità didattiche, l’attività didattica, il confronto con gli altri core trainer e con gli studenti stessi, quanto e come ampliano ed esaltano questi aspetti?

Alberto: La quantità di informazioni necessarie per svolgere questo lavoro, come molti altri del resto, è tale che non si può pensare di esaurire tutto nel corso di pochi mesi o anni, soprattutto perché le tecnologie si evolvono molto rapidamente. Per cui, assolutamente, l’attitudine all’auto-formazione è fondamentale. Per questo insegno ai miei studenti del corso di game programming, anche a consultare le documentazioni: non si può sempre ricordare tutto e sapere dove e come reperire informazioni è spesso più utile che memorizzare quantità immense di dettagli. D’altronde, il mio compito è quello di gettare le fondamenta e fornire gli strumenti con cui poi gli studenti erigeranno il loro edificio di conoscenze. Questo processo è a due vie, anche noi core trainer impariamo dagli studenti! Il motto “il modo migliore per imparare è dover spiegare a qualcuno” vale anche per noi. Non solo apprendiamo continuamente modi migliori e più efficaci di comunicare le nostre conoscenze, ma siamo spronati a tenerci aggiornati sulle nuove tecnologie in modo da poterle presentare in classe. Queste nuove competenze ci arricchiscono come formatori, ma anche e soprattutto come sviluppatori di videogiochi.