19 giugno 2012

Recuperare i Lavori In Corso



Traduzione di Marco Falcinelli

Mi capita piuttosto spesso di bloccarmi durante un “lavoro in corso”. E lo stesso credo accada a molte persone. Quella che segue è una lista di problemi piuttosto comuni in cui mi sono imbattuta, ed alcuni modi di come questi possano essere risolti per poter proseguire e completare il proprio progetto.

Naturalmente non posso garantire che tali soluzioni siano di particolare utilità per un qualsiasi specifico “lavoro in corso”.


Qualcosa di difficile che risulta impossibile da implementare

Problema: qualcosa di incredibilmente difficile-da-programmare risucchia tutto il tempo che potete dedicare all’implementazione e vi impedisce di procedere con il resto del gioco.

Soluzione: questa cosa-difficile-da-programmare è essenziale per il vostro progetto? Se la risposta è no, allora fatevi forza è tagliatela.

Soluzione: semplificate. Cercate di capire quale parte della vostra simulazione/o-qualunque-cosa-sia sia veramente necessaria e quale possa essere eliminata; sfoltite il vostro progetto fino a quando vi rimane qualcosa che possiate implementare efficaciemente.

Soluzione: chiedete aiuto. Talvolta altri programmatori potranno offrirvi dei buoni consigli. Sia che siate dei principianti che dei programmatori moderatamente esperti, potreste trovare utile pubblicare sul newsgroup delle richieste di aiuto per il codice di programmazione. Se siete programmatori esperti, è poco probabile che vi sia qualcun altro che ne sappia più di voi, ma discutere il problema che avete con un amico può spesso chiarirvi le idee e farvi venire a capo della soluzione.


La produzione di contenuti vi opprime?

Problema: avete concepito una situazione che richiede una quantità assolutamente insana di contenuti, ad esempio, un sistema di conversazione in cui il giocatore può formulare domande su qualsiasi argomento o un world-model con troppi elementi.

Soluzione: restringete l’accesso del giocatore al sistema ponendo un limite di tempo alle scene. Se si hanno solo tre turni a disposizione per sostenere una conversazione con la guardia del palazzo, il giocatore non avrà il tempo di giocherellare con le lacune della vostra implementazione. Molte volte, tale soluzione ha il benefico effetto collaterale di evitare che il ritmo dell’avventura cali nel momento in cui il giocatore spende troppo tempo in parti del gioco che non sono importanti.

Soluzione: restringete l’accesso del giocatore riducendone la libertà d’azione. Cambiate il modo in cui funziona il sistema di conversazione così che non possa chiedere di qualunque cosa (ad esempio usando un sistema a menù, o accettando solo il comando PARLA A); non permettetegli di versare un liquido in un contenitore che già contiene qualcosa; etc. Il trucco qui è di dare al giocatore tanta libertà quanta ne richiedano la vostra storia ed i vostri enigmi, ma non tanta da trascinarvi in gratuiti ed estenuanti lavori di programmazione.

Soluzione (avanzata): meccanizzate l’implementazione. Se il problema è che avete (ad esempio) un sistema completo di conversazione, ma che questo richieda di produrre 3000 oggetti per dei dialoghi piuttosto simili, scrivere tutto il codice a mano potrebbe richiedere più sforzo di quanto possiate sopportare. Considerate la progettazione di un vostro linguaggio di codificazione o una qualche forma di programmazione che vi permetta di autogenerare il codice nel linguaggio di programmazione che avete scelto. E’ una soluzione spesso fattibile ricorrendo ad un linguaggio di codifica come il Perl o simili.


Compiti di implementazione noiosi.

Problema: sapete che dovete inserire un oggetto, una locazione, etc. ma l’idea di farlo vi riempe di tedio.

Soluzione: eliminate l’oggetto. Seriamente: se non vi è niente di interessante in un certo oggetto, considerate se effettivamente ne avete bisogno nel vostro gioco o se potete ometterlo o nasconderne l’assenza. Spesso se trovate che qualcosa sia tedioso, scoprirete che lo sarà anche per il giocatore.

Soluzione: raggruppate gli oggetti. Talvolta è possibile prendere alcuni oggetti differenti nella progettazione del vostro gioco e rimpiazzarli con un singolo nuovo oggetto, più interessante, che giocherà un proprio ruolo in diversi enigmi. E’ possibile esagerare in questo tipo di soluzioni, e ovviamente dovreste evitare di consegnare al giocatore un coltellino svizzero che risolva qualsiasi enigma dell’universo, ma è una soluzione per rendere più interessante una generica implementazione di qualcosa di poco entusiasmante.


Scrivere descrizioni noiose

Problema: dovete scrivere le descrizioni per delle locazioni o degli oggetti, ma l’idea di scriverle vi riempie di tedio.

Soluzione: eliminate l’oggetto. Se una locazione od un oggetto vi annoia, probabilmente non vi è necessità che sia li. Restringere la mappa in modo tale che non abbia troppe locazioni monotone è spesso una buona idea.

Soluzione: fate ricerche. Date uno sguardo ad oggetti o posti reali dello stesso tipo di cui scrivete, e prendetene uno insolito quale ispirazione.

Soluzione: spostate l’attenzione narrativa sulla caratterizzazione o sulla memoria piuttosto che sulle descrizioni di oggetti fisici. Se non c’è niente di interessante da dire a proposito di un oggetto o di una locazione potreste invece usare tale oggetto o locazione come una scusa per raccontare un aneddoto, od una battuta, o qualcosa di particolare che riveli l’attitudine del personaggio giocatore. O potreste usarlo per fornire dei suggerimenti per la soluzione di un enigma, o per cercare di creare una certa atmosfera.

Soluzione: cambiate il progetto. E’ una soluzione piuttosto drastica da attuare nel mezzo della vostra implementazione, ma se trovare poco eccitante la maggior parte delle locazioni del vostro gioco, considerate l’opportunità di modificare un poco la storia - aggiungendo una nuova sezione al vostro mondo, o una nuova linea temporale - in modo da dare una ventata di freschezza all’atmosfera o per rendere più interessanti i luoghi da esplorare.

Soluzione: reclutate un collaboratore. Se odiate veramente scrivere e avete dei problemi a generare un qualsiasi tipo di prosa di vostro pugno, forse dovreste pensare di collaborare con qualcun altro che colmi le vostre lacune.


Sequenze eccessivamente dettagliate sviano l’attenzione dal resto del gioco.

Problema: una scena incredibilmente difficile-da-programmare, ricca di dettagli e di oggetti, o che prevede un enigma particolarmente difficile concentra tutta l’attenzione del giocatore su di essa e gli fa trascurare il resto del gioco. (Spesso questa problematica non si manifesta se non in fase di beta-testing, quando i revisori cominceranno a subissarvi di richieste su un particolare del gioco senza magari completarlo veramente.)

Soluzione: questa scena è fondamentale per la vostra storia, o sta solamente rompendo il ritmo della narrazione? Nel secondo caso, fatevi forza e tagliatela. Se vi è qualcosa di fenomenale nella sua implementazione, ma che non si adatta al resto del progetto, salvate il codice ed utilizzatelo in un altro progetto a cui si possa adattare maggiormente, come ad esempio un gioco per una competizione monocamerale o per l’IF art show.

Soluzione (meno drastica): semplificate la scena e fornite al giocatore una possibile soluzione alternativa. Fate in modo che sia chiaro quale sia l’obiettivo dell’interazione del giocatore (la soluzione di un particolare enigma che porti ad una scena narrativa in particolare) in modo che non si senta impantanato giocandola.

Soluzione (drastica): elevate il livello dell’implementazione di tutto il resto del gioco fino a quando non eguagli il livello della sezione problematica. E’ un’opzione da prendere in considerazione se pensate che tale scena sia la parte migliore del vostro gioco e che sia il modello del tipo di interazione che desiderate creare. Probabilmente allungherà i tempi, sia di gioco, che per la realizzazione del progetto. D’altra parte il gioco risulterà più intensamente curato nella sua implentazione dall’inizio alla fine, il che è una cosa buona. Se avete bisogno di ulteriori motivazioni, provate “Sunset Over Savannah”, “Worlds Apart”, o alcuni dei giochi di zarf per rammentarvi quando possano essere divertenti da giocare.


Sequenze troppo lineari rendono debole una parte del gioco

Il problema: vi confrontate con una parte del gioco in cui il giocatore non può fare niente di interessante per un certo periodo. Un’intera sequenza comporta che il personaggio giocatore faccia qualcosa di piuttosto noioso e meccanico, come seguire una ricetta, fare una valigia, o fare il check-in all’aeroporto.

Soluzione: saltate alla parte successiva attraverso la narrazione. Qualunque cosa risulti noiosa al giocatore e che sia noiosa da programmare probabilmente merita di essere eliminata. La tecnica del salto narrativo tra locazioni è un meccanismo usato con successo in molti giochi; un po’ meno ovvio è un salto narrativo temporale, anche se non si cambia la scena. Ma guardate come esempio “Gourmet”.

Soluzione: cambiate il centro dell’interazione. Ponete in primo piano le conversazioni o altre interazioni interessanti, automatizzando sullo sfondo i compiti noiosi. Invece di richiedere al giocatore di scrivere “ATTACCA IL NEMICO” cinque volte in un duello all’arma bianca, fategli scambiare qualche battuta spiritosa, e descrivete lo scambio di colpi mentre va avanti in modo semi-automatico tra una battuta e l’altra. E’ una soluzione un poco ardita, in quanto implica togliere una parte del controllo dal giocatore, facendo accadere gli eventi senza che egli dia una  diretta istruzione, ma è spesso una soluzione più divertente della sua alternativa.


La parte narrativa richiede troppo tempo perché si sviluppi

Il problema: l’incipit del gioco è piuttosto noioso; non accade niente di rilevante fino a quando il giocatore non ha esplorato abbondantemente la scena, e/o l’obiettivo del giocatore non è abbastanza immediato.

Soluzione: date al giocatore un obiettivo ovvio da perseguire, anche se non è quello principale del gioco. Ciò può rendere necessario aggiungere una piccola scena di prologo a ciò che avete già realizzato. Tale prologo dovrebbe avere un obiettivo chiaramente articolato e dovrebbe anche aiutare a definire il personaggio giocatore e le sue motivazioni di fondo, in modo tale che alla fine, il giocatore abbia maggiore slancio per affrontare una sezione centrale del gioco dal ritmo più basso.
Soluzione: fate iniziare il giocatore nel mezzo di un compito già in evoluzione: nel mentre di una conversazione, ad esempio, o durante un duello di spada, o mentre sta riparando la sua Ferrari.


E’ troppo difficile fare progressi nel gioco, specie all’inizio

Il problema: il primo enigma nel gioco è troppo difficile. (Vedi “Christminster”, un gioco che altrimenti sarebbe ben bilanciato.) E’ importante lasciare che il giocatore faccia dei progressi all’inizio del gioco, altrimenti sarà portato ad arrendersi; se si blocca successivamente, avrà maggiore motivazione nel continuare a giocare, dal momento che vi ha investito già del tempo.

Soluzione: semplificate il primo o i primi due enigmi. Ma presumo vi abbiate già pensato.

Soluzione: aggiungete un prologo con un enigma più semplice, idealmente qualcosa che dia al giocatore un poco di esperienza che può riutilizzare per risolvere ciò che accade successivamente.


Le scene narrative o gli eventi principali mancano d’incisività

Il problema: un evento che si suppone essere narrativamente importante da una sensazione di poca consistenza durante il gioco e non fa la dovuta impressione sul giocatore. E’ un problema particolarmente comune nel momento in cui accade qualcosa di importante nel gioco e vi è un cambiamento di scena attraverso una parte narrativa.

Soluzione: allungate la scena perché abbia luogo in più turni. Rendere la scena interattiva - anche solo per un paio di turni - può cambiare drammaticamente la percezione dell’evento.

Soluzione: inserite delle pause nella scena narrativa dove il giocatore debba premere un tasto per continuare. Questa è una soluzione da minimo-sforzo, e non pagherà molto, ma può dare un certo senso d’importanza alla scena. Alcuni effetti multimediali possono talvolta essere utili in questi casi: se state scrivendo un gioco con delle illustrazioni, inserirle nei momenti importanti aiuta a creare l’evento piuttosto che distribuendole casualmente. “Bolivia by Night” è un ottimo esempio in questo senso.

Soluzione: riscrivete la scena; il problema potrebbe essere la vostra scrittura. Prendete in considerazione di consultare qualche guida su come si scrive la narrativa statica, se non avete molta esperienza nel campo. Potrebbero illuminarvi su cosa manca ai vostri dialoghi o alle vostre caratterizzazioni. In particolare un problema piuttosto comune tra gli autori d’IF in erba è la tendenza a scrivere scene vaghe e poco precise, o a sintetizzare dialoghi che dovrebbero essere scritti con maggior cura.

Soluzione: alzate la sbarra, aggiungendo o cambiando ciò che porta al momento culmine. Dando al personaggio giocatore più motivazione a prestare attenzione a ciò che accade; o dando al giocatore più motivazione a prestare attenzione a ciò che accade, facendolo lavorare verso un obiettivo che viene trattato, modificato o scalzato dal momento culmine.


Sequenze non interattive impediscono al giocatore di fare nient’altro che osservare

Il problema: in alcune parti della narrazione, il personaggio giocatore non ha davvero niente d’importante da fare: come quando due personaggi non giocatori intrattengono una conversazione che il giocatore deve ascoltare senza che vi possa partecipare. Siete infognati in quella che è, essenzialmente, l’implementazione di un film, ed il giocatore è costretto semplicemente a schiacciare Z (“aspetta”) continuamente per fare in modo che il dialogo proceda; oppure anche se il giocatore ha qualcosa da fare durante questa scena, le sue azioni sono solo una perdita di tempo mentre gli altri personaggi importanti proseguono i loro affari importanti che il giocatore è costretto ad attendere e osservare.

Soluzione: tagliate la scena. Le scene dove il giocatore non fa nulla sono meno penose se sono corte. Ciò va, lo ammetto, direttamente contro il mio suggerimento sulla lunghezza delle scene che non hanno abbastanza impatto. Ma la chiave qui è quella di elevare il coinvolgimento del giocatore se gli date qualcosa di realmente importante da fare per alcune scene che contribuiscono alla realizzazione di un evento; se gli date solo dei compiti per tenerlo impegnato, non cambierà nulla.

Soluzione: aggiungere un trama-B alla scena. Vi è qualcosa di veramente interessante che il giocatore deve fare e che può accadere simultaneamente alla trama principale della scena? Allora mettete le due scene assieme. Fate in modo che il giocatore lavori su qualcosa che deve fare mentre i personaggi non giocatori fanno le loro cose allo stesso tempo. Questo spesso richiede che sia sottintesa una certa “ingenuità” all’interno del progetto che permetta che sia la trama A (la parte non interattiva condotta dai personaggi non giocatori)  e la trama B (il compito del giocatore) siano spiegate chiaramente, che non si intralcino tra di loro, e che richiedano pressappoco lo stesso ammontare di tempo. Ciò nonostante, può risultare una soluzione estremamente efficace se ben fatta. (Vedete “Delusions”.) Una variazione comune prevede che  la scena sia progettata in modo tale che la trama B, determinata dal comportamento del giocatore, interrompa e porti alla conclusione la trama A, come quando il giocatore fa infine esplodere le sbarre della propria cella, o scopre un tesoro nascosto, e quindi distrae i personaggi non giocatori da ciò di cui stavano parlando.

Soluzione: cambiare il punto di vista del personaggio. non vi è alcuna ragione per cui il giocatore debba interpretare il medesimo personaggio dall’inizio alla fine. Talvolta è più interessante prevedere dei cambi di ruolo. Ciò può accadere anche se l’altro personaggio ha degli scopi diversi dal primo protagonista: interpretare personaggi alternativi potrebbe gettare nuova luce sulle motivazioni degli antagonisti, ad esempio. (Considerate a tal proposito “Being Andrew Plotkin”.) Questa tecnica potrebbe stridere con il resto del gioco se introdotta nell’ultima parte dello stesso od unicamente per una singola scena, quindi ponderatela bene, tenendo conto del ritmo narrativo e della sua coerenza.