Loading AI tools
organizzazione Da Wikipedia, l'enciclopedia libera
Lo sviluppatore di videogiochi è colui che realizza applicazioni videoludiche, ovvero software interattivi di intrattenimento. Una società di sviluppo di videogiochi è un gruppo di sviluppatori con una comune ragione sociale, che sviluppa tali prodotti.
Quando ci si riferisce a un'azienda che realizza software videoludici il termine corretto è "sviluppatore di videogiochi", mentre la figura del publisher in Italia viene identificata come editore di videogiochi. Nel mercato, si aggiunge un terzo fattore economico, chiamato distributore, società che si occupa - appunto - della distribuzione delle confezioni complete del prodotto all'interno dei propri mercati di riferimento, sia nella GDO sia nei singoli punti vendita.
Il termine sviluppatore di videogiochi può essere attribuito indistintamente a diverse figure professionali: programmatore, grafico 3D, grafico 2D, illustratore, direttore artistico, autore, caposviluppatore, produttore e project manager.
Uno studio di sviluppatori, come accennato, è un'azienda che progetta e realizza il software del videogioco. Uno studio è una particolare divisione di una compagnia produttrice, che agisce in maniera molto indipendente dal resto della compagnia, pur dipendendo economicamente da essa[1]. L'editore, che può essere la stessa compagnia che effettua anche lo sviluppo, è l'azienda responsabile della parte finanziaria, della fabbricazione di supporti fisici (dischi, manuali di istruzioni...) e del marketing del videogioco. Spesso l'editore è anche distributore del gioco, ovvero si occupa del trasporto e della vendita al dettaglio, ma anche il distributore può essere un'ulteriore figura aziendale indipendente[2].
Talvolta un produttore di console è anche proprietario unico di uno sviluppatore di videogiochi destinati alle proprie console, in questo caso si parla di sviluppatore first-party (traducibile come "di prima mano" o "di prime parti")[3] e di relativi titoli first-party prodotti; uno sviluppatore non completamente posseduto dal costruttore di console, ma comunque legato da un contratto esclusivo di sviluppo con quel costruttore, è uno sviluppatore di seconde parti (second-party); infine uno sviluppatore di terze parti (third-party) è un'azienda indipendente senza partecipazioni dirette del costruttore.
Un assetto standard per un progetto di sviluppo valido varia in modo molto eterogeneo a seconda delle esigenze dello sviluppo del progetto stesso. Di norma, si possono rintracciare delle figure chiave, come 1 produttore, diversi programmatori, almeno 1 autore di giochi, diversi grafici - suddivisi per competenze necessarie, 1 progettista del suono e i game tester. Più che di una gerarchia in senso stretto, parliamo però di un sistema di coordinamento decisionale che prevede un forte interscambio di informazioni tra tutti i soggetti, permettendo così la flessibilità di uno sviluppo che si adatta alla risoluzione dei problemi in modo ottimale, ad esempio nel caso in cui ci sia un problema tecnico tra un grafico e un programmatore, il produttore può intervenire direttamente eliminando il problema alla radice (ad esempio coinvolgendo il game designer per eliminare del tutto la presenza del problema). La soluzione, in questo caso, potrebbe anche essere proposta direttamente dal game designer, richiedendo al produttore soltanto l'approvazione, in un processo rapido e tuttavia codificato e tracciabile (attraverso sistemi di controllo di processo avanzati). Di norma, è però il produttore ad avere l'ultima parola in caso di contrasti all'interno del gruppo di lavoro.
Il game designer (termine usato anche per indicare un autore di giochi non elettronici) è la figura principalmente responsabile del gameplay e del “fattore divertimento” del gioco. È l'ideatore dei contenuti e delle regole e non è necessariamente un programmatore. Sfruttando la propria esperienza e le proprie abilità, deve creare il miglior gioco sulla base di determinate circostanze, come la piattaforma, il genere e il pubblico. Comincia scrivendo e diagrammando il progetto all'interno di un documento di design, utilizzando strumenti come screenshot e diagrammi d'interfaccia, tabelle e modelli di script. Nel corso dello sviluppo, il game designer aggiorna i documenti in modo che il resto del gruppo sia sempre a conoscenza dell'attuale stato del gioco. Il documento di design, tuttavia, non resta solo un'idea iniziale: nel corso del progetto potrebbe essere soggetto a svariate modifiche e aggiunte, come nuovi personaggi, mondi, schemi di controllo, sistemi, interfaccia, trama ed enigmi. Intanto che il progetto su documento prende forma, è buona prassi per un game designer giocarlo costantemente, in modo da assicurarsi che vi sia il giusto livello di bilanciamento, difficoltà e divertimento. È informato costantemente dei risultati di playtesting, così da capire in quali aree il gioco richiede particolari attenzioni. Il game designer, oltre a lavorare assieme a un gruppo di altri designer, collabora strettamente con le altre aree del team, in modo da supervisionare tutti gli elementi sviluppati. Non è raro che un progetto abbia più di un game designer, i quali si dividono le responsabilità in base alla loro esperienza e ai propri interessi.
Un lead designer esegue molti degli incarichi menzionati per il game designer ma soprattutto rappresenta il punto di riferimento per gli altri membri del gruppo di design e del progetto per quanto concerne la sua area, in modo da raggiungere gli obiettivi di produzione prefissati. Assieme al produttore, ha potere decisionale riguardo alle scelte di design, specialmente nei casi in cui queste non implichino nessun cambiamento radicale negli obiettivi e tempi di sviluppo. Il lead designer è responsabile della selezione degli altri designer del team e talvolta si occupa di presentare il gioco ai media.
Nello sviluppo di un gioco 3D, un level designer si occupa di costruire l'architettura interattiva (strutture e terreno naturale) per un segmento del gioco. Ciò significa che egli implementerà specifici aspetti del gameplay in una determinata parte del progetto, dal momento che molti giochi tridimensionali usano la struttura del mondo come base del gameplay. L'equivalente del level designer di un gioco che non si occupa dell'interazione tra spazi 3D è il mission (o campaign) designer. Tale ruolo è appropriato a generi videoludici come GdR o RTS, in cui i designer usano degli editor specifici per posizionare terreno e risorse. In ogni tipo di gioco, il level design può includere obiettivi, abilità e comportamenti dei nemici.
Gli sceneggiatori ricercano e creano la trama (quando presente) alla base del mondo di gioco, presentata attraverso il testo su schermo, i dialoghi dei personaggi e le scene d'intermezzo. In base al tipo di gioco, la realizzazione può essere tanto basilare (semplice testo su menu, voce fuoricampo) quanto complessa (conversazioni a bivi). Gli sceneggiatori lavorano a stretto contatto con i designer in modo da comprendere e proporre ogni possibile percorso attraverso il gioco. Collaborare con i designer è inoltre cruciale per riuscire a mantenere il giusto bilanciamento tra meccaniche e trama, attraverso ciascun potenziale percorso del gioco. Dal momento che i propositi e lo stile variano ampiamente da gioco a gioco, il contratto di uno Screenwriter è spesso limitato a una sola opera.
Il programmatore è chi scrive il codice sorgente del videogioco in sviluppo. A seconda dell'anzianità e delle conoscenze, viene classificato come Junior o Senior della propria area di competenza. Agli inizi della propria attività lavorativa all'interno di uno studio di sviluppo, deve apprendere le regole di programmazione degli strumenti di lavoro utilizzati dall'azienda stessa. Di norma, il programmatore - in base al suo percorso di studi e alle capacità personali - si specializza in diversi ambiti quali l'IA, gli effetti grafici, la fisica, la programmazione del suono, i sistemi di collisione e molte altre aree dello sviluppo.
La figura del capo programmatore (lead programmer) unisce incarichi prettamente manageriali con gli impegni di un tradizionale programmatore. Il suo compito non sarà limitato alla scrittura di codici complessi, ma egli dovrà anche disporre del know-how necessario all'organizzazione e alla gestione di un team, poiché rappresenta un punto di congiunzione tra il produttore e il team di programmazione. Il capo programmatore dovrà guidare il gruppo nella scelta della tecnologia da usare (es. Direct3D o OpenGL) e decidere quali incarichi affidare a ciascun elemento. Oltre a supervisionare il lavoro del team e a contribuire enormemente al processo di programmazione, egli necessita di lavorare a stretto contatto con il team artistico e di design, partecipando alla definizione delle milestone. Non di rado, il capo programmatore è un esperto in una o più specialità di programmazione, come intelligenza artificiale, rendering 3D, animazione 3D, fisica, multigiocatori/networking o audio. Ovviamente, la posizione ricoperta lo porta a essere responsabile dell'intera struttura e implementazione del codice nel gioco.
Un programmatore di engine (engine programmer) si occupa di realizzare le fondamenta del codice alla base del gioco, scrivendo il codice di programmazione dietro al rendering e alle funzionalità dello stesso. Per gran parte delle piattaforme di gioco, al programmatore di engine è richiesta la conoscenza del linguaggio C/C++, talvolta di Assembly, di concetti matematici, grafici, rilevamento di collisioni e gestione di database.
Un programmatore di tool (tools programmer) crea invece gli strumenti in grado di agevolare il lavoro degli artisti e dei designer con l'engine (come plug-in per software di grafica in grado di aiutare a integrare texture o sfondi nel gioco). Migliore è lo strumento, più rapidamente possono lavorare designer e artisti, velocizzando sensibilmente i tempi di produzione.
Generalmente, a tutti i programmatori è richiesta una minima esperienza nella programmazione di grafica, ma nel caso del programmatore di grafica (graphics/special effects programmer) è essenziale che egli disponga di tutte le conoscenze tecniche per realizzare oggetti tridimensionali oltre a immagini in 2D. Un'enorme cultura matematica (specialmente riguardante l'algebra lineare e i calcoli avanzati) è un'abilità cruciale per questo ruolo. Come programmatore grafico c'è bisogno di comprendere le complessità dello skinning (il coprire) modelli tridimensionali, dell'importare file da programmi di animazione 3D e dell'unione delle animazioni. Tuttavia, egli deve anche possedere l'occhio artistico che gli permetta di implementare realistici e affascinanti effetti particellari (come fuoco ed elettricità), o almeno l'abilità di lavorare con il team di artisti per raggiungere l'effetto desiderato. Inoltre, è necessario che sia in grado di ottimizzare i suoi lavori, in modo da capire come visualizzare tutto in tempo reale con il più alto frame rate.
Un programmatore di intelligenza artificiale (artificial intelligence programmer) scrive essenzialmente le regole che governano il comportamento delle entità all'interno del gioco. Un programmatore di intelligenza artificiale alle prime armi deve apprendere gli algoritmi di base e i concetti dietro l'IA, come il path finding, i pattern e gli alberi di decisione. Tra i concetti più avanzati nel campo dell'IA figurano le reti neurali, la vita artificiale, gli algoritmi genetici e le macchine a stati finiti. L'abilità principale dell'AI programmer sta nell'implementare complessi comportamenti di gioco, che funzionino in tempo reale senza eccessivi sforzi del processore.
Quella di programmatore multiplayer (multiplayer/networking programmer) è una tra le figure più richieste in un team di sviluppo, anche grazie al recente successo dei giochi online. I giochi online hanno come unica sfida l'essere basati su un'enorme lista di variabili: tra queste figurano la potenza del sistema dell'utente, le capacità in continuo cambiamento delle reti, l'architettura dei server di gioco, il sistema di pagamento, la gestione dell'esperienza in-game e alcuni sistemi di sicurezza. I giochi online sono minacciati da gruppi di hacker, che possono drasticamente influenzare la soddisfazione e gratificazione dell'utente. Dal momento che questo tipo di giochi offre denaro in base alla quantità di tempo che i giocatori spendono online, il programmatore di rete è responsabile del successo a lungo termine o del fallimento di un prodotto e, talvolta, di quello dell'intera compagnia. Oltre alle conoscenze sopraccitate, egli deve disporre di un background composto dai campi standard della programmazione: architettura client/server, sicurezza di rete, protocolli di base (es. TCP/IP o UDP), sincronizzazione, creazione e gestione di database e interfacce di rete come DirectPlay e Winsock.
Il direttore artistico è, tra gli artisti, la figura con la maggiore conoscenza degli strumenti, delle tecnologie e dei metodi utilizzati. Le sue idee creative e abilità artistiche hanno notevole influenza sulla forma del progetto e, laddove necessario, contribuisce alla correzione dei problemi che si verificano durante il ciclo produttivo. Il direttore artistico lavora strettamente con il produttore e con il game designer per gestire l'attività produttiva del team artistico.
A seconda dei software utilizzati per la creazione del prodotto, è richiesta la conoscenza di uno dei più comuni pacchetti 3D, come 3D Studio Max, per realizzare i livelli proposti dai designer. Nei grandi team, il level builder lavora a stretto contatto con il level designer per posizionare strutture, oggetti e personaggi all'interno dei livelli del gioco. A seconda degli standard di produzione delle differenti società, il level builder si occupa sia della realizzazione dei singoli elementi della scena sia dell'allestimento della stessa.
Proprio come un designer industriale, un 3D model builder elaborerà oggetti fisici, come veicoli, mobili, armi e così via. Per questa ragione, una delle abilità richieste da tale incarico è un'estrema velocità di realizzazione degli oggetti, in modo da creare una folta libreria di oggetti basilari nel minor tempo possibile. Inoltre, deve anche essere in grado di intuire quali elementi saranno invisibili o poco visibili all'interno del gioco, in modo da non sprecare risorse e tempo nella realizzazione di dettagli futili.
L'artista 2D si occupa di realizzare bozzetti e artwork per fornire un punto di riferimento per l'intero team di sviluppo insieme all'art director. Realizza anche i contenuti temporanei (chiamati tecnicamente placeholder) da inserire nel gioco. A seconda delle tecniche di produzione, produce anche lo storyboard per le sequenze animate e le scene d'intermezzo, oltre a essere responsabile di quelle che sono le basi del look finale di buona parte dell'opera.
Uno specialista in texture deve realizzare la superficie visibile che ricopre le strutture, gli ambienti, le creature e gli oggetti in un gioco tridimensionale. Da una parete di marmo ai volti dei personaggi, passando per la pelle di un animale, la credibilità del mondo dipende dal lavoro del texture artist. Non sono molte le tecniche comunemente utilizzate nella creazione di texture (es. hand painting, algorithmic textures, bump mapping): il texture artist deve necessariamente conoscerle tutte ed essere in grado di scegliere la più adatta a un determinato scopo.
Lavorando assieme agli artisti 3D, i responsabili delle scene d'intermezzo (cut scene) seguono lo storyboard in modo da generare delle sequenze filmate di elevata qualità, siano esse animazioni pre-renderizzate o scene in-game che fanno uso del motore grafico del gioco. Tutte le cut scene lineari (non interattive) richiedono movimenti virtuali della telecamera, illuminazioni, animazioni di personaggi e oggetti, effetti speciali e sfondi. Questa fase dello sviluppo è molto simile all'animazione tradizionale nel campo del cinema e, infatti, le scene pre-renderizzate vengono talvolta affidate a compagnie d'animazione piuttosto che realizzate internamente. Le sequenze d'intermezzo in-game, invece, sono spesso create dal team di sviluppo, e possono essere realizzate nel corso dello sviluppo globale, piuttosto che essere affidate a una sola persona.
Il termine realizzatore dei modelli 3D (3D character builder) sintetizza quella figura professionale che si occupa della realizzazione dei personaggi, i quali possono essere sia modelli in bassa risoluzione che in alta, a seconda della piattaforma e del design del gioco. Per questo motivo, egli lavorerà a stretto contatto con i concept artist, con i programmatori e, talvolta, con i possessori di licenze esterne, in modo da convertire gli artwork in personaggi tridimensionali. Per il ruolo del character builder è dunque richiesta una buona conoscenza dell'anatomia animale e umana, in modo da creare personaggi credibili.
Similmente a quanto accade nel settore dell'animazione in 2D, un animatore dei modelli 3D (3D character animator) deve avere una buona conoscenza dei movimenti delle creature e delle espressioni umane. Anche il più riuscito tra i personaggi nel mondo di gioco può sembrare terribile se animato male, o se non gode del giusto peso, momento o personalità. Un'ulteriore sfida è rappresentata dalla frequente richiesta di movimenti naturali e verosimili per creature e personaggi fotorealistici. Negli ultimi tempi, la tecnica del motion capture si sta facendo ampia strada all'interno dell'industria videoludica, richiedendo nuove specializzazioni nel campo dell'animazione.
Similmente a quanto accade nella creazione di un prodotto cinematografico, la figura di ingegnere/designer del sonoro è deputata alla realizzazione di tutto il materiale audio all'interno del gioco, fatta eccezione per le musiche. Egli si occupa infatti degli effetti sonori, sia relativi ai rumori ambientali (vento, acqua, cani che abbaiano), sia a ciò che avviene all'interno del mondo di gioco (il rumore di passi o il tonfo di un'auto che impatta). La realizzazione di tutti questi suoni richiede un lavoro in coordinazione con il team di design e programmazione, in modo da ottenere il miglior risultato possibile. In determinate circostanze, può capitare inoltre che il sound designer sia anche l'elemento responsabile del doppiaggio dei personaggi o delle tracce musicali, mentre vengono sempre più utilizzate tecnologie innovative come audio 3D, musiche che cambiano dinamicamente e sintesi del suono.
Per via delle ovvie differenze stilistiche che esistono da gioco a gioco, l'incarico di un compositore è spesso limitato a un singolo progetto, sebbene possano esserci altre figure, all'interno di un team di sviluppo, in grado di contribuire alla realizzazione delle musiche. Progetti differenti hanno differenti esigenze musicali, che spaziano da temi orchestrati a musiche techno, fino ad arrivare a brani sintetizzati per piattaforme portatili. Per questioni di budget, la maggior parte delle musiche nei videogiochi viene realizzata utilizzando sintetizzatori, sebbene sempre più spesso vengano utilizzate musiche suonate da strumenti reali o da intere orchestre per aumentare l'effetto scenografico e drammatico.
L'ingegnere audio (audio programmer/engineer) è l'elemento di un team di sviluppo il cui incarico è realizzare i software e gli strumenti in grado di supportare tutti gli elementi audio (suoni e musiche) nei giochi. A seconda di come questi vengono implementati in particolari progetti, un programmatore audio deve necessariamente conoscere il funzionamento dello standard MIDI, della registrazione e del missaggio dell'audio, della sintesi in tempo reale, degli standard di compressione e di interfacce interattive come DirectMusic. Quella di audio engineer non è una specializzazione molto comune al momento, ma dato che i giochi e la tecnologia utilizzata diventano sempre più sofisticati e cinematografici, la necessità di specialisti dell'audio sta aumentando costantemente. Inoltre, le diverse console (DS, Xbox 360, PlayStation 3) richiedono differenti metodi per riprodurre musica e suoni, richiedendo così ulteriore specializzazione.
Il regista videoludico si occupa di dirigere lo staff per lo sviluppo del gioco. Spesso la figura del game director coincide con quella del game designer.
Il produttore, proprio come avviene in ambito cinematografico, ha un ruolo di guida e supervisione: assiste il team di sviluppo non solo per quanto riguarda il budget o i tempi di realizzazione, ma anche nella gestione e supervisione quotidiana dei diversi membri del gruppo. Per via dell'enorme responsabilità nel mantenimento delle scadenze, la figura del produttore riveste un ruolo fondamentale nel processo di design, per assicurarsi che il progetto non vada oltre i tempi o il budget prefissato. Inoltre, hanno il compito primario di comunicare e aggiornare i publisher, in modo tale che il team sia in grado di svolgere il proprio lavoro nel migliore dei modi. È cruciale disporre di ottime abilità comunicative, oltre alla capacità di ovviare ai diverbi e ai problemi di comunicazione che possono insorgere tra i diversi sotto-team. Nei casi in cui vada presa una scelta importante, il produttore dovrà disporre di tutte le informazioni rilevanti, poiché è il responsabile di ogni decisione e rischio intrapresi dal team.
Sebbene la figura del project manager coincida spesso con quella del produttore, talvolta si riferisce a un ruolo che si occupa esclusivamente di uno degli incarichi principali di quest'ultimo: il processo di definizione del budget e delle scadenze. Come già visto, tale processo include l'assicurarsi che il team segui i limiti temporali ed economici definiti in fase di pre-produzione, assegnando obiettivi e scadenze (date di consegna) e seguendo costantemente ciascun membro del team.
Come suggerito dalla sua denominazione, l'associate (o assistant) producer collabora al fianco del produttore, ricevendo, in talune compagnie, responsabilità diretta su particolari segmenti della produzione. In questi casi, agisce come un subalterno del produttore nella gestione di questo segmento con differenti livelli di autonomia in base all'anzianità e le capacità personale. Alcuni esempi sono la localizzazione, la gestione degli assett (tutti gli elementi grafici del gioco) o quella del sito Intranet del team. È una figura presente anche nelle strutture del publisher e, in questi casi, può essere utilizzato - per giochi con una larga comunità di fan - per mantenere vive le chat room, scrivere sui forum, aggiornare i contenuti del sito, ricevere riscontri dal pubblico.
Il game tester o in breve tester è il collaudatore del gioco. La sua responsabilità principale è quella di scovare e riportare bug per aiutarne l'eliminazione, verificare il bilanciamento all'interno del gioco e le sue diverse caratteristiche. Si tratta di un membro stipendiato della squadra di sviluppo, che non va confuso con un beta tester, che invece di solito è un volontario non professionista[4].
Testare un gioco non corrisponde semplicemente al giocarlo, ma vuol dire applicare metodologie di testing apprese sul campo, oltre ad assistere il team di design nell'identificare sbilanciamenti nel gameplay. Il game tester deve avere una grossa conoscenza in ambito videoludico e deve essere in grado di notare qualsiasi deviazione da una corretta forma di design, non importa quanto essa sia piccola. Spesso un tester deve concentrarsi su problemi specifici, mentre un'eccellente abilità espositiva è fondamentale per poter esibire il risultato al resto del team.
Sulla base dell'esperienza ottenuta come game tester, il capo collaudatore (lead tester) si preoccupa di organizzare e guidare gli altri componenti del gruppo di testing. Egli lavorerà attivamente al fianco di produttore e designer, in modo da creare e implementare piani di testing (come le liste di controllo di tutte le caratteristiche che necessitano di essere controllate in una nuova versione del gioco). Il capo collaudatore si preoccuperà inoltre dell'organizzazione e formattazione del database dei bug, oltre a fare da punto di congiunzione tra la sezione test e il resto del team.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.