Dopo la recensione di WorldOfRisen pubblicata ieri, ecco di seguito l’approfondita analisi tecnica e valutazione delle prestazioni che è stata svolta sul sito tedesco.
Introduzione
Di cosa parliamo qui? In questo sotto-articolo facciamo un’analisi tecnica del motore grafico della versione preview di Risen. Parleremo sia delle prestazioni, che delle caratteristiche del motore e della sua scalabilità.
Ci siamo preoccupati di realizzare un test approfondito, ma purtroppo abbiamo avuto alcune limitazioni. La nostra versione di prova era limitata da DRM con una singola attivazione, per cui non abbiamo potuto provare su più di una configurazione PC. Quindi tutti i test sono stati svolti sulle nostre configurazioni usuali e non siamo riusciti a provare se il gioco funzionasse sotto Linux/Wine o su Windows 7.
Configurazioni di prova
Ne configurazioni dei nostri 4 tester sono le seguenti:
Don Esteban | foobar | Jodob | v000nix | |
---|---|---|---|---|
CPU | Intel Core Duo E6600 (2×2,4 GHz) | AMD Phenom II X4 955 BE (4×3,2 GHz) | Intel Core 2 Quad Q6600 (4×2,4 GHz) | Intel Core 2 Duo T7250 (2×2,0 GHz) |
Scheda grafica | ATI Radeon 1950 XTX | NVidia GTX 260 | NVidia GTX 285 | NVidia 8400M GT (256MB, Shared Memory 1024MB) |
RAM | 2 GB DDR2-800 | 4 GB DDR2-1066 | 4 GB DDR2-800 | 2 GB DDR2 |
SO | Windows XP 32bit (SP3) | Windows XP 32bit (SP3, PAE) | Windows Vista 32bit | Windows Vista 32bit |
Caratteristiche del motore grafico
Screen Space Ambient Occlusion (SSAO)
Un pixel shader dedicato al miglioramento delle ombre in tempo reale. La tecnica consiste nel controllare che oggetti nella scena colpiti dalla luce assorbano la luce che colpisce gli oggetti dietro di loro. Tra le conseguenze negative della tecnica si ha che spesso il realismo delle ombre dipende dall’angolo di visione, la luce può estendersi troppo all’interno degli oggetti ed in alcuni casi si intravede un bordo di luce attorno agli oggetti.
High Dynamic Range Imaging (HDRI)
Una tecnica che permette di calcolare, internamente al gioco, più di 256 livelli di luminosità per ogni canale di colore. Grazie a questo è possibile renderizzare scene con alto contenuto dinamico, ad esempio una grotta scura con della luce del sole filtrante attraverso l’ingresso. Normalmente l’ingresso sarebbe sovraesposto oppure le zone più scure della grotta sarebbero sottoesposte (del tutto nere). Con l’HDRI entrambe le gradazioni di colore possono essere catturate, dopodiché i valori di luminosità vengono mappati su quelli del monitor mediante il cosiddetto Tone-mappaing. L’HDRI può essere disabilitato modificando il file INI, siccome in alcuni casi è possibile che si verificano degli errori di visualizzazione, in particolare in presenza di oggetti trasparenti.
Volumetric Lighting
Con questa tecnica, il cono di luce di una sorgente luminosa viene considerato un oggetto trasparente, con un proprio volume (da cui il nome). Di conseguenza, la luce ha anche le proprietà di un oggetto e può modificare le proprietà degli oggetti che attraversa. In questo modo è possibile simulare degli stralci di luce, un effetto naturale anche chiamato “God rays” (raggi divini) che si forma a causa della presenza di particelle nell’atmosfera.
Parallax Occlusion Mapping
Una tecnica che permette di aggiungere informazioni di altezza e ruvidità nelle texture, senza però introdurre nuovi informazioni geometriche. Si sfrutta quindi una cosiddetta displacement map, una texture che include dei valori di “altezza” dell’oggetto sottoforma di punti di luminosità. All’atto pratico, l’effetto permette quindi di realizzare strutture in maniera più organica, plastica e profonda.
Speedtree
La realizzazione della vegetazione è lasciata a SpeedTree, un middle-ware ormai standard nel suo genere. Le superfici piatte che compongono l’albero ruotano ancora con la visuale del giocatore, sia nel caso di alberi che con i cespugli, ma i dettagli sono riusciti molto meglio rispetto a Gothic 3. Anche con vento forte, l’aspetto degli alberi è credibile.
Opzionali: filtro anisotropo / anti-aliasing
Il filtro anisotropo è attivabili nelle consuete potenze di 2, dal 2x al 16x, e risulta in texture più dettagliata e precise, soprattutto su superfici angolate rispetto alla visuale.
Non siamo riusciti ad attivare l’anti-aliasing su nessuno dei sistemi in test, né tramite impostazioni dei driver (CCC per ATI, pannello di controllo per NVidia). Neanche rinominando l’eseguibile o sfruttando tool come NHancer abbiamo avuto dei risultati.
Impostazioni grafiche
È possibile modificare le seguenti impostazioni grafiche attraverso il menu di gioco:
Impostazione | Valori impostabili | Note |
---|---|---|
Qualità texture | Bassa, Media, Alta | Texture di bassa qualità occupano meno memoria e possono ridurre il carico per PC più vecchi. |
Filtro texture | Lineare, 2xAF, 4xAF, 8xAF, 16xAF | Il filtro lineare è il più leggero. Il filtro anisotropo richiede un PC dalle prestazioni più elevate. |
Ombre | Disabilitate, Basse, Medie, Alte | La disabilitazione delle ombre comporta un salto prestazionale molto notevole. |
Vegetazione | Disabilitata, Bassa, Media, Alta | Influenza il raggio visivo sul quale la vegetazione viene renderizzata. Non è possibile regolare le impostazioni indipendentemente per alberi ed erba. |
Effetti speciali | Bassi, Medi, Alti | Qui si possono modificare la complessità di effetti come le nubi di polvere o gli effetti delle magie. |
Raggio visivo | Basso, Medio, Alto | Influenza la renderizzazione della geometria ed ha un effetto profondo sulle prestazioni. |
Depth of Field | On, Off | Attiva la sfocatura degli oggetti distanti. |
Qualità shader | Bassa, Media, Alta | Può comportare piccoli incrementi prestazioni con schede grafiche vecchie. |
Per farsi un’idea più completa degli effetti di queste impostazioni, di seguito trovate un paio di screenshot con vari livelli di impostazioni. Il Depth of Field è sempre rimasto disabilitato per vedere con chiarezza le modifiche al livello di dettaglio. Il sistema utilizzato è un AMD Phenom II X4 955 BE con una NVidia GTX260.
* In questi casi il framerate è limitato dal refresh verticale dello schermo.
Benchmark
Per misurare le prestazioni sui vari sistemi abbiamo definito il seguente benchmark: con bel tempo, a mezzogiorno, si passeggia lungo un certo percorso della Città del porto (da Dick a Belschwur). Questo percorso è stato scelto perché Città del porto è un ambiente particolarmente intensivo dal punto di vista computazionale.
In primo luogo, un sommario del framerate sui vari sistemi, alla risoluzione 1280×1024 e ad impostazioni massime:
Sistema | FPS minimi | FPS massimi | FPS in media |
---|---|---|---|
Phenom II X4 955, GTX260 | 18 FPS | 61 FPS | 36 FPS |
Core2Quad Q6600, GTX285 | 31 FPS | 61 FPS | 46 FPS |
Core2Duo E6600, Radeon 1950XTX | 12 FPS | 46 FPS | 18 FPS |
Core2Duo T7250, GeForce 8400M GT | interrotto, mai più di 3 FPS |
Ed ecco lo stesso test ad impostazioni minimali:
Sistema | FPS minimi | FPS massimi | FPS in media |
---|---|---|---|
Phenom II X4 955, GTX260 | 46 FPS | 61 FPS | 58 FPS |
Core2Quad Q6600, GTX285 | 38 FPS | 62 FPS | 52 FPS |
Core2Duo E6600, Radeon 1950XTX | 14 FPS | 63 FPS | 41 FPS |
Core2Duo T7250, GeForce 8400M GT | 8 FPS | 24 FPS | 15 FPS |
Sono notevoli le oscillazioni tra FPS massimi e minimi: questo dipende soprattutto dal benchmark scelto, un percorso che mostra una parte della città inizialmente molto semplice, ma che diventa più complessa e piena di NPC mano a mano che si avanza.
I tempi di caricamento variano molto. In questo ordine di grandezza (superiore ai 30 secondi), le misurazioni sono state eseguite con un semplice cronometro. Naturalmente durante le misurazioni ogni altro processo in background è stato terminato (antivirus, scanner, etc.).
Sistema | Tempo di avvio* | Tempo di caricamento partita |
---|---|---|
Phenom II X4 955, GTX260 | 37 secondi | 17 secondi |
Core2Quad Q6600, GTX285 | 63 secondi | 24 secondi |
Core2Duo E6600, Radeon 1950XTX | 83 secondi | nessuna misurazione |
Core2Duo T7250, GeForce 8400M GT | 100 secondi | 43 secondi |
* misurato dal lancio dell’eseguibile all’apparire del menu, disattivando i filmati iniziali.
Le migliori prestazioni in questo caso si ottengono dal sistema Phenom, dotato di un disco SATA da 1TB. In questo caso il disco lavora in modalità AHCI, 7400 rpm, nessuna gestione acustica, alta densità d’informazione sui dischi, deframmentato da poco. Solo con un sistema RAID 0 oppure con un RAM Disk si ottengono prestazioni superiori.
Analisi dettagliata del carico
Una domanda frequente è se Risen ponga più carico sulla CPU oppure sulla scheda grafica. Di conseguenza abbiamo fatto un test sul sistema con le variazioni più significative di prestazioni, il Phenom X2 955.
Carico I/O (Streaming)
Il carico dello streaming sembra tipico: al primo passaggio c’è molto carico I/O, come si evince dal grafico a sinistra. Tutti i dati devono essere caricati dal disco alla RAM, il che si fa notare anche con alcuni scatti durante il gioco. Il sistema dispone di un disco SATA appena frammentato a 7400 rpm.
Al secondo passaggio però, nella figura a destra, il carico è notevolmente ridotto. Soltanto in occasione di cambi radicali di scena (nel caso del teletrasporto) o nell’accesso a zone ancora non esplorate possono esserci degli scatti di caricamento. Mentre ci si muove nell’area, tutti i dati vengono caricati in cache e gli scatti spariscono.
Carico scheda grafica
Per valutare l’ammontare di carico sul sistema grafico, abbiamo valutato le performance riducendo progressivamente la risoluzione di gioco:
Risoluzione | FPS minimi | FPS massimi | FPS in media |
---|---|---|---|
1280×1024 | 19 FPS | 61 FPS | 38 FPS |
1024×786 | 25 FPS | 61 FPS | 37 FPS |
800×600 | 28 FPS | 61 FPS | 41 FPS |
Se la scheda grafica fosse il componente limitante, dovremmo avere un miglioramento notevole nel framerate man mano che si riduce la risoluzione. In realtà però non cambia praticamente niente: a 800×600 il numero di pixel da calcolare è circa il 36% di quelli a 1280×1024, ma il guadagno prestazionale in media è di scarsi 3 FPS. Soltanto il framerate minimo migliora di circa 9 FPS, che in qualche caso potrebbe fare la differenza tra “giocabile” e “non giocabile”.
Carico CPU
Passiamo all’ultimo collo di bottiglia rimasto, la CPU. Nel grafico a sinistra si trova il carico distribuito sui vari core del processore. Un singolo core ha il carico maggiore e si occupa della gran parte del lavoro da svolgere. Gli altri solitamente hanno un carico che non sale oltre il 50%. Il thread principale ha un carico che a volte raggiunge picchi del 100%, sebbene ogni thread giri su un core a 3,2GHz del processore Phenom. Questo sbilanciamento nel carico è probabilmente la principale causa del basso framerate ad impostazioni massime.
Il processore Intel quad, nonostante frequenza operativa minore, si rivela essere meno problematico. D’altra parte, i risultati potrebbero dipendere anche dalla scheda video più potente.
Sfruttamento del multicore
Per dimostrare che Risen non è stato ottimizzato per un sistema a quattro core, abbiamo ridotto il numero di core sui quali il gioco poteva girare ed eseguito un secondo test. Notiamo che al passaggio da 4 a 2 core c’è effettivamente un guadagno prestazionale, sebbene le differenze siano praticamente impercettibili.
PhysX
Abbiamo ottenuti risultati sorprendenti quando abbiamo esaminato gli effetti delle librerie PhysX e della loro accelerazione su GPU. Ci saremmo aspettato che l’accelerazione GPU non sarebbe servita a molto, visto che Risen non ne fa uso, oppure che avrebbe sgravato il compito della CPU (normalmente il calcolo della fisica avviene appunto sul processore centrale).
In realtà però i nostri test hanno mostrato uno svantaggio nell’abilitare l’accelerazione GPU: la scheda madre del sistema Phenom dispone di una scheda grafica onboard NVidia. Siccome questa non viene utilizzata, sarebbe sembrata una buona idea sfruttarla per il calcolo della fisica. Purtroppo questo si è dimostrato controproducente: nel grafico si vede che ci sono cali fino a 19 FPS se si abilita questa opzione.
Anche in quanto carico di CPU i risultati sono sorprendenti: quando si disabilita il sistema PhysX dal pannello di controllo NVidia, il carico del core principale sulla CPU si riduce notevolmente (rimanendo comunque alto).
Quindi, paradossalmente, l’accelerazione GPU delle PhysX, che dovrebbero ridurre il carico CPU, porta ad un carico maggiore su un core che è già di suo particolarmente stressato dal gioco. Chi disabilita l’accelerazione PhysX dovrebbe riuscire a guadagnare qualche FPS in più.
Carico RAM
Proprio facendo riferimento a Gothic 3 ed alla sua fame insaziabile di memoria, Risen si comporta decisamente meglio. Come era legittimo attenderci (il mondo di gioco è molto più piccolo) la quantità di memoria occupata è molto minore. Non sale mai oltre ad 1GB di RAM.
Consigli
Come è fatto il sistema “ottimale” per Risen? Questo dipende da molti fattori e soprattutto dalle prestazioni che ognuno di noi percepisce come sufficienti. Ad esempio, “Don-Esteban” stesso è rimasto sorpreso dal fatto che i 17 FPS del suo sistema gli sembrassero sufficientemente fluidi. In generale possiamo darvi i seguenti consigli…
Scheda grafica
Non è un componente fondamentale: se la vostra scheda riesce a far girare decentemente i giochi usciti negli ultimi due anni, non avrete problemi con Risen.
In particolare è indifferente avere una scheda ATI o NVidia. Risen sfrutta l’accelerazione fisica PhysX, ma come mostrato sopra il sistema si rivela essere controproducente. Possessori di schede grafiche ATI che non vogliono perdersi l’emozione del sistema PhysX, possono lanciare in parallelo Prime95 mentre giocano.
Memoria RAM
Risen occupa al più 1GB di Ram, al quale si aggiunge il carico del sistema operativo stesso. Quindi, chi dispone di almeno 2 GB dovrebbe non avere problemi. Più memoria non fa male, ma non porta benefici: a meno che non si decida di caricare l’intero Risen in un RAM-Disk prima di lanciarlo. In quel caso i caricamenti in streaming sono del tutto eliminati.
CPU
Chi deve scegliere tra un dual-core con frequenza maggiore ed un quad-core con frequenza minore allo stesso prezzo, si troverà meglio con un dual-core. Risen si è dimostrato (purtroppo, bisogna dirlo) un gioco di vecchia scuola e approfitta più di una frequenza maggiore che di un core in più. La differenza tra Inte e AMD dovrebbe essere marginale: chi non punta soltanto a Risen potrebbe comunque optare per un quad-core, siccome in futuro sempre più giochi ed applicazioni punteranno sul multithreading.
Infine, chi può permettersi un Core i5/i7 non ha di che preoccuparsi, a causa delle loro frequenza maggiore ed la funzionalità turbo-boost che permette di accelerare il funzionamento di un core rispetto agli altri, se necessario.
Filesystem
Risen crea due cartelle nella sua directory d’installazione: “bin” e “data”. Il primo contiene il codice binario (l’eseguibile e le DLL), il secondo invece i file PAK con i dati, alcuni INI ed i filmati. Nel file INI è possibile disattivare i filmati iniziali del gioco, modificare il livello di dettaglio ed impostare alcune variabili usate da PhysX.
I salvataggi sotto XP si trovano in %userprofile%\Documenti\Risen\SaveGames, ma è possibile modificare la posizione nel registro, sotto HKCU\Software\Deep Silver\Risen. In Vista invece i salvataggi vengono salvati in %userprofile%\Saved Games\Risen\SaveGames.
Gli screenshot vengono memorizzati nella cartella %userprofile%\Impostazioni locali\Dati applicazione\Risen, dove si trovano anche i file di configurazione (in formato XML).
Sistema streaming / livello di dettaglio
Ad eccezione dell’inizio partita ed il teletrasporto, in Risen non ci sono barre di caricamento. Il mondo viene caricato grazie ad un sistema in streaming ed è liberamente esplorabile. Le texture ed i modelli vengono quindi caricati solo quando sono necessari. Il sistema LOD (level of detail) somiglia a quello di Gothic 3: a partire da una certa distanza le texture vengono sostituite con una versione a bassa risoluzione e gli oggetti diventano delle immagini bidimensionali. Questo passaggio, nel caso dei modelli e le texture di contorno, è molto armonico in Risen e non si nota (a differenza della “linea di passaggio” di Gothic 3). Nel caso però della vegetazione l’effetto non è altrettanto convincente, siccome gli elementi 2d renderizzati di alberi e cespuglio sono a bassissima risoluzione e si notano molto. Il Depth of field è realizzato molto bene. Le performance del gioco sono soddisfacenti con tutti i sistemi di prova, anche nel caso del portatile con cui abbiamo provato le impostazioni minime. Inevitabili col sistema di streaming sono piccoli cali di framerate nel caso del caricamento di nuove zone del mondo: chi non ha adeguati margini di prestazione del sistema, può incappare in alcuni scatti, sebbene non estremi come in Gothic 3. Nel motore grafico sono implementate alcune ottimizzazioni che limitano il problema, seppure non lo eliminino.
Fisica
La fisica viene sfruttata soprattutto in combattimento, quando i vostri avversari vengono sconfitti. Le animazioni di morte sono, nella maggior parte dei casi, realistiche. I casi in cui i nemici si muovono come “pudding” gelatinoso sono finiti, tuttavia a volte capita che il corpo dei nemici prenda il volo dopo l’ultimo colpo. A seconda della mossa conclusiva, un lupo può volare per una ventina di metri oppure scivolare per lunghi pendii senza fermarsi.
Animazioni
Le animazioni di Risen sono realizzate esclusivamente a mano, senza motion capturing. Le animazioni di combattimento sono molto varie: in base al livello di abilità del personaggio sono rigide e lente oppure fluide e più veloci. Si notano anche molti dettagli, come il movimento del muso dei cinghiali, le animazioni del sonno o del risveglio delle creature, le narici dilatate degli gnomi quando percepiscono qualcosa, etc…
Un po’ meno riuscite sono le animazioni degli NPC durante i dialoghi: ci sono molti dettagli, come le dita animate separatamente, ma il repertorio di animazioni è molto limitato e ci sono moltissime ripetizioni. Animazioni specifiche sono molto rare e le espressioni facciali non si modificano. Anche l’animazione del salto appare piuttosto poco realistica e l’eroe non esegue più la capriola quando apprende l’abilità di acrobatica. In compenso rotola quando cade da un’altezza elevata oppure si appoggia con la mano.
Intelligenza Artificiale
Molte delle tecniche IA viste in Gothic 1 e 2 si rivedono in Risen: gli NPC notano i furti solo se c’è contatto visivo e non in maniera automatica. C’è di nuovo molto lavoro da fare per i ladri, dunque.
Nel caso si impugni un’arma si ottengono sempre delle reazioni dagli altri personaggi. Tra l’altro, questi interagiscono anche tra di loro se fanno parte di fazioni diverse. Una novità è che gli NPC conoscono alcuni trucchetti che solitamente erano limitati al solo eroe: non è più possibile arrampicarsi su una casa per seminare chiunque e bersagliarlo tranquillamente. In alcuni casi i personaggi saliranno sui tetti per inseguire il protagonista! Se si viene scoperti a rubare e quindi stesi dal padrone di casa, a volte succede che invece di essere a nostra volta derubati dal legittimo proprietario, uno straniero entra dalla porta di casa e si appropria dei nostri beni.
Dormire nei letti dei personaggi dipende da caso a caso: nelle parti più basse di Città del porto si trova sempre una brandina, mentre nelle parti più nobili si ottiene solitamente un “Fuori dal mio letto!” come risposta. Un’altra variabile è la condizione dell’eroe: se si è in salute è difficile ottenere il consenso di usare un letto, mentre se si dispone di pochi punti vita è più facile.
Il comportamento di vari personaggi dipende soprattutto dall’appartenenza alle gilde e la soluzione di alcune quest. La potenza dell’eroe effettiva non sembra essere una variabile considerata dal gioco: anche impostando la forza a 200 punti e tutto il resto il massimo mediante cheat, si viene comunque minacciati da un poveraccio con un bastone se si gira con l’arma sguainata. Questa situazione non dovrebbe comunque proporsi nel gioco normalmente, visto che per raggiungere quel livello di abilità è necessario superare una parte di trama dopo la quale anche i guerrieri dell’ordine o le guardie cittadine non si lamenteranno del fatto che si usi una spada in città.
Problemi di IA vera e propria, come ad esempio il pathfinding, sono molto rari. In alcune occasioni è successo che una creatura si lasciasse bersagliare con armi a distanza e magia senza reagire, ma si tratta di casi isolati.
Sistema di controllo
Nel controllo tramite mouse a tastiera non ci sono quasi mai problemi. Chi usa il gioco da poco potrebbe rimanere spiazzato e ricorrere a sfuriate di clic, che però non sono utili se non con gli avversari di più basso livello. Bisogna costringersi a cliccare in maniera più ragionata e più tattica, anche in situazioni più frenetiche. Non ci sono quasi mai ritardi tra il comando e l’esecuzione, se non per alcuni rari comandi come l’atto di sfoderare e riporre l’arma: in tal caso potrebbe sembrare che il comando non sia stato registrato e si potrebbe attivarlo per errore due volte.
Non è possibile manovrare l’eroe soltanto usando la tastiera: è possibile interagire con l’interfaccia grafica con i tasti direzionali, ma alcune cose non sono possono essere attivate né utilizzate se non con l’ausilio del mouse. Alla stessa maniera non ci sono tasti per direzionare la telecamera.
Alcune mappature dei tasti non possono essere modificate, ed appaiono nel menu di modifica della mappatura con l’icona di un lucchetto. La motivazione di questo blocco non sono evidenti. Anzi, la cosa appare particolarmente scomoda perché non è possibile modificare i tasti di quickload e quicksave ed è facile sbagliarsi.
È altrettanto impossibile modificare i tasti direzionali (o WASD) oppure assegnare una funzione alla rotella del mouse.
Sistema meteorologico
Un grande plauso merita il sistema meteorologico dinamico del gioco. Esistono moltissime impostazioni diverse che si alternano assieme al momento della giornata e quindi ne modificano profondamente il feeling. Se un bosco appare accogliente in presenza del sole cocente, può sembrare pericolosa e minacciosa invece di notte durante un temporale. Le nubi in cielo non sono una semplice texture, ma vengono generate proceduralmente.
Di seguito un paio di screenshot che illustrano dei momenti e delle situazioni meteorologiche differenti:
Musica
I passaggi da una “zona musicale” alla prossima sono realizzati bene, in modo tale che non si presenti un cambio repentino appena si attraversa un confine invisibile. Come esempio, nell’immagine vedete la demarcazione delle zone nell’accampamento dei banditi. Si entra nella palude col passaggio sulla passerella di legno, alla fine della quale avviene il cambio di musica. Se salendo sulla passerella si sente la musica legata alla zona dell’isola, solo a fine passerella si sentirà il tema musicale di “Don Camp”. Oltre a questo ci sono dei passaggi musicali che rendono il passaggio armonico e impercettibile.
Nota: sullo screenshot si è semplificata la rappresentazione della zona. Ovviamente la zona di “passaggio” comprende l’intera palude, non solo la passerella.
I rumori d’ambiente sono realizzati ottimamente e anche le cascate stavolta hanno un loro file audio. Risen non supporta il sistema EAX, ma del resto non lo fa quasi nessun gioco da quasi 2 anni. La configurazione delle casse non avviene internamente al gioco, ma vengono sfruttate le impostazioni di Windows. Non abbiamo potuto valutare il sound in surround 5.1 o 7.1 perché non disponevamo dell’hardware necessario.
Tradotto in italiano da Lck.