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.

Aziende 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.. 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..

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"). 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.

Professioni legate al design

Game designer 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.

Lead designer 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.

Level designer 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.

Sceneggiatore

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.

Professioni legate alla programmazione

Programmatore

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.

Capo programmatore 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.

Programmatore di engine e tool 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.

Programmatore di grafica ed effetti speciali 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.

Programmatore dell'intelligenza artificiale 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.