In una certa misura, questa è una funzione della modalità di rendering 3D. Ad esempio, OpenGL eliminerà automaticamente la geometria al di fuori dell'intervallo -1,0, +1,0 nello spazio dello schermo XY (Z è più complesso ma simile). La geometria abbattuta non genera mai frammenti (approssimativamente pixel) e quindi non viene mai trasformata in immagini reali, nonostante venga inviata al sistema per il rendering. In ogni caso, è impossibile scrivere nello spazio all'esterno della finestra di rendering (se tutto funziona come dovrebbe).
In alcuni contesti, è sufficiente fare affidamento su questo comportamento come ottimizzazione. Tuttavia, devi ancora passare tutti i tuoi dati di gioco attraverso almeno una fase di rendering (vertex shader) prima che la scheda video possa sapere cosa è visibile. In qualcosa come, diciamo, Skyrim, sarebbe impraticabile. Non solo devi inviare tutti i vertici del mondo attraverso la pipeline di rendering, ma devi caricare tutti i vertici nella memoria di sistema / video. È inefficiente, se possibile.
Quindi, molti giochi faranno uso dell'abbattimento basato sulla CPU. In genere implementeranno una sorta di sistema LOD (livello di dettaglio), in cui la qualità e l'esistenza delle risorse sono influenzate dall'importanza della loro valutazione in un determinato contesto. Una maglia piramidale potrebbe essere un'approssimazione accettabile per una montagna se ci si trova a 50 miglia di distanza. Se non riesci a vederlo (come se fosse bloccato da altre montagne), non è nemmeno necessario caricarlo. Esistono diversi metodi più complessi per farlo che sono argomenti che non ritengo siano direttamente pertinenti alla profondità richiesta da questa domanda, ma guardiamo alla tassellatura per uno degli esempi più comuni.
La vera essenza di ciò è che la grafica è solo il prodotto del gioco. I dati effettivi non hanno nulla a che fare direttamente con ciò che si vede o non si vede per la maggior parte del tempo, e i dati vengono filtrati da varie fasi per rimuovere informazioni estranee prima di colpire il punto in cui un'immagine viene scritta sullo schermo. A seconda del design del motore, gli elementi visivi possono essere estremamente disaccoppiati dalla reale logica di gioco, nella misura in cui qualcosa come avere un'interfaccia 2D e 3D nello stesso gioco è una possibilità. È anche possibile che molti motori di gioco funzionino senza output; a volte questo è usato per testare l'intelligenza artificiale del gioco.
È lì che le cose possono complicarsi, però. In qualcosa di semplice come un gioco di Mario, non è troppo proibitivo calcolare il movimento di tutti i nemici nel livello, anche se non sono visibili. Nei contesti moderni, ciò che sta accadendo fuori dallo schermo è una vera domanda di seria considerazione. Se ci sono più intere città di NPC, come gestisci il loro comportamento quando sono completamente abbattuti, come quando il giocatore si trova in una città diversa? Vuoi davvero calcolare centinaia di decisioni degli NPC su tutta la mappa? La risposta di solito è no, ma l'approccio esatto per non farlo può variare e può avere un impatto sul gioco.
È importante notare che è così che funzionano le cose adesso . I vecchi giochi di Mario erano probabilmente programmati in modi molto diversi (non posso parlare con i modi esatti), dati i limiti estremi dell'hardware in quel momento. Il concetto di 3D non esisteva allora; eppure oggi quasi tutti i giochi, anche quelli interamente in 2D, usano il rendering 3D in qualche forma, anche se non sanno che lo fanno. L'hardware video moderno è il primo in 3D e il rendering 2D (almeno quando utilizza correttamente l'hardware) ignora semplicemente la terza dimensione.