Dietro la direzione artistica decisamente stilosa di Bloodless

I Game Developer Deep Dives sono una serie in corso che ha l'obiettivo di far luce su specifiche caratteristiche di design, artistiche o tecniche all'interno di un videogioco, per mostrare come decisioni di progettazione apparentemente semplici e fondamentali non siano in realtà affatto così semplici.

Le puntate precedenti trattano argomenti come il modo in cui GOG ha perfezionato l'imperfetto con la riedizione di Protocollo Alphacome Ishtar Games ha progettato una nuova razza di nani in L'ultimo incantesimoe come Krillbite Studio ha creato un'esperienza di preparazione del cibo gustosa in Autobus della frutta.

In questa edizione, il programmatore capo di Point N' Sheep Antônio Rivero descrive nei minimi dettagli le riflessioni dietro la semplice ma incisiva direzione artistica del gioco pacifista ronin, Senza sangue.

Sono Antônio Rivero, programmatore capo presso Point N' Sheep, e lavoro su Senza sangueun gioco di azione e avventura su un ronin pacifista con combattimento basato su parate non letali e uno stile artistico unico con palette limitate. È il nostro primo gioco commerciale come studio, anche se la maggior parte di noi ha lavorato insieme per realizzare giochi per dispositivi mobili per diverse aziende e ha partecipato a molte game jam insieme. Sapevamo un sacco di cose sulla creazione di giochi, ma abbiamo dovuto imparare insieme come realizzare un gioco così grande, così ambizioso e così bello.

Senza sangue è iniziato come un progetto di game jam per la 45a edizione del Sfida Ludum. Il tema di Jam “Inizia con niente” ci ha ispirato a creare un gioco su un samurai senza spada. Come team avevamo partecipato a molte game jam insieme, ed eravamo abituati a prendere decisioni di gameplay e visive per semplificare il nostro lavoro nel limitato tempo di sviluppo che ci veniva concesso per eventi come questi.

Una di queste decisioni è stata quella di far sì che il personaggio avesse la stessa azione per schivare e parare, per risparmiare tempo di animazione e codifica. Un'altra decisione del genere è stata quella di avere un 1-bit-tipo estetica, con solo nero, bianco e rosso sullo schermo, in modo che gli artisti potessero realizzare rapidamente ambienti e animazioni.

Schermata vecchia senza sangue

Questo stile di tavolozza a 3 colori è molto diverso da quello che abbiamo ottenuto nel gioco. I personaggi in Senza sangue mantengo ancora la tavolozza nero-bianco-rosso per la maggior parte, ma lo scenario è completamente cambiato. Penso che il termine “hi-bit”, che ho visto un paio di volte per riferirsi ai moderni giochi di pixel art, racchiuda davvero ciò che abbiamo cercato di ottenere con Senza sangue. Ha una limitazione estrema della tavolozza, con un massimo di 12 colori sullo schermo contemporaneamente. Tuttavia, la dinamica delle immagini rende immediatamente evidente che si tratta di un gioco moderno con effetti fantasiosi in corso.

gif-001-scene.gif

Allora come e Perché siamo passati dall'uno all'altro? Quando abbiamo terminato la versione game jam, non eravamo affatto insoddisfatti del suo stile visivo. Abbiamo avuto un'accoglienza positiva per il gioco dalla comunità, e uno dei feedback più ricorrenti che abbiamo ricevuto è stato che la grafica era molto sorprendente. Penso che il motivo fosse che, come per molte cose in questo gioco, a un certo punto abbiamo sviluppato una visione di ciò che volevamo, e in un certo senso abbiamo deciso che non potevamo farne a meno.

Dopo Ludum Dare, eravamo tutti d'accordo nel trasformare quel piccolo prototipo di game jam in un gioco completo di circa 5 ore (alla fine, però, è durato quasi il doppio). Sapevamo che per trasformarlo in un gioco completo, dovevamo dare corpo a tutti gli aspetti: più nemici, una storia più profonda e una grafica migliorata. Eravamo davvero contenti dell'aspetto del gioco e abbiamo pensato di avere solo scenari e animazioni più dettagliati, magari usando qualche colore “di accento” in più, come il rosa di un albero di ciliegio (che avevamo realizzato per una versione ampliata dopo il game jam).

Ma poi ho visto Ritorno dell'Obra Dinne tutto è cambiato. Sapevo che noi avevo per fare qualcosa del genere. Il nostro gioco aveva uno stile visivo fantastico, più tradizionalmente retrò, ma volevamo elevarlo in qualche modo. Quello stile sorprendente di ombreggiatura a due colori mi è sembrato subito la giusta ispirazione. Fortunatamente, il creatore di Obra Dinn, Lucas Pope, aveva persino alcuni post sul blog su come aveva fatto funzionare lo stile artistico, quindi li ho studiati un bel po'.

img-003.png

Lo stile di Ritorno dell'Obra Dinn utilizza una tecnica chiamata tentennamento parecchio, dove crei l'illusione di più sfumature tra due colori alternandoli tramite un pattern. Invece di passare da un colore chiaro a uno scuro tramite il colore intermedio, usi sempre meno il colore chiaro e sempre di più quello più scuro. Ci sono molti pattern che puoi usare per il dithering. Opera Din utilizza uno schema più rumoroso che lo fa sembrare più naturale, ma alla fine abbiamo utilizzato uno schema Bayer classico, che lo rende molto “pixelato”.

img-004.png

Al resto del team piaceva l'idea di esplorare le luci dithered, quindi accettarono di farmi lavorare su questa evoluzione del nostro stile artistico. Non sapevamo esattamente cosa avremmo fatto, quindi è stato un processo molto esplorativo. Avevo anche pochissima esperienza nella scrittura di shader, in particolare shader 2D. Ho dovuto destreggiarmi tra il cercare di capire cosa volevamo fare, come farlo e se fosse possibile. La prima cosa che potevo fare era semplicemente usare l'illuminazione per alternare pixel bianchi e neri. Era un effetto davvero fantastico e ci ha dato maggiore certezza che questa fosse una buona direzione.

gif-002-tetra.gif

La cosa veramente complicata era dove andare Dopo quello. Dal momento che ero il promotore di questo, ed era limitato dalle mie competenze e dai limiti del Renderer 2D e del sistema di illuminazione di Unity, ho provato a realizzare alcuni prototipi, esplorando quelli che pensavo sarebbero stati modi interessanti per spingere gli strumenti che avevamo dal sistema di illuminazione di Unity. Ricordo una demo tecnica che ho realizzato in cui ho provato a usare i tre canali colore per creare diversi colori di luce e fonderli. Molti di questi sono finiti per apparire piuttosto brutti e l'intera impresa mi stava facendo impazzire.

img-005.png

Fu allora che facemmo un passo indietro e tornammo a cercare riferimenti. Un gioco indie particolarmente interessante che il nostro direttore artistico ci mostrò e che utilizzava alcune delle stesse tecniche di dithering che stavamo provando era L'inferno sono gli altri demoni. Aveva una tavolozza a 4 colori e usava l'illuminazione per fondere quei colori con il dithering sui bordi. Il nostro gioco era precedentemente definito solo dal bianco e nero (con un po' di rosso), quindi ogni colore aggiunto doveva essere discusso a fondo. Ho iniziato a sperimentare con l'illuminazione con una tavolozza limitata in stile Game Boy Color, e i risultati sono stati davvero promettenti.

img-006.png

gif-003-illuminazione.gif

Abbiamo iterato su questo stile mentre altri aspetti del gioco venivano migliorati. La prima regione del gioco era una foresta alla periferia della Città Vecchia, dove si svolge gran parte della storia. Abbiamo fatto avanti e indietro sulla tavolozza dei colori, sui parametri degli shader e sulle funzionalità per decidere cose come come dithering l'ombreggiatura, quanto ogni luce avrebbe illuminato e come l'effetto di illuminazione sarebbe variato da un oggetto all'altro. Anche molto più avanti nel progetto, avremmo continuato a regolare il funzionamento delle palette, il modo in cui le risorse di texture stesse erano ombreggiate e il modo in cui i parametri delle sorgenti luminose erano impostati per ottenere tutto Giusto.

gif-004-colori_delle_erbe.gif

Quindi il sistema che abbiamo finito per adottare era: avevamo lo scenario, che era illuminato con una tavolozza di sette colori che fungevano da tonalità da più chiare a più scure negli oggetti dell'ambiente, più cinque colori “accentuati” che non erano influenzati dall'illuminazione. I personaggi erano sempre in bianco e nero piatto, con alcuni dettagli che utilizzavano i colori accentati, mentre gli oggetti dell'ambiente avevano materiali che utilizzavano un sottoinsieme dei sette colori e avevano diversi parametri di illuminazione. Ogni oggetto dell'ambiente ha fino a cinque colori dai sette, con due di questi solitamente in bianco e nero, con questa limitazione molto utile per costruire una gerarchia visiva.

img-007.png

Una volta che abbiamo adottato completamente l'illuminazione come aspetto fondamentale della grafica del gioco, le fonti di luce sono diventate molto importanti, quindi abbiamo iniziato ad aggiungerne altre: bracieri, lampade, fasci di luce dal cielo e lucciole. Il nostro gioco ha iniziato a sembrare stranamente… realistico? Non esattamente realistico, ma in un certo senso concreto. Abbiamo iniziato a sperimentare con mappe normali e ombreggiature nelle risorse stesse per aggiungere sempre di più a questa atmosfera, e tutto ciò che non corrispondeva del tutto sembrava strano. Preservare questa sensazione concreta si è rivelata una bella sfida quando abbiamo aggiunto il prossimo grande aspetto dello stile visivo del gioco: l'acqua.

img-008.png

Avere l'acqua nel gioco non era solo importante per aggiungere varietà allo scenario, ma anche centrale per la costruzione del mondo di Senza sangue. Bakugawa, il luogo in cui è ambientato il gioco, è un'isola e la divinità centrale che la sua gente adora è un dio dei fiumi, quindi dovevamo avere fiumiRicordo di aver cercato di rimandare un po' la realizzazione di questo progetto all'epoca perché ne ero molto spaventato e, alla fine, realizzare gli effetti dell'acqua di questo gioco è stato quasi difficile quanto realizzare la prima versione dello stile di illuminazione e probabilmente anche più stressante.

Ci è voluto poco più di un mese dall'inizio a quando abbiamo ottenuto la prima versione dell'acqua e dei riflessi di cui eravamo soddisfatti. È stato un periodo molto stressante e pieno di frustrazione, in parte perché questo genere di cose è generalmente difficile da realizzare e non mi era familiare, e anche perché c'erano molti aspetti specifici del nostro gioco che lo rendevano ancora più difficile.

gif-005-pozzanghera.gif

gif-006-salta-cerchio-acqua-piena-2.gif

Spesso, i riflessi nei giochi 2D top-down vengono realizzati semplicemente con una copia capovolta dello sprite renderizzata solo dove c'è acqua. Ciò non sarebbe stato sufficiente per il nostro gioco per una serie di motivi, il più importante dei quali è l'illuminazione. Poiché l'illuminazione era così cruciale per l'aspetto di ogni singolo oggetto nel nostro gioco, avere un oggetto illuminato in modo diverso in alto rispetto a quello in basso sembrava strano, quindi abbiamo dovuto avere lo stesso sprite renderizzato sull'originale e il riflesso in passaggi diversi e utilizzare le informazioni di illuminazione dall'originale su quello in basso.

C'erano un sacco di piccoli dettagli come questo che hanno richiesto un po' di tempo per essere sistemati con l'acqua: gli oggetti nell'acqua dovevano essere sommersi e avevamo acqua di profondità diverse, quindi anche questo doveva essere preso in considerazione. Le lucciole vanno su e giù, quindi dovrebbero avvicinarsi e allontanarsi dai loro riflessi durante questa animazione. Abbiamo dovuto sforzarci di superare tutte queste cose perché se qualcosa fosse stato fuori posto o mancante, sarebbe saltato all'occhio come un pugno nell'occhio. Fortunatamente, siamo riusciti a fare tutto ciò che ritenevamo necessario e direi che ne è valsa la pena perché gli effetti dell'acqua ora sono parte integrante degli effetti visivi (e una delle cose di cui sono personalmente più orgoglioso nel gioco).

gif-007-riflessioni-short.gif

Tutti questi sistemi visivi hanno finito per richiedere molti strumenti interni. Poiché i riflessi erano piuttosto costosi, volevamo disattivarli per gli oggetti che non erano vicini all'acqua. Quindi abbiamo creato degli strumenti per rilevare l'acqua vicino agli oggetti e cambiare il materiale dell'oggetto, risparmiando alcune preziose draw call per far funzionare il nostro gioco senza intoppi. Una delle cose che probabilmente farei diversamente in questo progetto è testare prima le prestazioni di tutte queste funzionalità. Ad esempio, le mappe normali nella pipeline 2D di Unity sono molto costose e avremmo potuto evitare di usarle.

In via di sviluppo Senza sangue è stata un'esperienza che ha incluso molte iterazioni, apprendimento e spinte a fare cose nuove. Ci siamo spinti molto perché sapevamo che gioco volevamo fare e non saremmo stati soddisfatti finché non lo avessimo visto raggiungere il livello di qualità che sapevamo meritasse. Ognuno ha dato il meglio di sé e non potrei essere più orgoglioso di ciò che abbiamo fatto, come squadra. Il combattimento, la costruzione del mondo, il sound design, i layout dei livelli e tutto il resto sono stati realizzati con molta cura e un pizzico di ossessione e spero che arrivi a chiunque giochi al nostro gioco.

Leave a Comment

url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url