Se avete giocato a God of War per PS4 saprete che Kratos e suo figlio Atreus si muovono spesso in barca. Quella che a molti potrebbe sembrare una meccanica secondaria ha invece dietro un grosso lavoro, come ci svela un post di Sony Santa Monica sul PlayStation Blog
Voluta fortemente dal game director Cory Barlog, la barca di Kratos in God of War è figlia di un processo di sviluppo dal punto di partenza quasi artigianale, ma che ha poi richiesto l'applicazione di un gran numero di competenze di sviluppo perché causa di diversi problemi. Del resto si tratta di uno strumento essenziale, intorno al quale sono state costruite diverse altre meccaniche. Leggiamo com'è stata creata:
God of War, un dio che rema
Il primo prototipo era semplice. Abbiamo messo Kratos seduto e poi abbiamo cominciato a creare un modellino della barca attorno a lui. Fatto ciò, abbiamo messo a punto il movimento generale di Kratos, l'attrito e la velocità, in modo da farci un'idea di come sarebbe stato controllare un veicolo nel gioco.
Una volta realizzato il prototipo iniziale, abbiamo cominciato a svolgere delle ricerche. Fin dall'inizio avevamo deciso che Kratos dovesse usare un solo remo per spingere la barca. Questa scelta significava che la nostra imbarcazione sarebbe stata più simile a una canoa singola, almeno per quanto riguardava l'animazione. Dopo aver visto vari video su YouTube in cui si insegnava a remare in una canoa, ci siamo fatti un'idea di come doveva essere l'animazione di Kratos che remava. A questo punto dovevamo cominciare con le animazioni, quindi abbiamo costruito una barca di cartone a grandezza naturale in uno dei nostri studio per la motion capture.
Una delle sfide più grandi, nel realizzare una barca con un solo remo tipo canoa, era rappresentata dall'alto numero di animazioni richieste. Ogni volta che la barca si muoveva, serviva un'animazione di Kratos. Quindi ogni virata, ogni movimento in avanti o indietro, ogni rotazione sul posto richiedeva singole animazioni per la sinistra e per la destra. Un'altra grande sfida era far sembrare naturale il movimento quando Kratos cambiava l'orientamento del remo da destra a sinistra. A seconda di dove si trovava Kratos nella sua animazione del colpo di remo, ho impostato delle finestre temporali per quando cambiava lato che permettessero di mantenere la "fase" corretta mentre passava il remo all'altro lato. La qualità di queste transizioni, che rispondono rapidamente a un comando del giocatore, è uno di quei piccoli dettagli di cui sono più orgoglioso per quanto riguarda la barca.
La giusta trazione
Oltre che sull'aspetto visivo dei movimenti, abbiamo passato molto tempo a mettere a punto la "sensazione" del remare. Per riuscirci, abbiamo provato varie impostazioni. All'inizio avevamo previsto che il giocatore dovesse premere un pulsante di "accelerazione" per muovere la barca. Era un'impostazione interessante, che ci permetteva di provare a usare altre funzionalità del gameplay, come ad esempio il potenziamento di velocità a tempo, ma, in fin dei conti, era più importante che il giocatore potesse esplorare senza distrazioni.
Andare in barca significa anche lasciarsi portare dalla forza di inerzia. Se per esempio Kratos rema, la barca dovrebbe continuare a muoversi per un po' grazie alla velocità raggiunta in precedenza. Abbiamo regolato di continuo l'accelerazione, la decelerazione e l'inerzia. Volevamo che la barca rispondesse immediatamente ai comandi, ma anche che avesse un certo senso di pesantezza. Era importante che il giocatore provasse un senso di soddisfazione quando raggiungeva la velocità massima ma anche quando manteneva quella velocità al largo
Uno degli aspetti più difficili da realizzare era far virare la barca. Il nuovo God of War, a differenza dei giochi precedenti, prevede un modello di movimento laterale (strafe). Questo modello è ottimo per la precisione nel lancio dell'ascia e per sostenere la visuale cinematica, ma l'uso della barca è strettamente connesso all'esplorazione, per cui se si costringeva il giocatore a spostare la visuale per poter comandare la barca con il timone, lo si privava della libertà di guardarsi intorno e osservare i particolari del lago. Partendo da questa osservazione, abbiamo scelto di tenere tutti i comandi sulla levetta sinistra.
Una volta fissati i comandi alla levetta sinistra, abbiamo continuato a regolare il rateo di virata. La cosa interessante è stato vedere che i giocatori avevano l'impressione che il rateo di virata fosse troppo lento. Ma quando lo aumentavamo, si lamentavano perché la barca risultava incontrollabile. Comunque regolassimo i valori del rateo di virata, i commenti erano sempre gli stessi.
Quando non mi dedico alla creazione di videogiochi, mi piace guidare la macchina, non nel famigerato traffico di LA, ma sulle stupende strade dei canyon appena fuori città. A volte guido su pista. Quando si guida su pista, di solito la gente preferisce le auto a trazione posteriore. Uno dei motivi per questa preferenza è che un pilota esperto riesce a usare la torsione delle ruote posteriori per sterzare. In questo modo, si ottiene il sovrasterzo.
Nel progetto iniziale della barca, la sua "potenza" era situata nel centro. Avevamo a tutti gli effetti una barca "a trazione integrale". Poi abbiamo spostato la "potenza" alla parte posteriore della barca. A questo punto avevamo una barca "a trazione posteriore". I tester del gioco si sono subito resi conto non solo che il rateo di virata era aumentato, ma anche che la barca era più controllabile. Potevano "sovrasterzare" la barca per usare la "potenza" nella posizione migliore.
Salire e scendere dalla barca
Ma l'aspetto più difficile in assoluto da realizzare era il movimento per salire e scendere dalla barca. Era un problema complicato da risolvere. Per salire a bordo, è sufficiente che il giocatore si trovi davanti alla barca e ci sia la possibilità di interagire con essa. Per via della nostra visuale ravvicinata, però, vogliamo sempre assicurare un buon livello di verisimiglianza e non possiamo nascondere niente. Non volevamo neanche far spostare forzatamente il giocatore in una data posizione per salire a bordo. Volevamo che il passaggio nella barca fosse fluido e senza soluzione di continuità, qualunque fosse la velocità o l'angolazione di accesso.
Abbiamo impiegato molto tempo a elaborare un sistema per salire a bordo che poi sarebbe stato usato nel corso del gioco ogni volta che il giocatore doveva allinearsi con un oggetto (la barca, i forzieri, le porte etc...). Questo sistema sfruttava il nostro sistema principale di movimento per guidare il giocatore verso la meta, facendogli sempre prendere la strada più breve e scegliendo la giusta velocità di entrata della mossa in arrivo. Una volta implementato questo sistema, il giocatore era in grado di salire sulla barca con un movimento fluido da qualsiasi direzione o con qualsiasi velocità.
Far salire Kratos a bordo con un movimento fluido a discrezione del giocatore era un conto, ma come fare con il figlio? Visto che Kratos poteva salire sulla barca da qualsiasi angolazione e a qualsiasi velocità, anche il figlio doveva poterlo fare. Forse sarebbe stato davanti a Kratos per mostrargli qualcosa di interessante, oppure si sarebbe trovato alle sue spalle. Poiché il figlio poteva trovarsi in tantissime diverse situazioni, dovevamo creare un sistema che gli permettesse di salire in barca in modo efficace.
Ogni pontile e ogni spiaggia ha una zona che noi abbiamo soprannominato "zona proibita al figlio". Se ci fate caso, quando vi avvicinate alla barca, Atreus resta un po' indietro. Quando premete il tasto per salire in barca, limitiamo la rotazione della visuale. In questo modo, possiamo posizionare il figlio in base all'angolazione e alla velocità con cui Kratos sta salendo a bordo e far salire anche lui in barca in modo fluido.
Finora ho parlato di come salire in barca. Scendere dalla barca è stata un'altra impresa. Innanzitutto, concentriamoci sui pontili. I pontili erano difficili da gestire, perché, come per Kratos quando sale in barca, il giocatore può avvicinarvisi da qualsiasi angolazione e a qualsiasi velocità. Come sempre, volevamo ricreare dei movimenti quanto più autentici possibile, ma anche evitare che occorresse troppo tempo a scendere dalla barca. Per realizzare tutto questo, abbiamo fatto qualche calcolo.
Abbiamo cercato di immaginare quali potessero essere l'angolazione e la distanza tra la barca e il pontile nel momento in cui viene premuto il pulsante dell'interazione. Poi abbiamo scelto tra dieci diverse animazioni, a seconda di quanto dovevamo ruotare la barca e se il pontile era a destra o a sinistra del giocatore. Una volta selezionata la mossa animata, usiamo una tecnologia interna che noi chiamiamo "motion warp" per regolare l'animazione e allineare la barca al pontile.
Le spiagge hanno rappresentato un'altra sfida. Nel caso dei pontili, allineiamo la barca a un dato punto quando il giocatore preme il tasto di interazione. Nel caso delle spiagge, il giocatore può far attraccare la barca praticamente in qualsiasi punto. Per assicurarvi di far arrivare la barca sulla sabbia e non sugli scogli, abbiamo creato qualcosa di unico, interrogando la navigation mesh. La Navigation mesh, o navmesh, viene utilizzata dall'IA per sapere dove è possibile navigare nel mondo di gioco. I progettatori di livelli usano uno strumento di generazione di navmesh per creare gli spazi navigabili nei livelli. Poiché sappiamo che lo strumento che genera navmesh sceglie sempre un'area senza ostacoli, lo abbiamo usato per scegliere un punto di attracco sicuro.
Raccontami una storia, Mimir
Una funzionalità del gioco molto apprezzata è stata il sistema delle chiacchierate sulla barca. Quando Kratos trova Mimir, quest'ultimo diventa un'ottima compagnia sulla barca. Mimir racconterà a Kratos e a suo figlio storie e leggende di Midgard. Come negli altri sistemi già descritti, però, anche in questo caso dovevamo assicurarci che fosse il giocatore ad avere il controllo e potesse decidere quando salire e scendere dalla barca.
Il sistema delle chiacchierate riproduce dei brani audio in base agli eventi che sono accaduti nel gioco. Questi brani audio in realtà sono formati da tanti piccoli brani uniti tra loro. Se rimanete sulla barca ad ascoltare Mimir, l'audio viene riprodotto come se fosse un'unica storia ininterrotta, ma se decidete di scendere dalla barca, arriva subito a una conclusione, che risulta sempre più breve dell'animazione dell'uscita dalla barca. Questo sistema permette a Mimir di riprendere la storia da dove si era interrotto quando tornerete sulla barca.
Altri particolari sulla barca:
Ci sono più di 600 animazioni apposite per la barca
Ci sono più di 750 battute pronunciate sulla barca
Ad Alfheim la barca, il remo e la luce sono diversi dagli altri
Le animazioni per salire e scendere dalla barca cambiano quando si acquisisce Mimir
Sui pontili, la barca riconosce la posizione a destra o a sinistra e le animazioni per salire o scendere sono regolate di conseguenza
La luce LED del controller Dual Shock 4 diventa azzurra mentre ci si trova sulla barca
Anche se rimane sulla barca, il remo è considerato alla stregua di un'arma dal motore del gioco
A un certo punto abbiamo trovato un bug in cui Kratos poteva scendere dalla barca portandosi dietro il remo
Se vi interessa saperne di più sul gioco, leggete la nostra recensione di God of War.