Software di sviluppo dei giochi: un processo che si discosta dall’ingegneria tradizionale e coinvolge le arti

La necessità di processi diversificati per lo sviluppo di software di gioco fa di RacKore la nuova realtà, che fonda la sua ragione di essere sullo sviluppo di software e sulla fornitura di Game Servers a doppia fruizione.

Avatar di RacKore

a cura di RacKore

Il software per creare giochi è un tipo di applicazione utilizzata non solo per l'intrattenimento, ma anche per scopi seri che possono essere applicabili a diversi domini come l'istruzione, il mondo del business e l'assistenza sanitaria. La natura multidisciplinare dei processi di sviluppo del gioco che combinano suono, arte, sistemi di controllo, intelligenza artificiale (AI) e fattori umani, rende la pratica di sviluppo di software per giochi diversa dallo sviluppo di software tradizionali

Con il rapido progresso della tecnologia informatica amplificato anche dalla pandemia sanitaria in corso, l'importanza dell'ingegneria del software nella nostra vita quotidiana è in aumento. Colpisce ogni aspetto della nostra vita oggi, compreso il lavoro, la vita, l'apprendimento e l'istruzione. Una nuova e popolare modalità di intrattenimento e un'importante applicazione della tecnologia sono i software di gioco (il gaming), che sono diventati sempre più usati da persone di tutte le età. Nella cultura odierna, la tecnologia è facilmente accessibile ed è diventata più conveniente; sempre più persone amano giocare e sono anche motivate a progettare i propri giochi. 

Sviluppo dei software di gioco: un processo dispendioso

I software di gioco sono applicazioni software installate su dispositivi hardware come console per videogiochi, computer, dispositivi palmari e PDA (Personal Digital Assistants); sono ormai diventati un'industria creativa mondiale, ma a causa delle attività multidisciplinari richieste, il loro sviluppo è un compito molto complesso e spesso molto costoso, anche per gli utenti finali.

La natura multidisciplinare dei processi che combinano suono, arte, sistemi di controllo, intelligenza artificiale (AI) e fattori umani, rende anche la pratica di sviluppo di giochi software diversa dallo sviluppo software tradizionale. Tuttavia, nonostante l'elevata complessità del processo di sviluppo dell'ingegneria del software, l'industria dei giochi sta guadagnando miliardi e creando molte ore di divertimento. Il mercato del gaming in tutto il mondo è cresciuto di oltre il 7-8% all'anno.

La creazione di qualsiasi gioco coinvolge team interfunzionali tra cui designer, sviluppatori di software, musicisti, sceneggiatori e molti altri. Pertanto, le carriere nello sviluppo di giochi sono attualmente diventate altamente stimolanti, dinamiche, creative e redditizie. La capacità di gestire compiti di sviluppo complessi e raggiungere la redditività non è casuale, ma è necessario adottare un insieme comune di buone pratiche per raggiungere questi obiettivi. 

La complessità dei giochi software ha posto molte sfide e problemi nel processo di ingegneria dello sviluppo del software perché coinvolge diverse attività nelle discipline delle arti creative (storyboard, design, perfezionamento delle animazioni, intelligenza artificiale, produzione video, scenari, suoni, marketing e, infine, vendite) oltre ai requisiti tecnologici e funzionali. Questa diversità intrinseca porta a un dominio molto frammentato dal punto di vista sia della teoria sottostante che della metodologia di progettazione. 

I problemi di produzione, sviluppo e test di giochi riflettono solo lo stato dell'arte generale dell'ingegneria del software. Gli esperti affermano che un gioco è un tipo di software che intrattiene i suoi utenti, ma l'ingegneria del software di sviluppo dei giochi affronta molte sfide e problemi se viene seguito solo un processo di sviluppo software tradizionale. 

I tre step del processo di sviluppo di un software per gaming e criticità

Un processo di sviluppo di un software per gaming (GDSE) è diverso da un processo di ingegneria di sviluppo software tradizionale e tutte le fasi del ciclo di vita del processo GDSE possono essere combinate in tre fasi principali: pre-produzione, produzione e post-produzione. La fase di pre-produzione include il test della fattibilità degli scenari di gioco target, comprese le strategie di marketing per l'ingegneria dei requisiti; la fase di produzione prevede la pianificazione, la documentazione e gli scenari di implementazione del gioco con suoni e grafica. L'ultima fase di post-produzione prevede test, marketing e pubblicità del gioco. 

A causa dell'elevata concorrenza e dell'estrema domanda del mercato, le società di sviluppo di giochi a volte riducono il loro processo di sviluppo in modo da poter essere le prime sul mercato. Questa riduzione del processo di sviluppo influisce decisamente sulla qualità del gioco. 

A causa di questi tipi di complesse attività di gestione del progetto, il processo di ingegneria del software di sviluppo del gioco diverge dallo sviluppo del software tradizionale. Pertanto, diventa importante ora indagare sulle sfide o sui problemi affrontati dalle organizzazioni di sviluppo di giochi nello sviluppo di giochi di buona qualità.

Metodi di sviluppo dei software e giochi di buona qualità

Partiamo da una premessa, il metodo di sviluppo di un software è una procedura sistematizzata per raggiungere l'obiettivo di produrre un prodotto funzionante entro budget e tempi previsti

Vediamo le metodologie di sviluppo maggiormente praticate. 

Il primo è il metodo a cascata, comunemente usato anche nello sviluppo software tradizionale. A differenza dei progetti di gioco, una volta completata la fase di pre-produzione, le attività della fase di produzione propriamente detta, vengono eseguite secondo il modello "a cascata". 

Innanzitutto, le attività vengono sviscerate in base a funzionalità e risorse, quindi vengono assegnate ai rispettivi team. Il team dei requisiti ha trascorso una notevole quantità di tempo nella definizione delle funzionalità e nelle attività di front-end, il che implica un'implementazione tardiva del livello e dei meccanismi. Tuttavia, nel metodo a cascata, è difficile invertire qualsiasi attività perché ognuna è propedeutica alla precedente e alla successiva.

La seconda metodologia di sviluppo è il metodo agile comunemente usato per lo sviluppo di giochi. Questi metodi sono altamente iterativi e non incentrati sulla documentazione. 

La fase di produzione è suddivisa in piccole iterazioni e si concentra sulle caratteristiche più cruciali. Durante la fase iniziale di ogni iterazione, l'intero team si riunisce e fissa obiettivi chiari. Alla fine di ogni iterazione, i risultati vengono comunicati ai clienti. Questi metodi supportano diversi cicli e dinamiche del team attraverso riunioni quotidiane. 

Le metodologie agili più utilizzate nello sviluppo di giochi sono la programmazione estrema (XP), la prototipazione rapida e la Scrum.

Il processo di sviluppo unificato è un altro metodo tradizionale, che si concentra maggiormente sull'analisi dei requisiti e sulla loro conversione in componenti software funzionali. Il documento di analisi dei requisiti include una definizione del concetto di gioco, casi d'uso e definizioni delle risorse. 

Il metodo include cinque discipline: requisiti, analisi, progettazione, implementazione e test. Il processo unificato si basa su una filosofia di quattro elementi chiave: iterativo e incrementale, basato sui casi d'uso, incentrato sull'architettura e guidato dal rischio.

Nell'ingegneria del software tradizionale, la fase di sviluppo di solito coinvolge attività come la progettazione dell'applicazione e la sua implementazione; la fase di produzione è quando il software funziona effettivamente ed è pronto per l'uso. Tuttavia, nel ciclo di vita del processo GDSE, la fase di produzione include il processo di sviluppo, che è la fase di pre-produzione del tradizionale processo di ingegneria del software, e la fase di produzione dell'ingegneria del software tradizionale è in realtà la fase di post-produzione della vita del processo GDSE. 

RacKore: la virtuosa realtà italiana

Consapevoli, dunque, della necessità di processi diversificati per lo sviluppo di software di giochi e dell’architettura di costruzione e implementazione di tutte le funzionalità addizionali, va da sé che tutto ciò debba essere supportato da un'infrastruttura adeguata perfettamente responsiva.

In Italia negli ultimi mesi c’è un’azienda che si è distinta in tal senso: RacKore, nata da un’idea di giovani imprenditori. La novità di questa realtà è che fonda la sua ragione di essere sullo sviluppo di software e la fornitura di Game Servers a doppia fruizione: c’è un’ampia galleria di giochi da acquistare per gli appassionati, e una sezione relativa ai mod, in cui chiunque abbia un'idea di game da realizzare può farlo, da solo o costruendosi una community. 

Tornando al sistema di infrastrutture adeguatamente potenziato per sostenere questa tipologia di giochi, RacKore offre hardware di altissima qualità, di proprietà e collocati in armadi rack propri, i quali utilizzano processori Intel/AMD top di gamma e SSD NVMe di ultima generazione, il tutto affiancato ad una protezione dagli attacchi DDoS efficiente fino a 800Gbit e da un supporto costante 7 giorni su 7 sia via ticket che via live-chat.

Avere hardware propri permette di abbattere notevolmente i tempi di ripristino in caso di problemi o interruzioni, senza dover passare per directory esterne. Per scongiurare tali evenienze, infatti, hanno messo a punto delle procedure di Disaster Recovery, garantendo al cliente un'assistenza efficiente e di qualità.

I server sono situati in Europa; più precisamente a Francoforte sul Meno ed è possibile scegliere su quale nodo ospitare il proprio game server con un up-time del 99,99% garantito. 

La provenienza di hardware e software specifica per ogni cliente viene mostrata nella propria scheda personale entro 5 giorni dall’attivazione del servizio. Avere spazi dedicati permette ai server di non essere costantemente sovraccaricati, consentendogli di supportare ogni tipo di servizio.

In conclusione

È naturale credere che il futuro per lo sviluppo dei giochi anche in Italia possa essere brillante, ma affinché si possa davvero avere un mercato adeguato dobbiamo guardare al modo in cui le abilità rilevanti vengono insegnate dalla scuola primaria fino al livello universitario. 

I giochi sono un ottimo gancio con cui coinvolgere gli scolari, ma dobbiamo iniziare a far riflettere gli studenti attraverso le soluzioni ai problemi in modo logico (ad esempio il pensiero computazionale) e imparare a implementare tali soluzioni nel codice fin dalla tenera età. 

Dobbiamo rendere le studentesse e gli studenti più consapevoli di questo prima che scelgano le loro materie al liceo, che lo sviluppo dei giochi è un valido percorso di carriera per loro. Infine, dobbiamo far capire a studenti e genitori che i giochi per computer sono un'industria seria, che fornisce posti di lavoro e entrate all'economia e non solo un ludico passatempo.