Neverending Dread è un’esperienza horror psicologica in realtà virtuale progettata per trascinare il giocatore in un ciclo infinito di incubi. Il gioco unisce ambientazioni generate proceduralmente, nemici intelligenti e una narrazione frammentata per costruire un mondo opprimente, mutevole e ostile, in cui ogni dettaglio è pensato per disorientare e inquietare.
Grazie all’utilizzo avanzato delle capacità di Unity per il VR, il gioco raggiunge un livello di immersione elevatissimo, dove il suono, la luce, gli oggetti e i comportamenti dell’IA reagiscono e si adattano in tempo reale. Il sistema di socket fisici, intesi come placeholder dinamici all’interno della scena 3D, consente una gestione modulare e flessibile del posizionamento delle armi e degli oggetti nell’ambiente di gioco.
L’obiettivo principale era realizzare un horror VR che si distinguesse per atmosfera e libertà di esplorazione, offrendo un'esperienza rigorosamente immersiva e imprevedibile. I requisiti funzionali e tecnici includevano:
Lo sviluppo è iniziato con la progettazione di uno scenario test, incentrato sull’ambiente "The Asylum", per verificare la solidità del concept e l’equilibrio tra esplorazione, interazione e tensione. Da lì, è stata definita l’architettura dei livelli, con moduli componibili e variabili casuali per costruire ogni volta ambienti differenti ma coerenti.
Il sistema di IA adattiva è stato implementato con un’architettura comportamentale flessibile, potenziata da logiche di apprendimento basate su pattern d’interazione. Questo consente ai nemici di non essere semplici presenze automatiche, ma veri e propri predatori dinamici che mutano approccio in base allo stile di gioco.
Parallelamente è stato sviluppato il sistema dei socket fisici: nodi logici invisibili nella scena VR che definiscono i possibili punti di spawn e interazione per armi, strumenti e contenuti ambientali. Questo ha permesso una gestione flessibile e centralizzata del gameplay, rendendo possibile variare facilmente i contenuti anche in fasi successive dello sviluppo.
Ogni ambiente viene generato partendo da moduli base, collegati in modo casuale ma significante. Gli oggetti, gli indizi e i trigger sono distribuiti tramite regole probabilistiche, per una rigiocabilità sempre diversa.
Le entità nemiche si adattano al comportamento del giocatore: il modo in cui ci si muove, i rumori prodotti, la frequenza degli scontri influenzano la loro reattività, la velocità e la violenza.
Ogni oggetto raccoglibile ha una propria fisica. Le torce ondeggiano, i registratori pesano, le armi reagiscono agli urti. Questo livello di realismo aumenta la tensione, obbligando il giocatore a confrontarsi con la materia stessa del mondo virtuale.
Luce dinamica, lens distortion, bloom e aberrazione cromatica accompagnano momenti chiave per enfatizzare il senso di alterazione percettiva. L’audio è spazializzato: i suoni si muovono nello spazio e attivano reazioni emotive dirette.
Il posizionamento di armi, chiavi, strumenti e spettri avviene attraverso socket invisibili nella scena, che fungono da placeholder intelligenti. I socket permettono di controllare con precisione non solo dove un oggetto appare, ma anche con quali logiche di gioco è attivabile (ad es. al raggiungimento di un certo evento o condizione).
Il gioco è costruito su una struttura modulare che permette di gestire facilmente l’aggiunta di nuove stanze, ambientazioni o nemici. Ogni componente può essere attivato, disattivato o rielaborato senza compromettere la stabilità del sistema.
Gli ambienti non sono casuali al 100%, ma seguono logiche di coerenza narrativa. Vengono mantenuti flussi di gioco credibili, percorsi minimi e distribuzione equilibrata tra zone sicure e pericolose.
I socket sono utilizzati sia come punto di ancoraggio visivo (per armi visibili), sia come placeholder invisibili controllati via script, che definiscono il comportamento degli oggetti in modo contestuale (rotazione, attivazione, distanza minima).
Framerate stabile, utilizzo di baked lighting dove possibile, caricamento asincrono delle texture e impostazioni LOD dinamiche permettono un’esperienza fluida anche su Meta Quest in standalone.