"ottimizzare alla fine" è come i progetti muoiono in certificazione. Un budget di performance (tetti di tempo di frame e memoria concordati prima che il contenuto sia costruito) trasforma l'ottimizzazione da crisi in controllo di routine. Budgeta millisecondi anziché poligoni, dividi il frame come una torta, misura a tre camere fisse, rendi i numeri visibili dove avviene il lavoro, e tira le leve in ordine di costo-efficacia quando una scena va in rosso. Questo articolo dà l'intero sistema, con numeri di partenza da adattare.
La vista è sempre il conto: distanza di disegno massima, ogni sistema a schermo insieme, ogni anello di LOD attivo. Budgeta per questa vista: il corridoio si arrangia da solo.
Budgeta il tempo di frame, non i poligoni
I budget di poligoni sono un reperto: le GPU moderne soffocano su draw call, overdraw, ombre e banda di memoria molto prima dei triangoli grezzi. Budgeta ciò che davvero misuri: millisecondi per sistema, per vista.
Un gioco a 60 fps possiede 16,6 ms per frame; a 30 fps, 33,3 ms. Questo è l'intero budget, condiviso da tutto: gameplay, fisica, IA, VFX, UI e ambiente. La fetta dell'ambiente è una negoziazione con rendering e gameplay, ma deve essere un numero, concordato e scritto, altrimenti ogni discussione su se una scena è "troppo costosa" collassa in gusto e anzianità. Accanto al tempo di frame, dai tetti alle quantità che lo vincolano:
- draw call per vista (vincolano la CPU molto prima che la GPU tocchi il massimo),
- memoria di texture e mesh per zona di streaming (il numero che decide se streami o balbetti),
- luci che proiettano ombre in vista,
- hotspot di overdraw: vegetazione e VFX sono i soliti sospetti.
I tetti esatti dipendono da piattaforma e motore; la disciplina di avere tetti è ciò che si trasferisce a ogni progetto che spedirai mai. Un numero su cui puoi sbagliare batte una sensazione su cui puoi solo discutere.
Dividi il frame come una torta, in millisecondi
Dai una fetta a ogni reparto (gameplay, VFX, UI, ambiente) poi dividi di nuovo la fetta ambiente: terreno, vegetazione, prop, acqua. "Questa foresta è troppo costosa?" diventa una domanda oggettiva.
Una divisione di partenza praticabile per un titolo a 60 fps, da rinegoziare per progetto: ambiente totale 6–8 ms, di cui terreno ~1,5, vegetazione ~2–2,5, prop e strutture ~1,5, acqua e atmosfera ~1. Il punto non sono questi numeri esatti: è che quando la foresta misura 4 ms contro una fetta di 2,5 ms, la conversazione diventa "quale leva tiriamo" invece di "di chi è la colpa".
Le fette proteggono anche contro la sovra-ottimizzazione, un fallimento reale e costoso. Un sistema ben sotto la sua fetta è un invito a spendere il margine in qualità, non un trofeo da difendere. I team senza fette tendono a ottimizzare ciò che l'ingegnere più rumoroso ha notato, che raramente è il vero collo di bottiglia. Il grafico a torta ti dice dove sono davvero andati i millisecondi.
Misura a tre camere fisse
Budgeta per la peggiore vista realistica, non la media: scegli tre "camere di budget" fisse per mappa (peggior vista, spazio di combattimento più denso, interno più affollato) e misura esattamente lì, ogni volta.
I sorvoli casuali producono numeri casuali e argomenti infalsificabili. Le camere fisse producono linee di tendenza: la stessa vista, misurata settimanalmente, mostra esattamente quando e dove è atterrata una regressione e a chi chiederne. La peggior vista merita il ruolo da protagonista perché impila tutto insieme: distanza di disegno massima, ogni anello di LOD, terreno, acqua e cielo simultaneamente. Una mappa che tiene il budget alla sua vista lo tiene quasi ovunque; i corridoi ti lusingano, le viste dicono la verità.
Salva le posizioni di camera nella mappa così chiunque riproduca l'inquadratura esatta. "Gira bene sulla mia macchina da qualche angolo" non è un dato; "la camera di budget 2 misura 9,2 ms su specifica minima, su da 7,8 la settimana scorsa" è un report di bug con un sospetto.
Rendi il budget visibile dove avviene il lavoro
Un budget in un wiki è morto: vive come overlay di stat durante l'allestimento, un controllo contro i tetti prima dei merge di contenuto, e avvisi quando una cottura sforerebbe il conteggio di istanze.
Gli artisti rispettano volentieri i budget quando il feedback è immediato, e li detestano quando arrivano come un ticket di bug tre mesi dopo che il lavoro è stato spedito. Il lato degli strumenti conta qui in modo silenzioso ma decisivo: quando scatter e blending cuociono a primitive native del motore (mesh istanziate e foliage ordinari, come fa Numivo) il tuo profiler esistente dice la verità senza trucco su di essi, senza un runtime di plugin che intorbidi i numeri, e ogni leva standard (distanze di cull, LOD, conteggi di istanze) si applica invariata. Un budget che puoi misurare solo attraverso una scatola nera è un budget di cui, in silenzio, smetterai di fidarti.
La cadenza di revisione che tiene
Catture settimanali delle tre camere di budget (cinque minuti), un controllo automatizzato dei tetti sui merge di contenuto, e una revisione mensile dei tetti stessi: i budget sono stime, e la revisione onesta batte la violazione silenziosa.
- Settimanale: screenshotta le tre camere con le stat accese; registra tempo di frame e memoria in un foglio condiviso. Le tendenze appaiono entro un mese, e un picco punta al lavoro di una settimana specifica.
- Al merge: un controllo automatizzato confronta la scena con i tetti. I numeri rossi aprono una conversazione, non un build rotto: l'obiettivo è la consapevolezza, non la burocrazia, e un blocco rigido addestra le persone a raggirare il controllo.
- Mensile: rivedi le fette stesse. La realtà a metà progetto differisce sempre dalle congetture di preproduzione; aggiustare il budget apertamente lo tiene credibile. Un budget che tutti ignorano in silenzio è peggio di nessuno, perché insegna al team che i tetti sono teatro.
Quando i numeri vanno in rosso
Tira le leve in ordine di costo-efficacia: distanze di cull e impostazioni delle ombre prima (minuti, guadagni enormi), poi LOD e impostor, poi conteggi di istanze, e solo per ultima l'arte stessa.
L'ottimizzazione è triage, non demolizione. Abbatti l'arte per ultima: la maggior parte delle viste fuori budget torna verde da cambiamenti di impostazioni invisibili molto prima che tu debba cancellare qualcosa che un giocatore può vedere.
L'errore costoso è saltare dritto a "cancella metà degli alberi". La densità è la leva più visibile e di solito non la più economica: una vista sopra di 2 ms torna tipicamente verde dal solo tuning di distanza d'ombra e di cull, entrambe invisibili ai giocatori. Cancellare contenuto è l'ultima risorsa proprio perché è l'unica leva che i giocatori possono vedere; ogni piolo sopra di essa sulla scala è gratis dal punto di vista dell'arte. Scendi la scala e preservi il look mentre recuperi i millisecondi; sali dal basso e rendi il gioco più brutto prima di aver provato le vittorie gratis.
Numeri sul campo che vale la pena rubare
- Frame a 60 fps: 16,6 ms; gli ambienti negoziano tipicamente 6–8 ms
- Una sotto-divisione d'ambiente praticabile: terreno 1,5 / vegetazione 2–2,5 / prop 1,5 / acqua e atmosfera 1 (ms)
- Camere di budget per mappa: 3 (vista, combattimento, interno) salvate nella mappa
- Costo di misurazione settimanale: ~5 minuti; valore: linee di tendenza invece di discussioni
- Ordine delle leve in rosso: culling → ombre → LOD → istanze → arte
Mini-FAQ
Chi possiede il budget d'ambiente? Una persona nominata (di solito un tech artist) possiede la misurazione; i tetti sono posseduti congiuntamente con il rendering. I budget senza proprietario decadono in folklore entro un mese, perché "tutti sono responsabili" significa che nessuno misura.
Come funzionano i budget con l'ora del giorno dinamica? Misura la peggiore condizione di luce a ogni camera, non la più bella. L'alba con lunghe ombre radenti costa spesso il doppio del mezzogiorno; un budget che tiene solo a mezzogiorno è mezzo budget, e i giocatori troveranno l'ora costosa.
Mi serve tutto questo per un piccolo progetto indie? Riducilo, non toglierlo. Una camera di budget, un tetto (tempo di frame sulla tua macchina a specifica minima), controllato settimanalmente. L'abitudine di cinque minuti è ciò che salva l'ultimo mese, indipendentemente dalla dimensione del team; la modalità di fallimento è identica: scoprire il costo quando è costoso da correggere.
E la memoria rispetto al tempo di frame? Sono budget diversi con modalità di fallimento diverse: il tempo di frame abbassa gli FPS, la memoria trasforma lo streaming in balbettii o crash. Budgeta entrambi; su console la memoria è spesso il tetto più duro, ed è quello che fa fallire la certificazione anziché sembrare solo brutto.
Il budget non è un limite all'arte: è la ragione per cui la scena bella sembra ancora bella a 60 fps sull'hardware che i giocatori davvero possiedono. I team che trattano la performance come un vincolo di design condiviso spediscono giochi più belli dei team che la trattano come un boss finale.