Da prati vuoti a circuiti vivi
I tracciati non esistono nel vuoto. Lo spazio attorno all’asfalto conta — vende la scala, ancora la telecamera e trasforma una vista 2D piatta in qualcosa che sembra un luogo reale. Ecco come The Undercut riempie quello spazio con foreste generate proceduralmente.
Perché gli alberi contano in un racing game top-down
A prima vista, gli alberi in un gioco 2D top-down sembrano pura decorazione. Ma svolgono diversi ruoli critici:
- Indicatori di profondità — chiome sovrapposte con ombre rompono la piattezza della vista a volo d’uccello e danno al terreno un senso di elevazione
- Riferimento di scala — un’auto che passa accanto a un gruppo di alberi comunica istantaneamente velocità e distanza
- Inquadratura del tracciato — la vegetazione guida naturalmente l’occhio lungo il layout del circuito, rendendo curve e rettilinei più leggibili
- Atmosfera — una pista nuda su erba piatta sembra un ambiente di test, non una sede di gare
La sfida: ogni circuito è generato proceduralmente, quindi gli alberi non possono essere posizionati a mano. Devono emergere dagli stessi dati che costruiscono il tracciato stesso.
Tre strati di foresta
Il sistema vegetazione costruisce ogni albero da tre strati impilati, renderizzati dall’alto:
- Ombra a terra — un’ellisse grande, morbida e scura sotto la chioma. Ancora l’albero al terreno e fornisce la prima sensazione di profondità. Un secondo strato d’ombra più stretto aggiunge variazione di densità.
- Chioma — il corpo principale dell’albero. Ogni chioma è un cluster di cerchi sovrapposti con leggera variazione di colore e dimensione, dando una silhouette organica e irregolare. I cambi di tonalità entro un range controllato mantengono la palette naturale evitando la monotonia.
- Ombra interna — un sottile anello scuro intorno al bordo interno della chioma. Questo simula l’auto-ombreggiatura che si vede guardando dall’alto in una corona d’albero, aggiungendo volume senza alcuna geometria 3D.

La combinazione si legge come sorprendentemente tridimensionale dalla telecamera top-down — le chiome sembrano fluttuare sopra il terreno, proiettando ombre reali sotto di loro.
Regole di posizionamento
Gli alberi sono distribuiti sul terreno usando una mappa di densità derivata dal layout del tracciato:
- Zone di esclusione attorno alla superficie della pista, ai cordoli, alle vie di fuga in sabbia e alla pit lane — nessun albero deve bloccare l’azione di gara o intersecare la geometria della pista
- Decadimento di densità — più alberi vicino ai bordi della pista (incorniciando il circuito), che si diradano verso i confini della mappa
- Formazione a cluster — gli alberi non spawnano individualmente. Un punto genitore genera un piccolo gruppo di 3-8 alberi con offset casuali, creando boschetti dall’aspetto naturale invece di una griglia uniforme
- Variazione di dimensione — ogni cluster mescola alberi a chioma grande con altri più piccoli, imitando un vero margine di foresta in cui gli alberi alti riparano la crescita più giovane
L’algoritmo di posizionamento gira una sola volta quando il circuito viene generato — sotto i 50 millisecondi per una foresta completa.
Tuning live
Ottenere il look giusto ha richiesto iterazioni costanti. Invece di ricompilare e ricaricare, ogni parametro visivo è esposto in un pannello di debug in tempo reale:

Il pannello espone oltre 15 parametri:
- Shadow Alpha / Scale / Diffuse — controllano l’oscurità, la dimensione e la morbidezza di entrambi gli strati di ombra
- Tree Factor — moltiplicatore di densità globale, che controlla quanti alberi popolano la scena
- Shadow Offset — sposta l’ombra rispetto alla chioma, simulando un angolo del sole
- Inner Shadow Alpha / Scale — l’anello di auto-ombreggiatura dentro ogni chioma
- Mipmap Bias — nitidezza delle texture a diversi livelli di zoom
- Hue Min / Max — il range di toni verdi nella chioma, da foresta scura a primavera luminosa
- Cumulative blending — gli strati di ombra possono fondersi additivamente per aree di sovrapposizione più dense
Ogni modifica si aggiorna istantaneamente sulla vista live del tracciato. Questo loop di feedback ha reso possibile mettere a punto il look esatto in minuti invece di ore — e adattare rapidamente la palette per diversi temi di circuito o stagioni.
Tenerlo veloce
Le prestazioni contano — The Undercut punta ai 60 FPS anche su hardware modesto, e una foresta completa può significare centinaia di alberi a schermo.
Ottimizzazioni chiave:
- Rendering a istanza — tutti gli alberi condividono la stessa geometria di base, disegnata in un singolo batch con trasformazioni e offset di colore per istanza
- View frustum culling — gli alberi al di fuori dell’area visibile della telecamera vengono saltati interamente
- LOD per zoom — a livelli di zoom lontani, il dettaglio dell’ombra è semplificato e gli alberi piccoli vengono scartati
- Texture atlas — le variazioni di chioma sono impacchettate in un singolo foglio di texture, evitando draw call per albero
Il risultato: una foresta completa renderizza in meno di 1 ms per frame, lasciando libero il budget GPU per il rendering della pista, le auto e la UI.
Il risultato
Ciò che è iniziato come “aggiungiamo un po’ di verde attorno alla pista” è diventato un sistema che trasforma genuinamente la sensazione del gioco. I circuiti che sembravano piatti e sterili ora sembrano incastonati in un paesaggio. Le ombre vendono profondità. La variazione di colore vende vita. E poiché è tutto procedurale, ogni tracciato generato ottiene una foresta unica che si adatta al suo layout — nessun lavoro manuale richiesto.
Ogni gara, un nuovo circuito. Ogni circuito, una nuova foresta.
