Cities Skylines II: la sfida tecnica di simulare città con Unity ECS

28 May 2026 Pubblicato | Tradotto dallo spagnolo

Il lancio di Cities: Skylines II ha ridefinito gli standard di performance nei simulatori urbani. Dietro la sua capacità di gestire migliaia di cittadini individuali con comportamenti unici si trova un'architettura Unity altamente modificata, basata sul sistema ECS (Entity Component System). Questo approccio consente di elaborare simultaneamente la logica del traffico, dell'economia e del ciclo di vita di ogni entità senza saturare la CPU, un risultato cruciale per mantenere un frame rate stabile in città dense.

Screenshot di Cities Skylines II che mostra una città densa con traffico ed edifici dettagliati in tempo reale

Flusso di asset e ottimizzazione geometrica con Maya e Houdini 🏗️

Il livello di dettaglio estremo di edifici e infrastrutture non sarebbe possibile senza un flusso di lavoro automatizzato tra Autodesk Maya e Houdini. In Maya vengono modellati gli asset base, mentre Houdini genera variazioni procedurali (finestre, tetti, texture di usura) che vengono esportate come mesh LOD (Level of Detail) ottimizzate per Unity. Il trucco tecnico risiede nell'integrazione di queste varianti con il sistema ECS: ogni entità cittadina o veicolo fa riferimento a una mesh LOD dinamica che si semplifica in base alla distanza dalla telecamera, liberando memoria della GPU. Per il ciclo giorno/notte, vengono utilizzati shader personalizzati che interpolano tra texture albedo ed emissive, mentre il clima dinamico utilizza particelle ECS per pioggia e neve, evitando l'overhead dei sistemi di particelle tradizionali.

Lezioni per sviluppatori di simulazione di massa 🎯

Se hai intenzione di implementare un'architettura simile, dai priorità alla separazione dei dati di rendering e della logica fin dall'inizio. L'errore più comune è trattare ogni cittadino come un GameObject, il che collassa il motore. Invece, usa entità ECS con componenti leggeri (posizione, stato, destinazione) e un sistema di pooling per riutilizzare le entità inattive. Inoltre, programma le transizioni climatiche come interpolazioni nel sistema temporale globale, non come eventi discreti; questo evita picchi di calcolo. Infine, automatizza la generazione di LOD in Houdini con nodi di riduzione poligonale, poiché il dettaglio geometrico estremo è visibile solo a breve distanza.

Come affronta il team di Colossal Order la sfida della sincronizzazione dei dati tra i sistemi Unity ECS e gli agenti individuali per mantenere la stabilità delle performance in città ad alta densità in Cities: Skylines II?

(NDR: uno sviluppatore di giochi è qualcuno che passa 1000 ore a creare un gioco che le persone completano in 2)