videogame

Page 1

Come nasce un videgioco: Pitch e Prototipo – 1 di Francesco Carucci - lunedì 13 ottobre 2008 Share Prima puntata di una serie di post che cerca di descrivere a sommi capi come nasce e si sviluppa un videogioco a partire dall’idea fino al prodotto bello e inscatolato sugli scaffali dei negozi oppure pronto ad essere scaricato (a pagamento!) da uno dei recenti marketplace virtuali. Il Pitch è la presentazione di un’idea di gioco che un team di sviluppo propone ad un distributore (o Publisher). L’idea è descritta da uno o più documenti e video, spesso e volentieri accompagnati da un piccolo prototipo che mostra a grandissime linee le meccaniche del gioco in una versione più pratica e immediata. Il publisher accetta o rifiuta l’idea in base a considerazioni quasi esclusivamente economiche: molto difficilmente, ad esempio, Electronic Arts accetterà il pitch di un gioco di calcio per, quanto rivoluzionario, perchè ha già nel suo portafoglio la serie di Fifa, mentre Microsoft potrebbe essere più disponibile a considerare un titolo sportivo. Ora non correte tutti a proporre un gioco di calcio a Microsoft, perché se dovesse accettare il pitch, la fase successiva sarebbe molto piu’ complessa: la preproduzione. In preproduzione un piccolo team di sviluppo esplora l’idea del gioco dalla maggior parte dei punti di vista possibili, ne sviluppa la tecnologia di base, i tool di sviluppo, la pipeline che porta gli asset del gioco dall’artista all’engine. Lo scopo della preproduzione è trovare soluzioni economiche al maggior numero possibile di problemi che presumibilmente saranno affrontati in fase di produzione, prima di scalare il team verso la piena produzione con gli enormi costi di gestione che ne derivano. E’ la fase critica del progetto. Le idee chiave della preproduzione sono: piccolo, economico, iterazione. Un ottimo esempio di gioco che ha fatto della (lunga) fase di preproduzione un proprio cavallo di battaglia e’ il recente Spore di Will Wright: il gran numero di prototipi da loro sviluppati prima di entrare in preproduzione gli è servito per comprendere le sfaccettature di una meccanica di gioco estremamente innovativa che non aveva prima di allora alcun titolo dal quale trarre ispirazione. Una buona fase di pre produzione porta ad una fase di piena produzione piu’ svelta ed economica.

Asset? Pipeline? Engine? Si mangiano? Ne parliamo in futuro. Come nasce un videogioco: Produzione – 2 di Francesco Carucci - lunedì 20 ottobre 2008 Share La produzione di un gioco parte ufficialmente al completamento del “Vertical Slice“, che rappresenta, a seconda della tipologia di prodotto, una porzione abbastanza rappresentativa dell’esperienza portata ad un livello di qualità prossimo a quella finale.


La definizione e’ molto ampia, ma l’idea alla base è piuttosto semplice: prima di entrare in produzione si vuol vedere almeno un livello del gioco vicino a come apparirà nella versione da rilasciare, di modo da poter valutare i rischi da affrontare in fase di produzione, quando il team aumenterà in personale e costi per incontrare le esigenze dello sviluppo.

È questa la chiave di volta dello sviluppo di un videogioco: quando si e’ in produzione non c’è più possibilità di salvare la baracca con costi minimi se qualcosa va storto. Ogni errore in questa fase costa carissimo sia in termini di tempi di sviluppo sia, ancora peggio, in termini monetari. Tutti ricordano le traversie di Duke Nukem Forever, famosissimo per essere entrato in produzione anni fa con un engine vecchiotto per l’epoca, quando decidettero di aggiornare la tecnologia rendendola più al passo coi tempi. Tempi che si sono allungati a dismisura perché quell’errore, che avrebbe dovuto essere riconosciuto in preproduzione, è costato anni di sviluppo: il gioco non e’ ancora stato terminato. Ed è stato, per certi versi, fortunato: molti giochi che incontrano difficoltà simili sono chiusi e non vedono mai la luce (Starcraft Ghost di Blizzard?). Lo scopo finale della fase di produzione è produrre tutti i livelli del gioco, gli asset relativi (texture, modelli, animazioni, suoni, ne parleremo più approfonditamente a breve), le feature e giungere più o meno comodamente al Content Lock e Code Complete, quando, rispettivamente, tutti gli asset e il codice del gioco sono pronti e nessuna nuova feature sarà più aggiunta. Riguardo al Code Complete c’è una leggenda da sfatare: al di là del nome, il codice non è completo, restano i bug da fissare e le ottimizzazioni, rimandati alla fase successiva. Code Complete rappresenta semplicemente un punto di non ritorno: da qui in poi al gioco non si aggiunge nulla, si correggono semplicemente i bug e si chiude il progetto. Nella prossima fase: Bug Fixing, testing e crunch. Dove Pizza e Coca Cola regnano incontrastati. Come nasce un videogioco: bug fixing – 3 di Francesco Carucci - lunedì 27 ottobre 2008 Share Dopo mesi dedicati a pitch, prototipo e produzione, siamo finalmente al Code Complete! L’urlo di liberazione e’ spesso annunciato trionfalmente alla stampa mondiale da sviluppatori sorridenti. Peter Molyneux, parlò qualche mese fa con toni pomposi della conclusione dei lavori su Fable 2, mentre noi eravamo chiusi in ufficio a fissare bug. Il Code Complete è infatti solo l’inizio dell’ultima fase di sviluppo di un videogioco: bug fixing e ottimizzazioni. In questo periodo il gioco è virtualmente completo di feature, ma, generalmente, non gira al target framerate (30hz o 60hz), inoltre non è stabile ed è soggetto a vari tipi di crash, magari non rientra in tutte le situazioni nella memoria disponibile, deve essere ancora rifinito sia dal punto di vista visivo sia dal punto di vista della giocabilità.


I tester sono impegnati a giocare e rigiocare livello dopo livello (no, non è affatto un lavoro divertente, tanto meno alle tre di notte) alla caccia di bug e difetti. Questi sono catalogati e inseriti in un enorme database che può contenere decine di migliaia di bug. I programmatori analizzano i bug a loro assegnati dai producer, cercano un fix o li smistano a chi di dovere per ulteriori analisi. Gli artisti ripercorrono texture e modelli per le rifiniture, quando i designer si occupano del bilanciamento del gameplay, correggendo numeri, mappe, script. E’ una fase dei lavori molto eccitante, perché il gioco sul quale si è speso magari un periodo lungo anni, si avvicina velocemente alla sua forma definitiva. E’ anche una fase estremamente stressante, dove le scelte e le decisioni possono essere soffertissime, ma sempre senza possibilità di ripensamenti. Una feature sulla quale si sono spesi magari mesi di lavoro è tagliata perché non c’è tempo di concluderla a dovere: il gioco deve uscire. Parallelamente al bug fixing si svolge il triaging dei bug che consiste nell’individuare i bug nel database che non sono abbastanza importanti, magari sui quali non è conveniente spendere tempo per ragioni economiche: questi bug non sono fissati e sono cancellati dal database. E’ interessante notare come sia matematicamente impossibile testare un gioco (o un software in generale) di modo da assicurare la totale assenza di bug al momento del rilascio; per quanto sia ampio e lungo il testing, qualche bug per forza di cose trova la sua strada verso l’utente finale… E’ la natura dello sviluppo del software. Durante tutta la fase finale, il publisher scrutina i lavori e, basandosi sulle statistiche di bug fix, cerca di prevedere la data nella quale il gioco raggiungerà gli zero bug, e da questa la data di uscita sul mercato per mettere in moto la macchina che porterà il DVD dallo sviluppatore a, si spera, milioni di giocatori. E’ una macchina complessa alla quale daremo un’occhiata nella prossima puntata. Come nasce un videogioco? Marketing e publishing – 4 di Francesco Carucci - lunedì 3 novembre 2008 Share Il gioco completato non è ancora pronto alla commercializzazione in larga scala. Un gioco per console deve prima passare la fase di certificazione, nella quale il produttore della macchina (Nintendo, Microsoft o Sony) testa il gioco rispetto a specifiche chiare e univoche chiamate TCR, affinché il prodotto rispetti gli standard minimi qualitativi e di usabilità della piattaforma. Un gioco per PC, al contrario, passa attraverso la certificazione, più blanda, di comitati regionali che ne controllano la conformità alle leggi locali, magari su sole basi di natura culturale. Un’idea diffusa ma errata indica lo sviluppatore del gioco come l’entità che si occupa interamente di un videogioco, quindi anche della pubblicità, dell’impacchettamento, della distribuzione e del sempre e comunque presente supporto tecnico. Non avviene così, l’ultima fase dello sviluppo del prodotto, quando è ormai concluso e pronto per la distribuzione, è affidata al publisher, nella maggioranza dei casi anche il vero detentore di tutti i


diritti di sfruttamento del marchio. Esempi di publisher sono Electronic Arts, Sony, Microsoft, Ubisoft, Take Two, Vivendi, SEGA. E’ interessante tuttavia la tendenza ormai sempre più diffusa dei publisher ad affidare lo sviluppo vero e proprio del prodotto ai cosiddetti team interni, cioè veri e propri team di creazione e sviluppo di videogiochi interni ai vari publisher, creati dal nulla oppure acquisiti da team indipendenti dopo buone esperienze di collaborazione: Rare e Lionhead, ad esempio, fuorono acquistate da Microsoft ed ora lavorano come team interni, Bioware (autori del recente Mass Effect) fu acquistata da Electronic Arts. Questi team di sviluppo interni hanno comunque una certa autonomia, occupandosi però sempre e solo dello sviluppo: anche in questo scenario, sebbene dal punto di vista legale una sola entità si occupa di tutto il processo di sviluppo, dal punto di vista pratico questo e’ ancora separato in termini di competenze. Ma un gioco per quanto bello non vende senza marketing e senza attenta pianificazione della giusta finestra temporale nella quale immetterlo nel mercato. Questi due aspetti sono assolutamente chiave nel decretare il successo di un titolo. Il budget a disposizione del marketing è enorme, paragonabile (ma spesso anche superiore) al budget a disposizione dello sviluppo: qui si parla di decine di milioni di dollari per far arrivare il messaggio al potenziale target; televisione, radio, web, forum, community, recensioni, ma ora anche social network come Facebook sono gli strumenti a disposizione. La data di rilascio è altrettanto fondamentale: un esempio è Project Gotham Racing 4, un buon gioco ben sviluppato rilasciato in un periodo pieno di altri titoli di richiamo, che quindi ha fallito ai “botteghini”. Dietro le quinte si assiste spesso a “battaglie” fra i publisher per occupare le settimane calde, ad esempio a cavallo del giorno del ringraziamento in USA oppure fine ottobre e inizio novembre per colpire il Natale. L’ultima fase è il videogioco in mano al videogiocatore, l’esperienza e il divertimento che ne ricava. ideogiochi: non solo C++ di Francesco Carucci - lunedì 17 novembre 2008 Share La complessità dei giochi è cresciuta esponenzialmente negli ultimi anni, tanto più con l’avvento delle console di nuova generazione, dalle quali il mercato si aspetta ulteriore sviluppo delle meccaniche di gioco, ambienti più realistici e complessi, esperienze piu’ vaste. Queste aspettative si traducono durante lo sviluppo in termini di più asset, più linee di codice, tecniche più complesse; problematiche che vanno affrontate da team più numerosi. L’unica variabile che non è cambiata è il tempo di sviluppo per un titolo da vendere a prezzo pieno: circa due anni.


Vari team di sviluppo stanno affrontando il problema di gestire questa crescente complessità in diverse discipline: in questo post mi concentro sulla costruzione del software, quindi su quali linguaggi di programmazione sono usati oggi durante lo sviluppo di un videogioco. La risposta è: non solo C++, ma diversi a seconda dello scopo. C++/Assembly. I linguaggi a livello più basso sono usati dove è necessario il totale controllo sull’hardware, sul ciclo di vita degli oggetti e sulla loro collocazione in memoria. L’Engine Grafico, il Network Engine, oppure l’Engine Sonoro, ma anche alcune porzioni del Game Engine, sono scritti in in C++ con minuscole porzioni di assembly dove necessario. In questi sistemi non sono tanto importanti le prestazioni, ma è fondamentale capire quando nascono e soprattutto quando muoiono l’entità con le quali si lavora, oppure dove sono posizionate in memoria. Su console soprattutto la gestione della memoria è fondamentale perché la memoria è un bene scarso e prezioso. LUA/Python. I linguaggi ad alto livello stanno quasi esclusivamente sostituendo i vecchi linguaggi di scripting proprietari (chi ricorda il Quake C?). LUA e Python in particolare sono semplicissimi da interfacciare a codice C++ nativo, offrendo però un ambiente ad alto livello più produttivo per sistemi dove concetti come la gestione della memoria non sono fondamentali. Le prestazioni offerte sono sufficienti ad eseguire codice che gestisce le meccaniche di gioco. Un ulteriore vantaggio è la semplicità di apprendimento, che permette ad uno scripter di diventare subito produttivo. Civlization 4di Sid Meier, ad esempio, è scritto per larga parte in Python. Fable 2 usa LUA per lo scripting. C# e .NET. Il codice del gioco rappresenta una parte anche abbastanza piccola rispetto a tutto il codice che è necessario scrivere durante lo sviluppo di un titolo. C# e .NET, per via della loro produttività e standardizzazione, si stanno ritagliando grosse fette di interesse nello sviluppo di tutti i tool di supporto allo sviluppo: tool di conversione, costruzione e gestione degli asset di gioco, editor di livelli sono sempre più spesso scritti in uno dei linguaggi che supportano la piattaforma .NET. Un programmatore che volesse entrare nel mondo dello sviluppo, quindi, non può più limitarsi a conoscere il C++, ma si vede costretto ad allargare il proprio bagaglio di strumenti con linguaggi e piattaforme a più alto livello. Sviluppare su PC e Xbox 360 con XNA Studio di Francesco Carucci - lunedì 15 dicembre 2008 Share Sviluppare un videogioco? Si può. Ci vuole passione, un po’ di fantasia, saper programmare, creatività, e gli strumenti giusti. Ma non è più una casta, riservata agli sviluppatori professionisti oppure agli smanettoni per PC alle prese con strumenti e linguaggi impossibili. Da un anno circa è possibile sviluppare un piccolo videogioco eseguibile senza troppi patemi d’animo sia su PC sia su Xbox 360 attraverso XNA Studio di Microsoft. La recente apertura di XNA Creators Club fornisce allo sviluppatore in erba un mercatino virtuale dove offrire il proprio prodotto, gratuitamente o a pagamento, alla comunità di videogiocatori.


XNA Studio mette gratuitamente a disposizione dello sviluppatore un insieme di strumenti e librerie di installare su una versione, sempre gratuita, di Visual Studio C# 2008 Express Edition. Le librerie sono disponibili, come detto, sia per PC sia per Xbox 360, quindi la stessa applicazione è eseguibile senza particolari modifiche su entrambe le piattaforme. Sul 360 è necessario scaricare XNA Game Studio Connect, al quale connettersi dall’ambiente di lavoro su PC via rete locale. Perché C# e non, ad esempio, C++? Perché l’ambiente di XNA e’ indirizzato a chi si avvicina da poco allo sviluppo di videogame e non ha, quindi, bisogno di strumenti sofisticati che ne rallenterebbero l’apprendimento. C#, come discusso approfonditamente in un recente articolo, é un linguaggio più semplice e accessibile rispetto a C++; risulta quindi ottimo per muovere i primi passi e iniziare a produrre qualcosa di pratico. In quest’ottica di ricerca della semplicità, le librerie grafiche messe a disposizione da XNA Studio sono una semplificazione delle Direct3D disponibile su Windows o dell’XDK disponibile su 360: il controllo sull’hardware non è quindi altrettanto sofisticato rispetto al fratello “maggiore”, ma è comunque sufficiente a produrre in breve tempo titoli tecnicamente anche piuttosto avanzati. Alcuni giochi che girano nella comunità sono autentiche piccole perle. Assieme alle librerie di programmazione, XNA Studio offre l’ambiente di gestione degli asset (texture, immagini, suoni, modelli, animazioni): ad ogni asset, ad esempio, è possibile associare azioni da eseguire al momento della sua traduzione, lasciando quindi ampio controllo allo sviluppatore in erba. L’ultimo passo è la distribuzione del titolo sia attraverso un eseguibile Windows, oppure tramite XNA Creators Club che lo distribuisce automaticamente (previa autorizzazione di Microsoft) alla comunità mondiale di Xbox Live.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.