Come sviluppare videogiochi collaborando online?

Gen 10

La pandemia da Coronavirus ha modificato il modo stesso in cui approcciamo i diversi aspetti della vita. In particolare, il mondo del lavoro ha subito i cambiamenti più repentini e significativi. Nel caso dell’industria dei videogiochi, le aziende si sono dovute adattare in fretta per trovare il modo di coordinare team di dimensioni spesso tutt’altro che banali. Anche dopo i primi allentamenti delle misure più restrittive e nei successivi anni, forme di lavoro ibride e a distanza sono cresciute sempre più, non soltanto per adempiere alle necessità aziendali, ma anche per venire incontro alle rinnovate necessità di trovare un maggiore equilibrio tra vita e lavoro.

Lavorare a distanza ha portato con sé nuove sfide: dal riorganizzare gli spazi in casa per trasformarli in un ufficio al mantenere ben delineati i confini personali da quelli lavorativi, senza dimenticarsi di quanto sia importante come membri di un team non sentirsi isolati dagli altri. Trovare la giusta motivazione può essere difficile quando viene meno il senso di appartenenza al gruppo di lavoro ed è un aspetto che monitoriamo attentamente in DBGA quando replichiamo le dinamiche di uno studio di sviluppo nei nostri corsi online e in presenza.

lavoro da remoto
Elaborare documenti online in modo collaborativo

Proprio parlando di corsi online, abbiamo già approfondito in un articolo dedicato quanto sia importante l’interazione umana nella formazione a distanza e di come il peer-to-peer learning sia un modo innovativo per favorire una relazione costruttiva tra gli studenti. In questo articolo, vedremo in che modo è possibile sviluppare progetti complessi come i videogiochi lavorando da remoto in un ambiente di apprendimento ma che si basa su pratiche in uso anche all’interno di studi di sviluppo.

La comunicazione prima di tutto

Sia che si lavori in presenza, da remoto o in formati ibridi, non si può ignorare uno degli aspetti fondamentali di qualsiasi lavoro: la comunicazione. Senza comunicazione il team non sa che direzione prendere e vengono meno il confronto e lo scambio di idee, infatti, la comunicazione non è solo finalizzata al raggiungimento di un obiettivo ma rimanere connessi è anche un modo per essere più produttivi e coinvolti in un progetto.

Quando si lavora tutti nello stesso luogo è più semplice rimanere aggiornati sulle attività che stanno svolgendo i colleghi ma quando questa possibilità viene meno, è essenziale che tutti i membri del team si impegnino a dialogare tra di loro, esprimendo con chiarezza ciò che li sta tenendo occupati e rendendo evidenti eventuali problemi che sono sorti durante le fasi di sviluppo.

Sono svariati gli strumenti e i metodi con i quali poter rendere più efficace la comunicazione e la gestione di un progetto sul mercato. Scopriamo insieme alcuni degli strumenti di collaborazione, comunicazione e Project Management che gli studenti dei corsi Online Blended di Game Design e Game Programming possono sfruttare per realizzare i propri progetti di gruppo.

Strumenti di collaborazione e comunicazione

La funzione principale di un software di collaborazione e comunicazione è semplificare e ottimizzare la comunicazione interna tra figure che lavorano da remoto e non. Un programma di messaggistica istantanea consente una collaborazione più rapida. A seconda delle necessità e della grandezza del proprio studio, esistono programmi gratuiti o a pagamento che possono fare al proprio caso: Slack, Google Chat, Microsoft Teams, Facebook Workplace Groups e persino Discord, infatti, la piattaforma leader di messaggistica istantanea progettata per la comunicazione tra comunità di videogiocatori è uno degli strumenti cardine dei corsi .

Discord
Grazie a Discord gli studenti rimangono connessi e possono lavorare ai progetti

Gli studenti, divisi in gruppi, imparano a comunicare tra di loro e con i Core Trainer durante tutte le fasi di sviluppo di un progetto. Nell’ottica di unire la teoria alla pratica, gli iscritti ai corsi apprendono i fondamenti delle metodologie agile (come il framework Scrum) e mettono in pratica quanto studiato attraverso alcuni rituali, come lo stand up meeting su Discord. Attraverso un breve messaggio su Discord, ogni membro del team condivide cosa ha fatto il giorno prima, cosa intende fare quel giorno e se ha incontrato ostacoli che ne hanno impedito l’avanzamento. In questo modo tutti sono allineati. Settimanalmente, inoltre, un responsabile per team compila un report settimanale che funziona quasi da “sprint review” per discutere i progressi compiuti, cosa ha subito rallentamenti e cosa si è scelto di interrompere.

A seconda delle fasi di sviluppo, possono essere necessari altri strumenti per portare a termine uno specifico obiettivo. Ad esempio, nelle fasi iniziali del proprio progetto, gli studenti sono incoraggiati a prendere parte ad attività di brainstorming per valutare in modo collaborativo idee per il proprio gioco da sviluppare. Si discutono il tema, le caratteristiche, le piattaforme e ogni aspetto che in questa fase esplorativa si ritiene necessario.

Anche una soluzione semplice come una Google Jamboard, una lavagna interattiva su cui attaccare note adesive, permette a tutti di esprimere le proprie idee in modo ordinato. Per soluzioni più ricercate esistono tool come Miro che mettono a disposizione anche modelli che possono essere utili in fasi più avanzate del Game Design come diagrammi di flusso, user flow e Kanban Board che approfondiremo negli strumenti di project management e gestione del lavoro di gruppo.

Strumenti di Project Management e gestione del lavoro

Quando si lavora a un progetto è importante organizzare task e attività lavorando in un ambiente condiviso, infatti, senza una piattaforma condivisa tra i membri del team è difficile sapere su cosa concentrarsi senza andare a contattare singolarmente ogni persona. Questa non è una soluzione efficiente: si perde tempo, non si hanno priorità ben chiare e la produttività ne risente. Sviluppare un videogioco non è semplice: per quanto piccolo può sembrarci il nostro progetto, ci sarà comunque bisogno di organizzare il lavoro e le diverse fasi di sviluppo del progetto in modo più schematico.

Collaborare online con Trello
Un progetto su Trello con modello Kanban

Per i team di piccole dimensioni, strumenti come Trello sono sufficienti per avere sotto controllo l’andamento dei lavori. Il tool si struttura come una Kanban board (uno degli strumenti di gestione di un progetto agile): in poche parole si tratta di una bacheca che facilita la visualizzazione del flusso di lavoro, migliorandone l’efficienza attraverso anche l’individuazione di task problematici. Mediante un sistema di card e colonne, i task vengono spostati a mano a mano verso il completamento. Ogni colonna rappresenta i principali stati del flusso di lavoro, come “Da fare”, “In corso” e “Completato”.

Trello è anche utilizzato nell’industria per mostrare esternamente le feature e i bug a cui il team di sviluppo sta lavorando. Alcuni team scelgono di mostrare i progressi ai propri fan e sostenitori, persino un gioco Tripla A come Call of Duty: Modern Warfare II ha una bacheca pubblica su Trello dove gli sviluppatori raccolgono eventi futuri, patch notes, problematiche di cui sono a conoscenza e aggiornamenti.
Per team più strutturati e numerosi, uno degli strumenti più apprezzati è Jira che oltre alle bacheche Kanban e Scrum per i team che implementano una metodologia Agile, offre la possibilità di monitorare i bug in base alla gravità e priorità. Grazie alle diverse integrazioni, possono essere aggiunti servizi di repository di codice, imprescindibili per un programmatore che può rapidamente e in tempo reale essere informato sui commit, i file modificati e gli autori.

Version Control per sviluppare videogiochi

Version Control sviluppare videogiochi
Attivare il version control su Unity tramite Perforce

Un sistema di controllo di versione permette agli sviluppatori di collaborare individualmente e parallelamente, inviare le proprie modifiche e successivamente anche unirle alle modifiche di altri membri del team. Un repository è infatti assimilabile a un archivio virtuale del proprio progetto e consente di salvare le diverse versioni del codice a cui accedere quando necessario. Gli sviluppatori navigati che lavorano in gruppi numerosi utilizzano un sistema di controllo di versione, ma dovrebbero farlo anche studi piccoli o persone alle prime armi. Lavorare a un progetto su piccola scala permette di potersi concentrare anche sull’apprendimento di una nuova tecnologia di vitale importanza durante lo sviluppo.

Implementare un sistema di controllo di versione ti permette di ripristinare il codice a una versione precedente se la nuova non dovesse più funzionare ed è un ottimo strumento per tenere traccia di tutte le modifiche apportate al progetto. Ciò permette di isolare con maggiore rapidità il punto in cui è stato introdotto un problema. Gli studenti dei corsi Online Blended che sviluppano un progetto in Unreal Engine o Unity, imparano ben presto ad integrare soluzioni di version control per ottimizzare il flusso di lavoro, monitorare i diversi progetti in engine e le revisioni apportate alle risorse grafiche come i molteplici asset che compongono un videogioco.

Diventa anche tu uno sviluppatore di videogiochi 

Se il mondo dello sviluppo di esperienze interattive ti affascina, puoi valutare di iscriverti a uno dei nostri corsi di Game Design e Game Programming, Concept Art e Game Art 3D. Per ricevere maggiori informazioni sulla nostra offerta formativa puoi contattarci via e-mail o telefonicamente.