Ciao, mi chiamo Mark e sto creando un videogioco intitolato "Mind Over Magnet", un adorabile puzzle platformer basato, l'avrete intuito, sui magneti. Ricominciando lo sviluppo dopo la pausa natalizia, ho notato un pulsante molto interessante sulla mia dashboard-cosa per sviluppatori su Steam che non posso mostrarvi per via degli accordi di riservatezza. Era il pulsante per presentare il gioco al prossimo Next Fest. Si tratta della convention online di Valve dove gli sviluppatori possono condividere le demo dei loro prossimi giochi. E si è dimostrata un'ottima strategia di marketing: guardate cos'è successo a Balatro – coinvolgente titolo roguelike pokeristico – nell'ultima edizione di febbraio. Sapevo quindi di dover presentare Mind Over Magnet al prossimo Next Fest di giugno. Devo solo creare un trailer, preparare una demo e correggere un aspetto molto irritante del mio gioco che ormai mi tormenta da mesi. Ora vi spiego. (♪ ♪ ♪) (♪ ♪ ♪) (♪ ♪ ♪) (♪ ♪ ♪) Il mio gioco è in pixel art, giusto? Ma gli sprite sono decisamente grandi. Confrontiamo Magnus con Mario o Madeline. Significa che una schermata standard misura 1280×720 pixel. Quindi se usate un vecchio monitor a 720p… grandioso, è pixel perfect. Se giocate su un bel monitor a 1440p, come nel mio caso… ottimo, è sufficiente raddoppiare i pixel. E se giocate su un bellissimo televisore 4K mi basta triplicare i pixel. Ma nel caso dei 1080p, la risoluzione più diffusa tra i monitor per PC secondo le statistiche di Valve? Beh, siamo nei guai perché è 1,5 volte più grande dei 720p e, beh, non… non esiste il "mezzo pixel". Esistono alcune soluzioni per aggirare il problema. Una è lasciare che sia Unity ad occuparsene, aggiungendo o eliminando dei pixel qua e là facendo in modo che i "mezzi pixel" si adattino ad una griglia di pixel interi. Ma è una soluzione palesemente imperfetta e può generare un aspetto grafico sciatto, specialmente con gli angoli e le superfici curve. Un'altra soluzione è l'uso dell'antialiasing per smussare i bordi, ma il tutto appare sfocato e la pixel art perde il suo nitido aspetto retro. La soluzione numero tre – o la "C", non mi ricordo – è lasciare inalterati i pixel aggiungendo un grande contorno alla schermata, ma così tutto appare piccolo e distante. Ho provato tutte queste soluzioni. Ho inserito l'opzione per la modalità "Pixel Perfect" che aggiungeva il bordo alla schermata. Ho programmato un sistema che implementava metodicamente l'antialiasing solo se i pixel non potevano essere moltiplicati per un numero intero. E a volte mi sono chiesto se i giocatori avrebbero fatto caso a quei pixel deformi e non fosse solo una mia fissazione. Ma alla fine stavo solo cercando il "meno peggio" dei compromessi, facendo continuamente avanti e indietro tra questi ragionamenti per cercare di capire quale di queste tre soluzioni avrebbe potuto adattarsi meglio al mio gioco. Ovviamente c'è… una quarta soluzione ma non voglio nemmeno considerarla. Certo, funzionerebbe, ma non voglio nemmeno nominarla. D'accordo, lo dico: potrei… sbarazzarmi della pixel art e rimpiazzare l'intera grafica del gioco con del nuovo materiale grafico in 4K, ma… ma sarebbe una follia, vero? E così ho rimpiazzato la pixel art del gioco con del nuovo materiale grafico in 4K! Ho triplicato le dimensioni di tutti gli sprite per poi ricrearli tramite gli strumenti vettoriali di Photoshop come la penna e le forme. Ogni pulsante, ogni porta, ogni oggetto decorativo, ogni magnete, ogni elemento dell'interfaccia. Ma non ci ho messo così tanto come pensavo. La mia pixel art era già abbastanza organizzata e composta da forme semplici e colori di base. Inoltre ho deciso di non sfruttare la nuova veste grafica per aggiungere nuovi dettagli perché volevo che gli elementi si vedessero senza problemi anche su schermi piccoli come quello di Steam Deck. E poi ho deciso di non rifare la grafica degli sfondi. C'è ancora la vecchia pixel art che viene sfocata da un filtro per la profondità di campo. Ma non serve che si sappia, sarà il nostro piccolo segreto. E dopo tutto questo lavoro sono davvero soddisfatto del nuovo aspetto del gioco. Magnus ha molto più fascino e personalità e il gioco non sembra più l'ennesimo banale titolo indie in pixel art. E poi il gioco funziona. Potete vederlo su un TV 4K, un monitor a 1080p o sul piccolo monitor di Steam Deck… e funziona! Funziona! Ed è ironico che probabilmente io abbia speso più tempo a cercare un buon compresso che a ricreare gli asset grafici. E da tutto questo ho appreso una lezione. Due, in realtà: una è "pianificare in anticipo". Ho creato gli sprite molto tempo prima del sistema definitivo per le telecamere, di fatto sperando che avrebbero funzionato bene insieme. Non è stato così: in Unity c'è questo pulsante per una telecamera pixel perfect, ed evidentemente pensavo che attivandola sarebbe andato tutto alla perfezione. È stupido e ingenuo perché le cose non funzionano così ma… ora lo so. Ma l'altra lezione è che a volte può sembrare una buona idea cercare un compromesso, una scappatoia o un espediente. Ma in realtà è la pigrizia a parlare e a volte è meglio stringere i denti, rimboccarsi le maniche e darsi da fare per trovare una vera soluzione che funzioni a dovere. In futuro eviterò di perdere tempo andando subito al dunque per trovare la vera soluzione. E così, dopo essermi risvegliato da quell'incubo, era l'ora di fare il passo successivo: creare un trailer. È qualcosa che ho rimandato a lungo semplicemente perché il gioco non era ancora pronto e non c'era granché da mostrare nel trailer. Certo, avevo finito il Mondo 1, ma se avessi mostrato solo quello l'intera ambientazione del trailer sarebbe stata quel sistema fognario di colore turchese per due minuti di fila. Non sarebbe stata una fedele rappresentazione del mio gioco. Così ho deciso di ricorrere all'antica arte del… "fai finta finché non lo crei". "Creare" quasi letteralmente, in questo caso, perché ci sono ancora tantissime cose incomplete come questi livelli mai sottoposti a playtest che come sfondo hanno ancora la cianografia che uso durante lo sviluppo. Ci sono sfondi incompleti e meccaniche non ancora del tutto implementate. Mettendo tutto insieme posso creare qualcosa che non sarà con certezza nel gioco finale ma che è abbastanza indicativo di come sarà il gioco. Tra l'altro penso di aver esagerato con la qualità perché dopo aver postato il trailer molte persone nei commenti si sono congratulate con me per aver finito il gioco. Ovviamente le ringrazio moltissimo… ma in realtà non è finito. È tutto finto! Usando i nuovi contenuti mi sono registrato mentre giocavo a questi livelli. Non c'era la musica ma ho attivato gli effetti sonori così da averli nel trailer. Inoltre, a rischio di parlare troppo di risoluzioni, ho registrato tutto in 4K anche se il trailer è solo in 1080p così da ritagliare i segmenti più interessanti senza dover ingrandire l'immagine riducendone la qualità. Ho quindi importato il filmato in Adobe Premiere e ritagliato gli spezzoni più interessanti: animazioni interessanti, esempi di meccaniche, fasi narrative e cose così. Riguardo alla musica, ho finalmente trovato chi comporrà le musiche per il gioco così posso chiudere quell'enorme Modulo di Google! Grazie a tutti quelli che si sono proposti. Non è ancora prontə per lavorare al gioco quindi per il trailer sono ricorso al mio servizio audio preferito: Epidemic Sound. La cosa bella di Epidemic Sound – questo video non è sponsorizzato da Epidemic Sound ma se andate nella descrizione e cliccate il mio link riceverò un compenso da Epidemic Sound – è che quando scaricate della musica non ottenete solo l'intero brano ma anche le singole tracce come la melodia, il basso e le percussioni. Infatti ho potuto isolare le percussioni e sincronizzare gli spezzoni con i beat della batteria, così: (♪ percussioni ritmate ♪) (♪ percussioni ritmate ♪) Per quanto riguarda l'arco narrativo del trailer, si inizia con qualcosa di semplice come l'uso dei raggi magnetici per sollevare i blocchi. Poi rallento un po' per introdurre il personaggio di Magnus. Poi si vede cosa può fare Magnus come meccanica di gioco, e dopo ancora c'è una rapida sequenza di elementi che compariranno nella seconda metà del gioco come altri magneti, altre meccaniche e altri mondi. Alla fine c'è una bella call to action per aggiungere il gioco alla Lista dei desideri di Steam. Non è il miglior trailer di tutti i tempi, l'ho montato in una sola giornata, non ho nemmeno moltissimo materiale da utilizzare e in definitiva non sono Derek Lieu, quel ragazzo che crea quei meravigliosi trailer per ogni sorta di gioco indie. Ma per ora fa bene il suo lavoro e dopo averlo postato su YouTube e altri social ha spinto il gioco oltre le 30.000 Liste dei desideri, e non è male dato che il Next Fest non è ancora iniziato. E infine c'è la demo. Non sono sicuro di quanti contenuti voglio inserire nella demo. Come per il trailer, se nella demo inserissi solo il Mondo 1, non sarebbe molto indicativa del gameplay complessivo del gioco. Quindi forse dovrebbe esserci anche il Mondo 2, metà del Mondo 2 o qualcos'altro ancora. Quindi devo iniziare a lavorarci. Ma, comunque sia, penso di dovermi rimboccare le maniche per finire il gioco. Perché, tornando a Balatro, potreste aver visto l'enorme hype che ha generato durante il Next Fest di Steam per poi uscire ufficialmente un paio di settimane dopo. Lo stesso vale per Pepper Grinder: uscirà circa un mese dopo la conclusione del suo primo Next Fest di Steam. E quindi se mostrerò il mio gioco al Next Fest di giugno, probabilmente dovrei puntare a pubblicarlo in luglio o agosto, che non sono così lontani nel futuro. È meglio che mi dia da fare. Nelle ultime settimane ho scoperto una discreta – per non risultare troppo pomposo – pipeline di produzione per portare a termine il gioco. Si ispira moltissimo all'approccio usato Valve nel caso di Portal, di cui ho parlato nel video sulla filosofia di Valve per i playtest. In sostanza funziona così. Da martedì a giovedì lavoro ai nuovi contenuti per il gioco. Nuovi livelli, nuovi sfondi curati o nuove cutscene: qualsiasi tipo di novità. Il venerdì mi dedico alla risoluzione dei bug. Scelgo qualcosa dalla sterminata lista di cose da fare su Trello e cerco di trovare una soluzione a quel bug. Mi dedico ad altri bug e poi, alla fine della giornata, testo il lavoro svolto e lo esporto in una nuova build. Quindi la invio a dei playtester – di solito utenti casuali su Twitter – che non sono mai più di tre. Il lunedì controllo i messaggi privati su Twitter alla ricerca di bei filmati di playtest. Guardo l'intero video annotando tutte le cose che voglio modificare, come bug o ambientazioni che devono essere rifinite o livelli troppo facili, troppo difficili o troppo complicati, o degli exploit che non avevo previsto durante lo sviluppo di quella sezione. Ci sono state altre versioni di questo processo nel corso dello sviluppo, ma ormai credo di averla perfezionata. Ad esempio, in precedenza inviavo la build di turno a troppe persone ritrovandomi con tantissimi filmati da guardare: era davvero troppo. E se qualcuno si imbatte in un bug o un exploit è davvero penoso e non particolarmente utile veder emergere la stessa cosa in altri nove video. Inoltre distribuivo le build per i playtest durante la settimana rimanendo quindi bloccato senza poter far nulla nell'attesa dei filmati dei playtest. Inviandole di venerdì le persone ci giocano durante il weekend mentre mi prendo una pausa meritata e gioco a Balatro. Grazie a questo processo, il gioco sta iniziando a prendere forma. I nuovi contenuti nascono come grezze sperimentazioni che vengono subito testate, e la roba di vecchia data – quella dei primi livelli – è stata vista da così tanti playtester e ha ricevuto così tante regolazioni e correzioni da essere ormai a regola d'arte. E grazie a questo processo credo sia fattibile terminare il gioco poco dopo la sua presentazione al prossimo Next Fest. Ma non posso farlo se resto qui a raccontarvi quello che sto facendo: è ora di rimettersi al lavoro almeno per un po'. Ci sono playtest da fare, video di playtest da guardare o nuovi contenuti da creare, bug da correggere o partite a Balatro da giocare: consultate il sopracitato programma e in base al giorno saprete cosa sto facendo. Come sempre, i patron di GMTK possono già giocare all'ultima build. Se invece non state finanziando lo show – e non capisco perché – potete aggiungere il gioco alla Lista dei desideri su Steam per sapere quando uscirà la demo in occasione del prossimo Next Fest. Grazie mille per la visione, ci sentiamo presto. (♪ ♪ ♪) (♪ ♪ ♪) (♪ ♪ ♪) (♪ ♪ ♪) (♪ ♪ ♪) (♪ ♪ ♪) (♪ ♪ ♪)