Paura e delirio su itch.io


Salve community di Itch.io!
Mi presento:
Il mio nome è Matteo e sono stato il programmatore di Cozzali dallo spazio profondo.
Iniziamo con un breve contesto: Spaghetti Invasion è stata una GameJam della durata di 60 giorni (dal 12 febbraio al 12 aprile 2025) creata da Yotobi e SoloUmido. Il tema da loro scelto per l’evento è stato “creare un gioco horror con alieni che invadono l’Italia”. Per mia sfortuna sono venuto a conoscenza della GameJam quando era già in corso, credo intorno al 20 febbraio, tramite il video de “Il Matthew del Tubo”.

Il Team
Sono anni che, assieme ai miei amici Davide e Federico, sto tentando di creare un videogioco…penso che il primo progetto risalga all’ormai lontano 2013. All’epoca nessuno di noi aveva alcuna conoscenza tecnica, né tantomeno le competenze per gestire progetti complicati (e per complicati intendo dire “con un minimo di gameplay”). Questo però non ci ha demoralizzato e, anzi, ognuno ha iniziato a studiare i rispettivi campi di interesse per ottenere - prima o poi - le capacità necessarie. Ma quindi, come mai sono passati ben 12 anni per riuscire ad arrivare alla realizzazione di quello che è a tutti gli effetti il nostro primo progetto completo? Semplice: perchè di progetti incompleti ce ne sono stati a decine. Vuoi per scarsità di tempo, mezzi, capacità, vuoi per diatribe sul design o sul gameplay, vuoi per semplice sfortuna, negli anni non siamo mai riusciti a completare nulla. Fino ad ora.
Quando sono venuto a conoscenza della GameJam ho informato Federico per primo; scherzando, gli ho semplicemente chiesto “Ti va se proviamo a partecipare?”. Contro ogni mia aspettativa ha risposto “boh, ok”. Quindi ci siamo armati di carta e penna per buttare giù le prime idee e dopo due giorni avevamo in mano la bozza semi-definitiva di buona parte del progetto. Ora ci rimaneva da scegliere solo l’engine. Federico ha inizialmente proposto GZDoom, scartato dopo la fase di concepting in favore di Unreal Engine 5 (conosco meglio le sue API). Scelto l’engine, ho creato il progetto e l’ho collegato al sistema di Version System Control per lavorare da remoto senza troppe complicazioni. Finalmente avevamo tutto quello che ci occorreva per partire, era il 28 Febbraio. Durante il weekend abbiamo contattato Davide, che ha dato una mano a Federico per la realizzazione del design degli alieni.

Concept #1 Concept #2 Concept #3

Idea iniziale
Inizialmente avevamo pensato di creare un gioco nel quale il giocatore sarebbe stato un cameriere che avrebbe dovuto prima servire gli alieni, accontentando i loro strampalati ordini (a base di ghiaccio e limone) che avrebbero calpestato sempre più la cultura culinaria Italiana, non senza i classici jumpscare e momenti tipici da gioco horror basilare, per poi trasformarsi nell’FPS che avete potuto vedere e/o provare. Purtroppo, per quanto trovassimo azzeccata l’idea delle ordinazioni horrorifiche, ci siamo ritrovati a tagliare quasi tutta la storia per semplice mancanza di tempo (nel gioco sono rimasti solo i momenti chiave utili per suddividere l’esperienza in stages comodi per la mia programmazione in C++).

Sviluppo
Game Design
Federico ha insistito nel volere un pò di shooting poiché altrimenti il gioco non avrebbe avuto praticamente nulla da offrire se non un’ambientazione bellina da vedere. Sarebbe anche stato utile nel caso ci fossimo ritrovati ai ferri corti e fossimo stati costretti a trasformare il progetto in un semplice “ammazza tutti i nemici” (cosa che poi sfortunatamente è successa). Siccome il tempo era poco, Federico ha deciso di sfruttare le cose che già erano presenti o di facile realizzazione: un forte utilizzo delle luci e dei colori, design semplici ma riconoscibili, fisica dei proiettili di base di UE5 (sì, i pallini che rimbalzano in giro sono solo i proiettili base di Unreal, per farli comportare come proiettili veri avremmo dovuto perdere tempo a smanettare in giro nelle loro impostazioni e semplicemente non potevamo permettercelo) e design della mappa con più biomi (ristorante, fogne, altura, pineta e infine spiaggia).

Scelte stilistiche
L’estetica del gioco è stata studiata fin da subito per risultare tanto semplice quanto riconoscibile, con i dettagli maggiori piazzati solo nei punti strategici dei vari modelli per farli rendere al meglio con il minimo effort. Questo per permetterci di realizzare asset il più velocemente possibile e poter costruire il mondo di gioco nel migliore modo possibile.
Una delle cose che più mi ha sorpreso durante i lavori è stata di sicuro la capacità che abbiamo avuto nel trasformare un bug in una feature: durante una veloce fase di testing iniziale (quando il buio ancora era DAVVERO buio) avevamo piazzato vari fucili in giro per la mappa, così da sfruttarne la torcia sia per vederne la resa, sia per orientarsi. Il problema era che, per programmazione, solo un fucile per volta sarebbe dovuto essere raccoglibile, ma la funzione ancora non era stata implementata. Federico ha quindi scoperto che raccogliendo un altro fucile oltre a quello già equipaggiato ne spawnava un secondo in mano al personaggio, perfettamente sovrapposto al primo, che avrebbe portato il giocatore a poter sparare 2 pallini anziché 1 soltanto. Federico ha subito deciso di tenere questo bug e di rendere di conseguenza le munizioni infinite. dando una ripulita dagli errori (tipo la mesh del secondo fucile sovrapposta a quella del primo) abbiamo creato il power up per sparare più proiettili in base al numero di fucili trovati. E così abbiamo trovato il nostro game loop.

UI
L’interfaccia grafica è stata la parte che ho odiato di più implementare perché, in parole povere, io non piaccio a lei e lei non piace a me. Ho sempre preferito sviluppare strutture dati e algoritmi e ritrovarmi a dover lavorare con la UI sicuramente non mi ha mai fatto impazzire, solo che Davide e Federico erano già strapieni di lavoro.
Davide arriva in nostro aiuto!

Per la realizzazione degli asset abbiamo usato Maya, siccome Federico preferirebbe spararsi nelle mutande con una lupara caricata a sale grosso piuttosto che usare Blender. Per le texture abbiamo invece usato Photoshop. A 3 settimane dalla consegna avevamo pronta buona parte del ristorante, ma ancora mancavano quasi tutte le fogne e tutto l’esterno. Qui Federico ha deciso di chiedere una mano a Davide così che gli potesse dare una mano con i modelli 3D e con il world building (Se Davide non fosse intervenuto ero già stato avvertito da Federico che probabilmente il gioco sarebbe finito all’uscita dalle fogne). Mentre Davide si metteva al lavoro sulla mappa esterna, Federico ha potuto dedicarsi alla creazione dei nemici e delle loro animazioni. Tra il setup del progetto per Davide e una breve spiegazione su come utilizzare il Version System Control ci mancavano ormai solo 2 settimane alla consegna.

Audio
Sull’audio c’è veramente poco da dire: abbiamo utilizzato principalmente Pixabay, anche se alcuni suoni sono stati creati interamente da Davide (per la precisione, tutti i versi dei nemici e l’ambient track delle fogne).
Come già accennato prima, abbiamo usato Unreal Engine 5.5 e questa scelta ha comportato sia vantaggi che svantaggi. Uno dei vantaggi è stato che, conoscendo bene il C++ (anche se lo ho usato veramente poco nei miei progetti) mi sono ambientato su Unreal praticamente subito. Uno svantaggio (almeno per me) è stato sicuramente il sistema di programmazione a nodi nativo di UE, il Blueprint; è un sistema con cui spesso e volentieri ho avuto da ridire perché, abituato all’università e allo studio dell’informatica “classica”, mi trovo decisamente meglio a leggere il codice scritto piuttosto che vederlo a blocchi. Lavorare in modo ibrido tra programmazione classica e blueprinting ha portato il mio codice ad avere svariati bug e a me svariate notti insonni; questo perché Unreal, sempre per via del sistema a Blueprints, non permette alcune pratiche che il C++ nativo supporta e quindi mi sono dovuto arrangiare, principalmente cercando compromessi tra codice scritto e programmazione a blocchi che non facessero esplodere il pianeta. Ma lo svantaggio più grosso è stato il Garbage Collector: un programma nativo di UE il cui scopo è lavorare in background e liberare memoria inutilizzata per migliorare le performance. Il problema? Se un oggetto veniva lasciato in scena per qualche minuto e il Garbage Collector “puliva” la memoria venivano eliminati anche alcuni attributi chiave degli oggetti stessi, come ad esempio il nome; quindi se dopo la pulizia automatica del Garbage Collector provavo a far leggere al gioco il nome di un oggetto ormai cancellato Unreal provava ad accedere alla memoria "vuota" e andava in crash facendo chiudere l’intera applicazione. Per sistemare questo problema ho passato due notti insonni particolarmente frustranti ma alla fine l’ho risolto utilizzando una parola chiave di Unreal (UPROPERTY). Per l’AI ho voluto provare ad usare il nuovo sistema di UE chiamato State Tree e, dopo qualche giorno perso a capirne il funzionamento, ho compreso che, di fondo, si tratta di una semplice macchina a stati finiti.

Fretta, pressione, Rush, Burnout, corsa o pepe al culo. Chiamatela come volete, quella è e quella rimane.
La pressione è stata tanta perché, avendo tutti e tre i nostri lavori quotidiani, il tempo che abbiamo potuto dedicare a questo progetto è stato molto limitato (ci tengo a sottolineare che io ho smesso di andare in palestra per riuscire a portare a termine il progetto e che Federico e Davide hanno fatto i salti mortali per non rimanerci secchi tra il lavoro massacrante in fabbrica e il lavoro al pc appena tornati a casa). Dal 28 Febbraio fino alle 2 di notte del 6 aprile abbiamo prodotto roba senza sosta. Purtroppo avrei voluto continuare a lavorarci, ma il 7 sono dovuto partire per un viaggio di 14 giorni e quindi o caricavamo il progetto la notte del 6 oppure non caricavamo affatto. Ad ogni modo nell’ultimo giorno (o meglio, notte) io ho implementato lo script di fine gioco e il menu principale, mentre Federico ha creato l’immagine dei titoli di coda (dall’italiano ballerino per via della fretta e della stanchezza) che Unreal, ovviamente, continuava a leggere in maniera sbagliata (grazie mille Epic Games per avermi fatto avvicinare all'attacco di panico, almeno così mi sono sentito vivo).

Il risultato è stato, nonostante tutto, sopra le mie aspettative. Specialmente considerando il brevissimo tempo in cui il tutto è stato realizzato. Con qualche giornata di lavoro in più tutti i problemi del gioco si sarebbero potuti sistemare, ma vabbè, è andata come è andata. So che SoloUmido ha già provato il gioco e non lo sistemerò finché non lo avrà giocato anche Yotobi. Detto questo, vorrei annunciare che abbiamo iniziato la pre-produzione del nostro nuovo progetto e che speriamo di rilasciarlo entro l'ultima parte del 2026.
Vorrei ringraziare sia Yotobi che SoloUmido per aver organizzato la Game Jam Spaghetti Invasion e anche Federico e Davide che sono stati dei bravissimi Game, Concept e Level Designer.

Grazie anche ad Itch.io, a chi ha provato il gioco e a chi ha deciso di lasciare addirittura un commento o persino una recensione.
Speriamo di potervi dare prima o poi ulteriori informazioni sul nuovo progetto, incrociate le dita e augurateci buona fortuna! :D

Files

Cozzali dallo spazio profondo.7z 511 MB
20 days ago

Get Cozzali dallo spazio profondo

Leave a comment

Log in with itch.io to leave a comment.