Intervista con Philipp Krause

PCGH: Il vostro motore grafico è stato prodotto internamente. Perché non avete optato per un motore in licenza? Quali sono i vantaggi di sviluppare autonomamente il proprio engine?

Philipp Krause
Philipp Krause

Krause: Abbiamo preso in considerazione diversi engine, ma il motivo principale per cui li abbiamo scartati tutti era che al momento della scelta non ne esisteva nemmeno uno in grado di gestire un mondo vasto come quello di Gothic 3 senza caricamenti. Un altro motivo è che un mondo del genere impone anche un modo di lavorare particolare, infatti i nostri editor sono stati adattati per poter gestire una mole enorme di dati. Infine, un motore sviluppato 'in casa' può essere riutilizzato con facilità in un altro progetto.

PCGH: L'engine di "Gothic 3" contiene ancora parti del vecchio "Gothic 2", oppure è stato programmato da zero?

Krause: Il motore di "Gothic 3" è stato sviluppato "from scratch". Ovviamente abbiamo potuto contare sulle conoscenze accumulate durante lo sviluppo dei titoli precedenti, ma visto che il nuovo motore possiede un'architettura profondamente diversa rispetto a quella dei vecchi motori, nessuna riga di codice è stata riutilizzata.

PCGH: Avete fatto uso anche di licenze middle-ware come SpeedTree ed EmotionFX. Quali sono i punti di forza dei suddetti software? Avete integrato altri componenti di terze parti nel motore?

Krause: SpeedTree ormai è diventato una specie di presenza costante in tutti gli engine di gioco e ci ha convinto subito per la grafica realistica che genera e per l'editing molto semplificato che offre. Inotre abbiamo integrato anche l'engine Novodex della Ageia e alcuni piccoli progetti open-source per quanto riguarda l'editor.

PCGH: Quali sono i punti salienti grafici e tecnici del motore con i quali contate di surclassare la concorrenza (la renderizzazione dell'acqua, la distanza della visuale, il dettaglio, ecc...)?

Krause: Gothic è sempre stato apprezzato più per l'atmosfera convincente e per il mondo modellato con cura e amore, che per il suo livello tecnico. Non intendo che non puntiamo su una grafica di prim'ordine. Piuttosto, cerchiamo di adattare la tecnologia alla rappresentazione del famoso "Gothic-Look". Visto che nel mondo di Gothic è essenziale che tutto non sembri pulito e splendente, abbiamo fatto un uso molto più discreto delle Specular-Highlights (riflessi speculari della luce n.d.Lck) rispetto ad Oblivion o alcuni FPS. Per conferire al gioco l'atmosfera desiderata abbiamo invece sviluppato un mondo vasto con un sistema meteorologico dinamico. L'enorme distanza di renderizzazione viene migliorata ancora dal Depth of Field. Grazie poi ad un sistema molto flessibile di shader, i nostri artisti si sono potuti sfogare come più gli pareva: per esempio ci sono dei vetri con effetto distorsione e altri dettagli che attireranno l'attenzione del giocatore. Infine, posso dire che tutto in Gothic è stato creato a mano: questo concerne sia il paesaggio, dalle enormi fortezze degli orchi al più piccolo dei fuscelli d'erba.
Un altro aspetto tecnico notevole è la raffinata IA e il pathfinding (parte della IA che concerne l'individuazione di percorsi n.d.Lck) che permette ai NPC di attraversare tutto il mondo liberamente.

PCGH: Quali sono invece i punti di forza del renderer? Sarà possibile goderne anche con una scheda dotata solo dello shader model 1 o 2?

Krause: Penso si tratti indubbiamente del sistema di illuminazione e di ombre, che supporta luci diffuse e speculari per-pixel (calcolata con precisione al pixel e non al vertice n.d.Lck) dinamiche e statiche, come anche l'illuminazione ambientale per-pixel-spherical-harmonics con occlusione per-vertex-ambient (ok... questa non l'ho capita n.d.Lck). Si potrà godere del massimo grafico soltanto con una scheda con shader-model 3. Già con una scheda dotata di shader-model 2 alcune chicche grafiche dovranno essere disattivate (per esempio il Depth of Field). Con una scheda shader-model 1 si dovrà rinunciare del tutto alla luce per-pixel e al parallax mapping (tecnica particolare di bump mapping che permette un aspetto simil-tridimensionale sulle texture n.d.Lck).

PCGH: Come vengono generati i vostri shader? Vengono compilati al volo sul computer sul quale si gioca tramite codice HLSL (High level shader language n.d.Lck) oppure avete sfruttato pacchetti di shader precompilati?

Krause: Abbiamo utilizzato gli shader HLSL. Da notare che per ogni tipo di shader (acqua, vegetazione, particelle, cielo...) e per ogni versione di shader-model è stato scritto del codice apposito ed indipendente. Uno shader di questo genere contiene soltanto il codice relativo al suo campo d'interesse. Al momento dell'applicazione di uno shader complesso, si richiamano le parti di codice compilate per i singoli shader semplici. Questi shader vengono amministrati in modo tale che di ognuno di essi ne esista una sola copia in memoria alla volta.
Nel nostro editor di materiali è possibile raggiungere qualsiasi combinazione di shader. È possibile mescolare colori e texture a piacere, e sfruttare effetti quali lo scrolling delle texture e il parallax-mapping.

PCGH: Sfruttate le novità introdotte dallo shader-model 3 come il "dynamic branching" (espressione condizionale di basso livello all'interno dello shader n.d.Lck)? [...] Oppure utilizzate lo shader-model 3 per nuovi effetti come il "vertex texturing" o la renderizzazione in virgola mobile a 32bit (versione avanzata dell'HDR n.d.Lck)?

Krause: Il dynamic branching viene utilizzato raramente, visto che se utilizzato male può rallentare la renderizzazione piuttosto che velocizzarla. [...] Al momento non abbiamo effetti che si basino sul vertex texturing e sul rendering FP32.

PCGH: Gothic 3 supporta una vera illuminazione FP16-HDR? Se sì, con quale livello di dettaglio? Ci sono alternative per schede che non supportano questo effetto?

Krause: No, non facciamo uso di nessun rendering FP-HDR.

PCGH: Vi siete già confrontati con il tema Direct3D 10 e shader-model 4 di Windows Vista? Sfrutterete le potenzialità di queste nuove librerie e che effetto avranno sulle visuali di Gothic?

Krause: Dato che nessuna scheda attuale supporta né DirectX 10 né shader-model 4, ci siamo curati relativamente poco di questo aspetto. È chiaro ad ogni modo che il passo da Dx9 a Dx10 è piuttosto radicale e richiederà la riscrittura di moltissimi sistemi.

PCGH: Il sistema di rendering è ottimizzato per lo SLI e/o il Crossfire?

Krause: Lavoriamo a stretto contatto con ATi ed nVidia e puntiamo al supporto di entrambi i sistemi multiGPU. Non posso dire al momento se ciò avverrà subito alla release o successivamente con una patch.

PCGH: Saranno supportate risoluzioni widescreen (16/10, 16/9) o la rappresentazione su più monitor?

Krause: No.

PCGH: Il vostro engine è ottimizzato per i processori dual-core? Se sì, quali operazioni verranno svolte su thread (singole unità di esecuzione di un processo n.d.Lck) separati? Si può contare su un guadagno di performance?

Krause: A causa dell'enorme mondo senza caricamenti di Gothic 3, sarà necessario caricare continuamente modelli o texture durante il gioco. Chi possiede un processore con più core avrà un sicuro vantaggio rispetto ai sistemi a core singolo. Oltre ai soliti thread come per esempio la fisica o l'audio, abbiamo un thread specifico per il caricamento degli elementi statici del mondo e uno per la generazione della geometria. Ci sarà un guadagno prestazionale attorno al 30%.

PCGH: Qual'era l'obiettivo durante l'ottimizzazione per sistemi dual-core? Puntavate ad una IA od una fisica migliore?

Krause: Il nostro obiettivo era soprattutto il raggiungimento di una esperienza di gioco per quanto possibile priva di rallentamenti, nonostante l'ambientazione immensa.

PCGH: Perché per quanto riguarda il motore fisico avete scelto un motore di terze parti (Novodex-Engine)? Quali sono i vantaggi di questo engine, eccetto il supporto delle schede PhysX?

Krause: Beh, scrivere da zero un proprio motore fisico è un'impresa piuttosto ardita e certamente connessa ad un investimento importante in termini di tempo. Abbiamo considerato che ci sarebbe convenuto acquistare la licenza della Novodex.

PCGH: Su quali dettagli fisici dovrà rinunciare un giocatore sprovvisto di scheda fisica Ageia?

Krause: Nessuno, poiché non ci sarà un uso eccessivo della fisica in Gothic 3.

PCGH: Cosa pensi dell'idea della concorrenza di Ageia (ATi ed nVidia) di accelerare il calcolo della fisica tramite scheda video?

Krause: L'idea in sé non è proprio nuova, poiché a partire dallo shader-model 3, la GPU viene già sfruttata per molti usi non relativi alla grafica. È probabile comunque che solo una piccola parte della fisica verrà calcolta sulla scheda video, per non sviarla del tutto dal suo compito principale. Ad ogni modo, non mi sono ancora dedicato del tutto alla questione.

PCGH: La fisica in "Gothic 3" influenzerà anche il gameplay o permetterà solamente qualche effetto grafico? Quali oggetti del gioco dispongono di caratteristiche fisiche?

Krause: No, la fisica non influenzerà il gameplay. Sarà implementato il "Ragdoll", ma il resto sarà interamente "rigid-body".