Development

GS programming

Diventare Audio Programmer

[del 28/05/2010] [di Davide Pensato]
L'Audio Programmer è una figura professionale molto importante ma altrettanto difficile da trovare. È infatti un programmatore con competenze nel campo dell'audio.

Come descritto in un precedente articolo, fino a qualche anno fa un programmatore si occupava di molti aspetti di un videogioco: gameplay, engine grafico, player di animazioni, ecc. All'interno di un team la gestione dell'audio veniva assegnata a chi per passione si dedicava alla musica o all'editing video, sviluppando competenze di composizione o pratica di uno strumento musicale.

Negli anni, crescendo l'esigenza di qualità, è nato il bisogno di specializzazione. Una competenza generica nel campo musicale o di sound design è diventata condizione necessaria ma non sufficiente per essere Audio Programmer.

Descrizione del ruolo

In questo articolo descriveremo il ruolo e le competenze necessarie per questa figura fondamentale nel processo d'integrazione audio di un videogioco.

Per prima cosa l'Audio Programmer si occupa di analizzare la piattaforma di sviluppo, con specifico interesse per le caratteristiche audio: memoria dedicata, accelerazione hardware, numero di voci, formati supportati etc.

Questa analisi è importante per due motivi. Innanzitutto per fornire supporto all'Audio Director nella fase di design, esponendo le limitazioni della piattaforma per dare un'idea chiara di cosa si può fare e cosa no. Per fare un esempio, se a tutti appaiono ovvie le differenze tra i sistemi audio di Playstation 2 e Game Boy Color, altrettanto non si può dire per Playstation 3 e Xbox360 e un'analisi a supporto del design è necessaria.

Il secondo aspetto influenzato dall'analisi della piattaforma è la progettazione del Sound Engine (la parte di software che si occupa di gestire l'audio e interfacciarlo con il resto del gioco). Dopo aver studiato l'interfaccia di basso livello (low level API) della piattaforma, l'Audio Programmer realizza la propria interfaccia di alto livello, chiamata Sound Engine proprietario poiché appartiene all'azienda che la sviluppa internamente. In questa fase si lavora a stretto contatto con il Team Audio, le cui idee di design vengono di fatto implementate. Caso particolare sono i progetti multi-piattaforma. Sebbene si possa fare l'analisi di ogni piattaforma e realizzare un proprio Sound Engine che le supporti tutte, molto spesso ci si affida a middleware commerciali, già predisposti per interfacciarsi con le principali console di gioco. Si identifica la soluzione più adatta alle esigenze del progetto e la si integra nel proprio motore di gioco.

L'Audio Programmer si occupa infine dell'integrazione dei contenuti audio nel gioco. Più che l'inserimento diretto via codice, uno dei sui compiti principali è quello di fornire al Team Audio più libertà e controllo possibile, creando tool (strumenti software dedicati all'audio) che permettano l'integrazione di ciò che è stato definito nel design. Questi tool offrono caratteristiche generiche che possono essere sfruttate in futuro ma anche richieste specifiche per i singoli progetti.

L'integrazione è la fase cruciale e spesso avviene in tempi ristretti. La produzione di contenuti è importante per la qualità dell'audio di un videogioco, ma quello che fa la differenza è il modo in cui questi contenuti sono implementati: l'interazione con il gameplay, l'uso intelligente di musica interattiva per sottolineare i momenti di apice dell'azione, ecc.. Prendiamo l'esempio dei passi, di cui abbiamo molte varianti: camminata, corsa, frenata, scale, il tutto su differenti superfici. Per quanto un sound designer possa creare audio di qualità, l'implementazione dipende totalmente dall'Audio Programmer e da come collega ogni singolo suono alle azioni.

Importanza della specializzazione

Come si diceva all'inizio dell'articolo, l'Audio Programmer non è un programmatore generico assegnato all'audio per mancanza di altri compiti. La posizione deve essere ricoperta da persone con conoscenze approfondite di audio digitale e la capacità di analizzare e sfruttare le caratteristiche delle diverse piattaforme di sviluppo. Servono conoscenze sui formati di compressione, tecniche di buffering, streaming oltre che una solida base di teoria dei segnali.

Andiamo ad analizzare le competenze richieste negli annunci di lavoro per la figura di Audio Programmer, così da renderci conto di come le sue caratteristiche siano diverse da quelle di un normale programmatore.

Chiaramente non si può fare a meno delle competenze comuni a tutti i ruoli di programmazione. Eccone un elenco generico:
  • Comprovata conoscenza dei linguaggi C, C++
  • Laurea in discipline informatiche
  • Conoscenze di trigonometria e algebra delle matrici
  • Capacità di raggiungere gli obiettivi
  • Passione per i videogiochi

Quelle che a noi interessano sono le competenze specifiche che definiscono inequivocabilmente il ruolo dell'Audio Programmer:
  • Conoscenza approfondita dell'elaborazione del segnale audio (mixaggio, frequenze di campionamento, formati di compressione, filtraggi, riverberi, audio 3D posizionale, ecc...) e della sintesi sonora
  • Esperienza nell'uso di Audio API come XACT, SCREAM, FMOD o Direct Sound.
  • Esperienza nell'uso di strumenti di sound design e post-produzione audio quali Pro Tools, Sound Forge, Waves, Sequencer MIDI etc.
  • Un background musicale e competenze di composizione non sono essenziali ma rappresentano un plus
  • Intelligenza creativa nell'affrontare le problematiche
  • Ottima capacità comunicativa e attitudine al lavoro di squadra in un team eterogeneo

Pur essendo un elenco generico, riassume abbastanza bene i requisiti richiesti in tutti gli annunci per il ruolo di Audio Programmer. Appare chiaro che tale figura professionale è estremamente specializzata e necessita di una formazione specifica, unita a una forte passione per l'audio.

Per completare la nostra descrizione è importante soffermarsi sugli ultimi due punti del precedente elenco. Sono aspetti spesso trascurati ma capaci di fare la differenza in un team che prevede interazioni tra persone con formazione e competenze eterogenee.

Intelligenza creativa

Pur rimanendo una figura estremamente tecnica, una visione artistica del processo produzione\integrazione audio completa senza dubbio il profilo di un Audio Programmer. È fondamentale essere creativi durante tutto il processo di definizione delle caratteristiche tecniche e ancora di più durante l'integrazione dei contenuti audio. Si dovrà infatti continuamente interagire con le menti creative del Team Audio che spesso pongono problematiche che astraggono dalle funzionalità delle API, per realizzare effetti più o meno realistici ma funzionali al gioco.
Inoltre per tutta la durata del progetto si avrà a che fare con materiale creativo, e spesso si dovranno inventare soluzioni che rispettino le caratteristiche audio o musicali dei contenuti, rendendo trasparenti eventuali limitazioni tecniche.

Comunicazione con il Team Audio

Altro aspetto spesso sottovalutato è la comunicazione con il Team Audio. Per trovare soluzioni ottimali l'Audio Programmer deve aver la capacità di interpretare esigenze espresse con concetti di audio design. I membri del Team Audio si esprimono usando una terminologia differente da quella legata alla programmazione. Si parla di play, loop, synch e via dicendo. Una comunicazione pro-attiva e la capacità di interpretare il linguaggio “audio-musicale” permette una migliore soluzione di ogni problematica di design. Un Audio Director potrebbe richiedere la realizzazione di un sistema che cambi l'intensità della musica in base alle fasi di gioco. Introdurrà concetti di musica sospesa, base ritmica che entra ed esce, cambi a tempo con le misure musicali. Tutto questo può essere realizzato sia con una gestione multi-stream sia con un MIDI multicanale. L'Audio Programmer deve essere in grado di interpretare il linguaggio del designer e allo stesso tempo riportargli le due diverse soluzioni facendogli capire le implicazioni a livello di composizione.

Laureatosi in Ingegneria delle telecomunicazioni al Politecnico di Milano, inizia l'avventura negli Studios milanesi di Ubisoft, con il ruolo di Audio Director. Nel giro di un paio d'anni diventa responsabile del reparto audio entrando nel Board of Directors di Ubisoft Studios Milano. Il 1 Gennaio 2007 fonda la propria società (dpstudios) che offre servizi di consulenza per il game audio. Collabora con i principali studi di sviluppo italiani, oltre che a progetti con clienti internazionali. Nel 2009 è docente al Master in Computer Game Development dell'Università di Verona e intraprende un progetto didattico specifico sull'audio nei videogiochi.



« torna all'elenco sviluppo  •  tutti gli articoli correlati »

 
 
Solo i membri possono partecipare ai commentiiscriviti gratuitamente »
 
GS programming

GS programmingLe categorie di suoni in un videogioco[di Davide Pensato] [01/10/2010]

Come abbiamo visto in precedenza, nel processo di produzione audio sono coinvolte molte figure professionali e i contenuti creati hanno caratteristiche diverse a seconda della loro funzione nel contesto del gioco. Possiamo individuare quattro categor...

[0]
 
Epic Games

Epic GamesProject Sword su dispositivi iOS[di Nicola Congia] [02/09/2010]

Project Sword di Epic, la vera star della conferenza di Apple la scorsa notte, è il primo gioco basato sull'Unreal Engine 3 per la piattaforma iOS, e molti pensano che questo sia un salto qualitativo importante in termini di grafica 3D per i disposi...

[0]
 
GS programming

GS programmingDiventare Audio Programmer[di Davide Pensato] [28/05/2010]

L'Audio Programmer è una figura professionale molto importante ma altrettanto difficile da trovare. È infatti un programmatore con competenze nel campo dell'audio. Come descritto in un precedente articolo, fino a qualche anno fa un programmator...

[0]
 
Operation Flashpoint: Dragon Rising

Operation Flashpoint: Dragon RisingStrategie per il tuning degli asset (parte 1)[di Alessandro Monopoli] [10/03/2010]

Per questo articolo usciamo un pochino dal seminato e non parleremo di cose direttamente legate con OF:DR. Vorrei discutere con voi di alcune strategie per il tuning degli asset, in particolare le texture, per poter avere la massima qualità in og...

[0]
 

tutti gli articoli di sviluppo »

  
  |  REGISTRATI »