Speciale Hardware n.7

Avatar

a cura di Sidmarko

Se è vero, e sicuramente molti lo pensano, che i videogiochi inseguono il realismo a tutti i costi, allora l’avvento della simulazione in tempo reale della fisica è da considerarsi un passo in avanti molto importante verso il coronamento di questo obiettivo. Un elemento inutile o un’aggiunta fondamentale per il futuro dell’intrattenimento videoludico? Andiamo a scoprirlo insieme con questo approfondimento.

Cosa fa un motore fisico in un videogioco? Ma lo fa bene?Prima di parlare di fisica, dobbiamo partire dallo spiegare cosa “crea” o, per meglio dire, “simula” questo fenomeno all’interno di un videogioco. Esiste un software (motore fisico) che, analogamente a quanto fatto da un motore grafico, calcola ed elabora in tempo reale variabili come massa, velocità e tempo tramite algoritmi che vengono poi applicati per simulare i movimenti dei solidi, ma anche singole particelle come acqua e polvere, e le loro interazioni con altri corpi o forze esterne. A questo punto il testimone passa al motore grafico (che spesso contiene già un suo motore fisico), cui spetta il compito di applicare graficamente i dati elaborati dal motore fisico, detto senza troppi tecnicismi: “li rende visibili”. Se volessimo paragonare la fisica dei videogiochi a “quella vera”, dovremmo dire che, nonostante una certa somiglianza nei comportamenti, i motori fisici sono ben lungi dal rappresentare realisticamente i comportamenti che osserviamo nel Mondo reale. Infatti, secondo alcuni scienziati che si occupano di fisica simulata, gli algoritmi che vengono utilizzati nei videogiochi sono “semplici” approssimazioni delle leggi newtoniane. Almeno per ora, quindi, non possiamo parlare di fisica videoludica realistica, ma solamente verosimile.

Newton e i videogiochiQuando le console erano a 16 bit e nei bar infestavano i cabinati, il videogiocatore medio era meno pretenzioso in termini di realismo: cercava solamente uno svago che lo estraniasse momentaneamente dalla noiosa routine quotidiana. Ma si sa, i tempi cambiano e i videogiocatori pure. Next Gen, grafica da milioni di poligoni e texture in alta definizione: ora si è molto più esigenti e il videogioco, pur rimanendo tale, deve rappresentare fedelmente ciò che sono certi aspetti della realtà. L’aspetto grafico è stato il primo elemento a seguire tale filosofia, facendo del fotorealismo il suo cavallo di battaglia e basta voltarsi indietro solo per un attimo per rendersi conto di quanto si è arrivati lontani. Sulla stessa lunghezza d’onda prosegue l’emulazione della fisica, secondo il modello stilato da Isaac Newton che, come già detto, verte sulle interazioni fra corpi e il condizionamento da parte di fattori esterni, naturali o artificiali che siano. Partendo dall’utilizzo dimostrativo su piccoli software, mini-game o puzzle game, la simulazione della fisica è riuscita negli anni a ritagliarsi un ruolo di primo piano nello sviluppo del videogioco, ponendosi addirittura, in certi casi, come elemento principale dell’intera esperienza ludica. Basti pensare a come sarebbero i titoli moderni senza il supporto di una fisica adeguata, e come, infatti, ne risentano negativamente quelli dotati di una pessima implementazione. Se però, inizialmente, tutti i calcoli venivano gestiti unicamente dalla CPU, col passare del tempo la mole di lavoro richiesto si fece sempre maggiore e venne richiesta la presenza di un hardware dedicato. Il primo produttore a pensarci fu Ageia con le sue PPU, (Physics Processing Unit), le quali si sobbarcarono l’intero calcolo della fisica, ma senza ottenere un grande successo a causa di prestazioni poco convincenti. A seguire, grazie a Nvidia, è arrivata la possibilità di affidare il calcolo direttamente alle GPU, con l’opportunità di utilizzare una scheda video per il calcolo della grafica e una per quello della fisica. Anche qui, a livello di prestazioni, il guadagno non si rivelò molto significativo, rivelandosi perlopiù una trovata commerciale che sdoganasse nuovamente le configurazioni Sli. Comunque, nella maggior parte dei casi, il calcolo della fisica viene delegato alla sola scheda video.

PhysX & Co.Durante lo sviluppo di un videogiochi, la scelta del motore fisico è molto importante, e i developer hanno a disposizione diversi software ai quali affidarsi per la simulazione delle leggi fisiche. I due più grandi nomi in questo campo sono PhysX, sviluppato da Ageia e poi inglobato dalla grande azienda californiana Nvidia, e l’ottimo Havok, di proprietà Intel. A testimoniare il loro pregiato curriculum ci sono ottimi titoli sviluppati sotto la loro “supervisione”. Ad esempio con PhysX sono stati sviluppati giochi come Mass Effect 1 e 2, Mafia 2, la serie Ghost Recon, Batman Arkham Asylum, Metro 2033, Need For Speed: Shift e molti altri. Anche Havok non è da meno, e tra i suoi lavori spiccano Fable 2, Killzone 2, Bioshock, Oblivion, StarCraft 2, Uncharted 2, Diablo III e tanti altri. All’orizzonte esistono altri interessanti motori fisici, come l’ottimo Euphoria, apprezzato di recente nel selvaggio West di Red Dead Redemption e in GTA IV.

Le controversie Nvidia-AtiNvidia, grazie a CUDA, ha implementato nelle sue GPU il supporto alle API PhysX. In questo modo la fisica viene calcolata dalle schede grafiche, con grande vantaggio prestazionale rispetto a quando veniva calcolata dalla CPU. Ma Ati, invece? L’accoppiata Ati/AMD in questo senso non è mai riuscita a giocarsela alla pari. Inizialmente ha provato ad interfacciarsi con il motore Havok, per poi sviluppare, in collaborazione con Pixelux Entertainment, il motore fisico open-source Bullet che utilizza il framework OpenCL (adoperato da Apple, AMD, IBM e anche Nvidia) per il GPGPU Computing. Chiare mosse per contrastare la proposta PhysX, ma mai all’altezza. Tutta questa voglia di proporre qualcosa di diverso da parte di AMD/ATI è riconducibile al boicottaggio di Nvidia nei confronti delle schede video Ati Radeon, tramite la disattivazione del supporto PhysX nei sistemi che utilizzano tali GPU. Una chiara scelta cautelativa, ma decisamente poco corretta, anche perché Nvidia ha sempre considerato PhysX uno standard libero. Recentemente Nvidia ha dichiarato la possibilità di portare le API PhysX su OpenCL, il che renderà finalmente compatibili le GPU Ati e il motore fisico PhysX. Comunque tutto è ancora da vedere, in primis perché non è detto che ciò venga fatto (CUDA funziona già perfettamente) e inoltre Nvidia non ha assicurato che il connubio PhysX/Ati possa funzionare ottimamente: a detta di Nvidia, per chiari limiti tecnici della tecnologia concorrente ma ciò è vero solo in parte. Sarebbe però un’ottima mossa per Ati che colmerebbe così questo fastidioso gap nei confronti di Nvidia, e, inoltre, renderebbe PhysX uno standard, rincuorando anche i poveri sviluppatori di videogiochi che si trovano sempre fra il martello e l’incudine.

In questi ultimi anni il ruolo della fisica all’interno del videogioco è passato da elemento di contorno a vero protagonista, riuscendo ad evolversi in modo esponenziale e subitaneo grazie, soprattutto, alle grandi risorse di cui dispone l’hardware moderno. Ovviamente non si può parlare di vera simulazione delle leggi newtoniane, ma solamente di verosimiglianza. In ogni caso, i passi fatti finora sono giganteschi e vedendo certi giochi la resa è davvero molto interessante. Il futuro del realismo è sempre più vicino, è solo questione di tempo, probabilmente poco.