Tecnologia e sviluppo

La tecnologia che muove genereAvventura: La Terribile Minaccia degli Invasori dall'Audiogalassia (GA:LTMDIDA) è basata su Flash. L'intenzione di pubblicare il gioco sul Web ha ridotto il campo di scelta delle tecnologie utilizzabili ai soli Flash Player e Shockwave Player.
Considerando rapidamente che Flash è estremamente più diffuso di Shockwave la decisione è stata facile da prendere.
Sviluppare da zero un motore e tutto il contorno necessario per far funzionare il gioco è stata un'operazione lunga e complessa che ha richiesto competenze approfondite in corsa.
Di seguito troverete un interessante dietro le quinte sullo sviluppo che potrebbe tornare utile a chi volesse cimentarsi in una simile impresa. Buona Lettura.

Quello che vedete

Lo sviluppo della parte visiva del gioco
ha percorso la strada più classica che
esista.
Innanzitutto si è fatto tutto il lavoro di
Art Direction lavorando con carta e
matita realizzando le bozze dei
personaggi principali, delle stanze e
degli oggetti. Una volta finita questa
parte tutto quanto è stato scansito
per le successive elaborazioni.
Qui sono entrati in gioco differenti
software e metodologie (e differenti
versioni del software visto che lo
sviluppo è durato più di 3 anni),
a seconda del risultato finale che si
voleva ottenere; alla fine tutto quanto
è stato montato con Flash e preparato
per essere gestito dal motore di gioco.
Una rapida carrellata dei software
utilizzati vede protagonisti, oltre al già
citato Flash: FreeHand, PhotoShop,
Fireworks e Painter.

Questione di stile

Restando con i piedi per terra, si è cercato di ricreare uno stile che avesse
una certa reminescenza di Day of The Tentacle per via delle prospettive
deformate e delle licenze tecniche che ci
si può prendere quando non si cerca il
realismo. L'obiettivo era la creazione di
immagini che fossero colorate e allegre,
coerenti di zona in zona e che non
potessero confondere con troppi
dettagli ma che non ne fossero prive.
Tutto questo avrebbe dovuto essere
anche leggero da scaricare, perché
il mezzo di distribuzione, internet,
è comunque un mezzo lento rispetto
ai supporti fisici disponibili oggi.

La scenografia

Dopo un approccio iniziale che ha visto
le scansioni importate in FreeHand per
essere riprodotte in vettoriale si è dato
un grosso taglio a i tempi di sviluppo
portando l'intero lavoro in Flash.
FreeHand è stato usato ancora per
realizzare velocemente forme vettoriali
complesse, settore in cui Flash è ancora
un po' carente.
Ogni singolo disegno, quindi, è stato
scansito, importato in Flash e lavorato
direttamente sullo stage.

Per riuscire a mantenere più facilmente
una buona continuità stilistica tra le
varie ambientazioni è stata creata una
ridotta palette di colori in modo da
definire delle tinte da usare nel corso
dello sviluppo, un po' come si faceva
con le palette limitate dei computer di un tempo (i famosi 16 colori del C64).
Sono state selezionate delle tinte di
base e quindi schiarite e scurite per
ottenere luci e ombre sugli oggetti.
A conti fatti la palette finale contiene
"solo" 85 tinte.

Prima dell'introduzione del nuovo
motore di rendering di Flash 8, tutte le
stanze venivano smontate, convertite in PNG e quindi ricomposte per ottimizzare
le prestazioni ma così la dimensione dei
files cresceva troppo.
Fortunatamente per noi, quasi a dire
che Flash 8 sia stato realizzato apposta,
il nuovo motore di rendering ha
permesso di mantere tutti i files in
vettoriale tenendo basso il peso ma
raggiungendo le stesse performance
della versione raster.

I personaggi

Finito di realizzare tutte le
ambientazioni presenti nell'avventura è
stata l'ora di popolarle.
Anche in questo caso è stato fatto il
passaggio carta-digitale ma soltanto
per i personaggi principali e alcuni
personaggi secondari.
Quindi, dopo studi di design e di
espressione si è di nuovo aperto Flash
e ci si è scontrati con il primo vero
problema mai affrontato: l'animazione!
Cercando di apprendere il mestiere dai
film di animazione tradizionali e grazie
agli strumenti di Flash e a delle sedute
improvvisate di motion capture, dove
ognuno di noi si prestava per mimare
l'azione necessaria, siamo riusciti
a dare un po' di vita a tutti.
Il risultato finale è un misto di
animazione tradizionale e di animazione
Flash, con rotazioni e spostamenti,
tipica di queste produzioni.

Quello che c'È dietro

Il motore che muove il gioco è stato
scritto interamente da zero per un
motivo molto semplice:
per quanto potenti e flessibili siano
i motori disponibili per fare un simile
lavoro questi costringono a ragionare
secondo i loro schemi e presentano
delle "limitazioni" più o meno fastidiose.
Scegliendo di costruirne uno apposta
per questo gioco si sono superati
questi problemi permettendo uno sviluppo incentrato sulle nostre esigenze che ha permesso di raggiungere i risultati desiderati.
Lo sviluppo è iniziato su Flash 6 che,
grazie all'introduzione di una versione
più robusta e migliore dell'ActionScript,
introdotta con la versione 5,
era l'ambiente ideale anche per
i programmatori più classici, fornendo
degli strumenti pratici e veloci per poter
essere produttivi in poco tempo.

Codice! Codice dappertutto!

I primi tentativi di costruire un motore
completo furono altamente
insoddisfacenti più per la poca
esperienza sull'ambiente Flash che per
la difficoltà dell'ActionScript (i costrutti
sono praticamente identici al javascript).
Il personaggio si muoveva, l'inventario
e le varie stanze venivano gestite ma
l'interfaccia lasciava molto a desiderare
e, tecnicamente, il codice scritto era
poco riutilizzabile e poco efficiente.

Dopo una pausa, quando il progetto
venne riaperto si riscrisse di nuovo tutto
quanto, questa volta basandosi sulla
programmazione orientata agli oggetti.
Avendo accumulato esperienza
sull'ambiente di sviluppo, la nuova
versione è stata progettata per essere
più modulare.
Inoltre sono stati sviluppati una serie di
tools esterni per generare i file .as da
includere e compilare con le informazioni su stanze, oggetti e personaggi.

Quando il motore era ormai quasi
completo si è dovuto affrontare prima il
passaggio a Flash 7, che non è stato
completamente indolore a causa
dell'introduzione del case-sensitive sulle parole chiave, e infine il passaggio a
flash 8 che ha sollevato altri "problemi"
per via delle nuove ottimizzazioni sulla
gestione della grafica via script.
Risolti questi problemi con successo il
motore è stato completamente finito.
Su Flash 9 ci basta sapere che funziona.