Come abbiamo realizzato Night At The Mall con UE5
Developer blog: dietro le quinte del nostro horror psicologico. Tecnologia, sfide e soluzioni con Unreal Engine 5.
Perché Unreal Engine 5?
Quando abbiamo iniziato lo sviluppo di Night At The Mall, avevamo obiettivi chiari: atmosfera fotorealistica, illuminazione dinamica complessa e performance ottimali anche su hardware medio.
Unreal Engine 5 offriva esattamente ciò di cui avevamo bisogno: Lumen per illuminazione globale in tempo reale, Nanite per geometria dettagliata senza impatto prestazionale, e un ecosistema maturo di plugin e tool.
Lumen: l'illuminazione che crea terrore
Illuminazione globale dinamica
Lumen ci ha permesso di creare illuminazione fotorealistica senza bisogno di baking. Ogni luce nel centro commerciale reagisce in tempo reale, creando ombre e riflessi dinamici che amplificano il terrore.
- Insegne al neon che proiettano luci colorate disturbanti
- Ombre che si muovono quando non dovrebbero
- Riflessi su superfici metalliche che rivelano presenze
- Transizioni giorno/notte fluide per sezioni oniriche
Luce volumetrica e atmosfera
La nebbia volumetrica di Lumen è stata fondamentale. Raggi di luce attraverso polvere e fumo creano l'atmosfera opprimente che caratterizza Night At The Mall. Ogni fascio di luce guida lo sguardo del giocatore dove vogliamo.
Nanite: dettaglio senza compromessi
Nanite ci ha liberato dalle limitazioni tradizionali dei poligoni. Abbiamo potuto importare asset fotogrammetrici ad altissima risoluzione senza preoccuparci di LOD manuali.
Asset fotogrammetrici
Negozi, banconi, manichini—tutto scansionato da centri commerciali reali degli anni '80. 10+ milioni di poligoni per asset, zero impatto prestazionale.
Architettura complessa
Il centro commerciale ha tre piani interconnessi, centinaia di negozi, ogni uno con interni dettagliati. Impossibile senza Nanite.
Dettagli che vendono l'illusione
Graffiti sui muri, crepe sul pavimento, polvere accumulata—dettagli microscopici che rendono l'ambiente credibile.
MetaHuman e animazioni
Per i personaggi e le presenze inquietanti, abbiamo utilizzato MetaHuman Creator. La qualità fotorealistica dei volti amplifica l'uncanny valley quando qualcosa è... sbagliato.
Animazioni procedurali
Invece di animazioni predefinite, abbiamo implementato sistemi procedurali per movimenti naturali ma leggermente... errati. Un NPC che cammina con ritmo quasi corretto ma non del tutto.
Questo crea disagio subconscio. Il cervello nota che qualcosa non va, ma non riesce a identificare cosa.
Sound design: MetaSounds e audio spaziale
Il sistema MetaSounds di UE5 ci ha permesso di creare audio procedurale complesso. Ogni suono si adatta dinamicamente all'ambiente e alle azioni del giocatore.
Audio binaurale 3D
Steam Audio integrato per spazializzazione realistica. Senti passi dietro di te? È davvero lì.
Occlusione dinamica
Suoni che cambiano passando attraverso muri, vetri, porte. Realismo che amplifica immersione.
Strati ambientali
5-7 layer per ogni ambiente: aria condizionata, elettricità, rumori lontani, respiro del giocatore.
Frequenze subliminali
Toni bassi 15-25 Hz che creano disagio inconscio. Non li senti, ma li percepisci.
Ottimizzazione per hardware medio
Come studio indie, sapevamo che molti giocatori non hanno GPU top di gamma. L'ottimizzazione era cruciale.
- •Scalabilità automatica: Settings che si adattano dinamicamente all'hardware
- •Culling aggressivo: Solo ciò che vedi viene renderizzato
- •Level streaming: Aree caricate dinamicamente per ridurre memoria
- •Compressione texture: Qualità visiva mantenuta con file size ridotti
Requisiti di sistema
Grazie all'ottimizzazione, Night At The Mall gira su:
- Minimo: GTX 1060 / RX 580, 8GB RAM, 15GB storage
- Consigliato: RTX 2060 / RX 5700, 16GB RAM
- Ultra: RTX 3070+ per Lumen e Nanite completi
Sfide e soluzioni
Problema: Frame rate instabili
Lumen causava drop FPS in aree con molte luci dinamiche.
Soluzione: Baking strategico di luci statiche + Lumen solo per elementi dinamici.
Problema: File size eccessivo
Asset fotogrammetrici generavano 50+ GB di build.
Soluzione: Compressione Oodle + rimozione asset invisibili = 15GB finale.
Problema: Audio spaziale impreciso
Suoni che sembravano provenire da direzioni sbagliate.
Soluzione: Calibrazione Steam Audio + test con tester utilizzando cuffie di riferimento.
Lezioni per sviluppatori indie
- 1.UE5 è accessibile: Non servono team enormi. Noi siamo 3 persone
- 2.Marketplace accelera sviluppo: Asset pronti + modifiche custom
- 3.Ottimizza da subito: Non aspettare fine sviluppo
- 4.Sound design = priorità: Più importante della grafica per horror
- 5.Playtest costante: UE5 offre tool eccellenti per profiling