Wars of Prasia, l'MMO di Nexon sviluppato con il nome in codice Project: ER, rappresenta una sfida tecnica enorme integrando assedi di castelli con centinaia di giocatori in tempo reale. Il suo motore, Unreal Engine 4, gestisce un ciclo giorno/notte dinamico tramite illuminazione globale, mentre gli strumenti Maya e Substance Suite definiscono una pipeline di asset pensata per l'efficienza sia su PC che su dispositivi mobili.
Pipeline di asset e sistema di illuminazione globale dinamica 🎨
Il team di Nexon utilizza Maya per la creazione di modelli poligonali di alta qualità, che vengono poi elaborati in Substance Painter e Substance Designer per generare texture con mappe normali e occlusione ambientale. Questi asset passano attraverso un processo di ottimizzazione in cui vengono ridotti i LOD (livelli di dettaglio) e viene implementato un sistema di streaming delle texture. L'illuminazione globale dinamica, chiave per il ciclo giorno/notte, si basa su Lightmass per il baking delle luci statiche e su Distance Field Shadows per le ombre in tempo reale durante gli assedi. Per il gioco incrociato, vengono applicati scaling dinamici della risoluzione e ombreggiatura per vertici sui dispositivi mobili, mentre il PC mantiene riflessi in spazio schermo e post-processing completo.
Gestione delle prestazioni negli assedi multigiocatore massivi ⚔️
La sfida tecnica più grande è mantenere 30 FPS stabili con centinaia di giocatori sullo schermo. Wars of Prasia ricorre all'istanziazione di mesh per mura e catapulte, occlusion culling tramite volumi precalcolati e un sistema di priorità dei personaggi che riduce la frequenza di aggiornamento delle animazioni per gli avatar più lontani. Su dispositivi mobili, vengono disattivate particelle e ombre dinamiche, e viene utilizzato uno shader semplificato per il terreno, ottenendo così un'esperienza unificata senza sacrificare la giocabilità strategica.
Quali tecniche di ottimizzazione in Unreal Engine 4 ha implementato il team di Wars of Prasia per mantenere prestazioni stabili durante gli assedi massivi fino a cento giocatori simultanei, considerando anche la sincronizzazione richiesta per il gioco incrociato tra piattaforme?
(PS: gli shader sono come la maionese: se impazziscono, si ricomincia tutto da capo)