I pirati fanno comodo a chi non li ha!

Una piccola nota per chiarezza, correttezza e rispetto verso chi lavora nel settore dei videogiochi e ha già espresso ad Ars Ludica alcuni dubbi e perplessità sui contenuti dell’articolo. Quello che si vuole fare, non è istigare alla pirateria, come qualcuno ha supposto, ma esporre un punto di vista, certamente molto critico ed iperbolico, su quello strano modo che i distributori di videogames hanno di proteggere i loro interessi, spesso a svantaggio di chi permette loro di portare a casa uno stipendio. Ricordo che la pirateria resta un reato e come tale va perseguito. Se non siete soddisfatti di come il vostro publisher di fiducia vi tratta, potete fare la cosa più facile e civile del mondo: boicottare l’acquisto e non piratare il titolo.

L’effetto di essere stati acquisiti da EA prima o poi doveva sentirsi, ed ecco infatti che Bioware ha sfoderato il suo neoacquisito lato oscuro parlando della protezione digitale contenuta in Mass Effect. Come c’era da aspettarsi, il gioco supporterà l’ultima versione del vituperato SecuROM, protezione la cui licenza costa centinaia di migliaia di dollari e che, come altri sistemi analoghi, non risolve affatto il problema della pirateria.

Nei giorni scorsi, dopo decine di press release in cui veniva annunciata l’inclusione di tutti gli add-on a pagamento e una serie di migliorie che fanno sembrare la versione “Next-Gen” un prototipo, si è giunti a parlare del tema della protezione anticopia con cui verrà inevitabilmente farcita la versione PC.

Jay Watamaniuk, il community manager Bioware, ha annunciato che Mass Effect avrebbe supportato il nuovo SecuROM, che richiederà la validazione (tramite internet) del gioco ogni 10 giorni. Per chi ha avuto la sfortuna di comperare Bioshock all’uscita sa bene come sia fallibile il sistema di attivazione di SecuROM e come divenga facilmente impossibile utilizzare una copia regolarmente acquistata per via di qualche bug o per banali congestioni di rete sui server di attivazione.

Come al solito, l’esigua minoranza vocale della comunità Bioware, piuttosto che fare fronte comune con un boicottaggio di massa, ha pensato bene di spaccarsi tra fanboy/tossicodipendenti che accetterebbero anche sonde anali dai loro feticci e chi ha, almeno a parole, intenzione di comportarsi da consumatore boicottando il titolo. La piccola rivoluzione ha appena avuto il tempo di divampare che già l’impronunciabile Jay, da consumato community manager, è andato in soccorso dei fan annunciando che, viste le lamentele, il sistema di protezione di Mass Effect sarà diverso: esso si installerà, si validerà solo al primo avvio e non avrà bisogno del disco per funzionare. Subito acclamato come un trionfo su quel mostro cattivo di EA, il gambetto di Bioware ha dell’epico: non solo ha fatto accettare agli utenti l’utilizzo di un sistema anticopia che criminalizza e limita l’utente legittimo, ma ha anche fatto passare in secondo piano un altro dettaglio del DRM del nuovo SecuROM, molto più castrante anche di un’autenticazione periodica.

Quello che in realtà nessuno ancora dice apertamente (ma è scritto nelle FAQ Bioware) è che, indipendentemente alla validazione periodica o meno, Mass Effect sarà installabile sino ad un massimo di 3 volte, dopo di ciò, qualsiasi altra installazione sarà non funzionante. Per 3 volte, si intende l’installabilità su 3 sistemi diversi, e c’è da aspettarsi che, come in Bioshock (dove però rimanevano usabili sempre e solo le ultime 3 istallazioni sugli ultimi 3 sistemi riconosciuti dall’anticopia), anche la sostituzione di un componente hardware qualsiasi richiederà la ri-validazione e il decremento di una possibilità di installazione. D’altronde il system-fingerprinting è forse l’unico sistema affidabile per il DRM su PC.

Occhio quindi anche ad operazioni banali, come provare la scheda video dell’amico o rimuovere uno slot di RAM se il PC crasha più del solito. Fatele ma senza utilizzare Mass Effect come banco di test. Finché il software rimarrà non utilizzato, non saranno infatti rilevate le variazioni sulla configurazione hardware. Cercate di finire Mass Effect subito ed in fretta: non sopravviverà a troppi aggiornamenti hardware e di certo non sarà attivabile per sempre, visto anche la strana tendenza di Bioware nel rendere introvabili i port da console dopo la prima tiratura.

Ovviamente su questi presupposti a molti non resta altro che  crackare il gioco non appena fuori dalla scatola (compiendo un reato) o non installare proprio la copia legittimamente acquistata e ricorrere direttamente ad una copia warez scaricata dalla rete (anche in questo caso, compiendo un reato). Almeno sino a quando sarà possibile farlo senza avere la SWAT che ci piomba in casa e ci spedisce a Guantanamo.

Si, perché è meglio che la Bioware non si faccia illusioni: come qualsiasi altro gioco, Mass Effect apparirà online crackato qualche giorno prima della release ufficiale e le scelte tanto protezionistiche da essere quasi reazionarie di EA (i publisher scelgono i sistemi di protezione) ancora una volta si ripercuoteranno solo contro chi sviluppa il gioco e riceve cattiva pubblicità e verso i sempre meno appassionati obbligati a fare le acrobazie per godere del loro hobby preferito.

Quando sento che il grande problema del PC è la pirateria, mi si rallegra la giornata. Sono contento perché anche ogni altra console sul mercato con un parco software degno di nota ha gli zero-day, i mod chip e la pirateria ma pare che solo il mercato PC sia colpito duramente da questo flagello. Qui in Europa, ed in particolare in Italia, non penso ci sia tredicenne che non ne possieda una console tarocca. Basta farsi un giretto su Internet per scoprire come fare e dove acquistare console già modificate e per lo più invisibili anche durante il gioco online. A giudicare dai siti di torrent, inoltre, non è che un popolare titolo per console sia meno scaricato di uno per PC, anzi.

Quello che vorrei dai loschi figuri che strumentalizzano fenomeni per lo più universali è l’onestà intellettuale di ammettere che se non si fanno giochi su PC è perché c’è un secondo fine ed un vantaggio economico nell’immediato. Vorrei sentirgli dire che se ci trattano tutti come degli sporchi ladri lo fanno per l’unico motivo nel quale c’è un minimo di razionalità: scoraggiare gli utenti a giocare su PC perché altre piattaforme consentono margini migliori.

Il cavillo delle tre installazioni è chiaramente un modo per scoraggiare la compravendita dell’usato e l’inflazione che le catene di videogiochi stanno creando sui prezzi del nuovo per poter vendere l’usato a margini sempre maggiori: ancora una volta è solo l’utente fedele che fa le spese di un’industria incapace di autodifendersi da meccanismi speculativi che sono stati originariamente messi in moto dalla sua stessa avidità, quando ad ogni cambio di generazione o supporto corrispondeva un vertiginoso ed ingiustificato incremento dei prezzi.

Quello che i publisher non capiscono è che non è detto che il mercato dell’intrattenimento su PC abbia bisogno di loro: i cali di vendite addotti alla pirateria, in realtà, potrebbero anche essere dovuti a nuove forme di gaming ed intrattenimento (ovviamente passate inosservate ai fondamentalismi dell’inamovibile mercato mainstream) che sono uno ormai uno standard su PC. Moltissime persone in tutto il mondo si divertono con strumenti apparentemente banali come YouTube o Facebook, per non parlare dei web-games o dei giochi casuali, dei generi ignorati dal mainstream (come le avventure grafiche o gli strategici hardcore), dei giochi massivi o dei social hub. E’ irrazionale pensare che l’uso intensivo che si fa di queste forme di divertimento alternativo (e spesso economico o del tutto gratuito) non erodano anche il tempo (e l’interesse) speso a giocare ai vecchi videogiochi, che non arrivino anche ad intaccare addirittura la user-base delle console che, diciamocela tutta è ben lontana da replicare i fasti di PS1 e PS2. In fondo parliamo del PC, la piattaforma pionieristica per antonomasia, dove nell’ultimo decennio sono nati e maturati tutti i temi cari al Next-Gen gaming odierno, perché gli utenti dovrebbero ancora andare dietro al vecchiume?

Pensare che centomila torrent scaricati siano centomila copie in meno è falso. Primo, perché probabilmente molti di questi utenti semplicemente non vedono il reale valore del prodotto e non lo avrebbero mai acquistato. Secondo, perché nulla dimostra che quelle centomila copie verranno usate (ci sono molti più downloader compulsivi o occasionali di quanto si creda, oppure esistono esseri superiori che sanno piegare il tempo e hanno un debole per la pirateria). Terzo, perché in quella quota ci sarà una parte non trascurabile di quegli utenti che, nonostante abbiano comperato il gioco, compiono un’azione illegare per proteggere il loro acquisto, mentre ancora nessuno parla dei diritti di portabilità su più piattaforme dei i contenuti scaricabili a pagamento e delle licenze d’uso (ci stanno o non ci stanno convincendo che è questo che acquistiamo quando si parla di intrattenimento e multimedia?).

Invertendo il punto di vista, quei centomila persi potrebbero essere stati centomila guadagnati se il gioco fosse stato diffuso con un altro modello, magari con un prezzo semplicemente più basso (una delle poche strategie che potrebbe realmente mettere in ginocchio la mafia dell’usato a prezzo pieno delle catene videoludiche). In questo caso i centomila magicamente non sono più un problema: sono troppo pochi per giustificare un cambiamento di strategia, rispetto a quelli che hanno acquistato alle condizioni odierne. Diventano trascurabili, se non possono essere una scusa. Sono troppi solo quando si parla di fallimenti o giochi nati morti come Crysis, di grossi errori compiuti da manager con grossi stipendi ed un sacco di interessi nel Venture Capitalism, persone che non posso perdere indipendentemente dalla squadra che vince e che hanno realmente pochi interessi a fare bene.

I numeri sanno essere assordanti. Il gaming alternativo, quello che per il mainstream non esiste, fa numeri giganteschi. Il casual gaming su PC fa diverse decine di milioni di utenti univoci mensili per portale da anni ormai ed è nato all’inizio del 2000, viaggia a pieno regime dal 2004 e continua a crescere perché di utenti PC annoiati ce ne sono quasi un miliardo e non c’è bisogno di costoso hardware per provare quel giochino curioso che fa sempre il collega durante la pausa.

Lo stesso dicasi per il mercato Free To Play, che è più che mai vivo e competitivo, molto più delle software house che mirano agli scaffali. Il confronto tra i fallimenti nel settore commerciale ed in quello Free To Play è inquietante: ormai ci sono aziende che esclusivamente con il Free To Play sono in giro da almeno un lustro. Buona fortuna alla vostra start-up di software triple-A che apre oggi.

Potremmo parlare dei web-based-games che facendo tesoro dell’ingegneria del software e delle tecnologie più recenti fanno soldi costando praticamente come il salario di un mese di uno di quei trenta programmatori di quella software house sfigata dal futuro già segnato.

In comune queste tendenze hanno il basso costo per l’utente ed un tasso di pirateria nullo: sono semplicemente giochi pensati per essere diffusi il più possibile e con accessibilità, senza criminalizzare gli utenti creando barriere software spesso castranti o controproducenti: i soldi si fanno sull’intrattenimento vero, quello che l’utente percepisce come reale valore, quello che egli stesso è disposto a corrispondere e pagare, spesso con modelli che permettono ad egli stesso di decidere quando e quanto pagare. Nessuno chiede a questi utenti una grossa ipoteca sul suo probabile (ma non assicurabile) divertimento futuro ancor prima di vedere la schermata di avvio.

Basandoci su queste prospettive, quei centomila e la pirateria non sono più un problema, il vero problema è perché sono così pochi gli acquirenti di un gioco triple-A di successo.

Pirateria o meno, così tutto sa di occasione perduta, di trionfalismo decadente, di vittoria di Pirro.

Oscurità proiettate

Le ombre sono una cosa divertente: se non ci fossero, i progettisti di sistemi per il rendering sarebbero felici e contenti.

Purtroppo ci sono, quindi quando un giocatore guarda lo schermo e non le vede, grida “Non ci sono le ombre! Questo gioco è becero sterco!”.

Perchè ogni tanto i giochi non presentano le ombre dei personaggi (o degli edifici) oppure, quando lo fanno, non sono poi bellissime?

Il motivo è semplice: fare le ombre è molto complesso.

Vediamo un’ombra vera:

In questa immagine possiamo notare varie peculiarità: in primo luogo l’ombra non è completamente nera, perché la luce, nell’aria, non viaggia bella tranquilla ma incontra continuamente pulviscolo ed altre belle cose che la riflettono di qua e di là, quindi anche dentro l’ombra.

In più notiamo che l’ombra dell’uomo è molto netta, mentre quelle delle… ehmmm… vabbè, quel che è, sono molto meno nette.

Perchè? Per lo stesso motivo visto prima: la precisione dell’ombra cambia a seconda della distanza del soggetto dall’oggetto su cui viene proiettata: più è distante più i raggi saranno deviati. Da ciò deduciamo che in un luogo senz’aria, le ombre saranno perfette. Così è, infatti, se guardiamo le foto dalle missioni lunari.

Come possiamo fare a simulare tutto questo? Il proiettare raggi che intersecano cose è fuori discussione: si chiama ray-tracing e in tempo reale, al momento non è una cosa semplice. Anzi, diciamo che al momento ce lo scordiamo (anche se Carmack dice di avere qualcosa in mano a riguardo). Esiste un engine di rendering per Quake 3 in raytracing fatto da appassionati, ma purtroppo va un po’ pianino 😀 . Tipo 1 frame ogni 30/40 secondi.

Quindi, siccome il proiettare i raggi è fuori discussione, come facciamo? Dobbiamo inventarci qualcosa che ci risolva il problema.

In più, facendo così, avremmo ombre nettissime ad ogni distanza, a meno di calcolare la deviazione della luce a causa del pulviscolo (si chiama “scattering”). A questo punto però ci sarebbero tanti bei problemi di precisione. Al momento il real time è fuori discussione.

Possiamo, per ora, utilizzare tre differenti soluzioni:

Proiezione Planare

Purtroppo non so se si chiama così, questa tecnica, poiché non è tanto efficace da esser degna un nome. Diciamo che consiste nel proiettare tutti i punti di un modello 3D su un piano, lungo la linea della direzione della luce:

Questo sistema mostra subito il fianco all’hard core gamer: in pratica se c’è un oggetto sul piano, la tecnica non lo vedrà e andrà semplicemente sul piano.

Certo, il piano può essere inclinato, però comunque se c’è un muro su quel piano, l’ombra non ci andrà sopra. Questo sistema può andare bene per i giochi di calcio, dove le ombre dei nostri miliardari preferiti sono proiettate praticamente sempre e solo sul piano di gioco.

Shadow Volumes

Carmack le ha amate. Non è il solo, c’è anche Starbreeze che ama questa tecnica: sia Chronicles of Riddick che The Darkness usano questo sistema.

Vediamo come funziona: per prima cosa supponiamo di avere il nostro modello 3d (tipo un pallone) ed un piano comunque modellato (cioè non una formula matematica, ma proprio un modello 3d a forma di piano). Ci mettiamo su anche un muro. Ora mettiamo una luce in modo che l’ombra cada sia sul piano che sul muro.

Fatto questo, ci sono da fare tre passaggi:

1) Si disegna la mesh, tirando tutti suoi vertici che “non guardano” la luce molto in là. Questo creerà un volume (da qui il nome della tecnica) che noi speriamo intersechi tutti gli oggetti della scena. In questo passaggio diremo all’hardware di disegnare solo i triangoli che guardano in camera (diciamo quelli “davanti” e non quelli “dietro” alla nostra palla)

2) Si fa un’altra bella passata, disegnando quelli “dietro”. Queste passate non vengono fatte sullo schermo, ma su una struttura chiamata “Stencil buffer”. In pratica lo stencil non si becca il colore, ma se qualcuno scrive su un dato pixel, lui somma “1” al valore di quel pixel. Così sappiamo se qualcuno ha scritto lì.

In seguito “aggiungiamo” la prima “passata” allo stencil, mentre “sottraiamo” la seconda; ci rimarrà così nello stencil una pletora di numerelli che rappresentano proprio l’ombra.

Fatto questo, disegnamo un bel quadratone scuro su tutto lo schermo, premurandoci di dire all’hardware di disegnare solo dove lo stencil è diverso da 0. Così facendo disegneremo la nostra ombra perfetta.

Problemi: in primo luogo dobbiamo disegnare l’oggetto tre volte: una volta per farlo vedere normalmente ed altre due per lo stencil. Fortunatamente qui l’hardware ci viene in soccorso: le moderne schede fanno le due passate in un colpo solo.

Però se vogliamo farlo su tutti gli oggetti della scena, dobbiamo farlo con tutti gli oggetti. Se lo facciamo anche al mondo, siamo fritti. Ma non è finita qui: se inizio a proiettare questi volumi in maniera massiccia, rischio di saturare tutta la sezione finale della pipeline, quella che disegna i pixel, perché in pratica devo disegnare una quantità esagerata di pixel (nello stencil) a causa di questi volumi. Quindi abbiamo due colli di bottiglia.

In più ci sono problemi con modelli molto poco densi poligonalmente, oppure con forme allungate (come un parallelepipedo bello allungato).

Questa tecnica è stata usata fondamentalmente solo da Doom3 (e da chi usa il suo motore) e dai giochi Starbreeze, poiché presto si è rivelata inadeguata: oltre ai due colli di bottiglia, presenta enormi difficoltà a fare ombre sfumate sui bordi (la cosa richiederebbe ulteriori passate. C’è una demo ATI che lo fa in 16 passate 😀 ).

Shadow Map

Questa tecnologia è quella che al momento risulta più studiata in assoluto: in genere in tutti i seminari sulla computer grafica sono presenti delle dimostrazioni dei passi avanti compiuti utilizzando questa procedura.

Come mai? In primo luogo la tecnica dello shadow mapping è di base più leggera: richiede solo un rendering in più oltre a quello standard. Richiede però un hardware capace di fare conti per vertice e per pixel. I pixel shader, per intenderci. Qualche anno fa (diciamo il 2000, la prima volta in cui lessi di questa tecnica) questo poteva essere un limite, ma oggi non più.

Il sistema basilare funziona così:

1) Facciamo il rendering della nostra scena.

2) Facciamo il rendering della scena, mettendo la camera dove sta la luce ed angolata nella stessa direzione di questa.

A questo punto confrontiamo gli Z-Buffer dei due rendering: se lo Z-Buffer della luce in un dato punto è minore (o maggiore, a seconda della piattaforma) dello Z del rendering normale, allora quel punto è in ombra.

Spiego velocemente cos’è lo Z-Buffer: è una superficie grande come lo schermo (se lo schermo è 1.024 x 768, allora anche lo Z-Buffer è 1.024 x 768). In questa superficie viene salvato il valore della coordinata Z di uno punto sullo schermo. La coordinata Z è la profondità. Questa superficie serve per fare lo Z-Test: quando disegnamo qualcosa sullo schermo, prima di farlo, controlliamo lo Z-Buffer. Se lo Z che vogliamo scrivere è minore (o maggiore; comunque più “vicino” alla camera) di quello che c’è già scritto, allora vuol dire che il punto che vogliamo scrivere è visibile perchè non c’è niente davanti. Se no, no. Questo ci consente di disegnare gli oggetti nell’ordine che vogliamo, senza che quelli disegnati dopo coprano quelli disegnati prima.

Dicevamo che la tecnica dello shadow mapping consiste fondamentalmente, quindi, nel disegnare dei punti derivati da una elaborazione dello Z-buffer.

Per fare questo, però, dobbiamo disegnare il mondo anche dal punto di vista della luce: operazione che si effettua su di una texture. Ovviamente, più questa texture è grande peggio è. Fortunatamente a noi interessa lo Z-Buffer di quel rendering, quindi possiamo anche disegnare tutti gli oggetti bianchi, senza pixel shader. Quando si fa così, gli hardware moderni fanno fare al rendering una specie di “corsia preferenziale”, saltando un bel po’ di stage nella pipeline, andando velocissimo.

Quali sono i problemi? Ci sono delle angolazioni sfortunate, che danno un sacco di problemi (li notate bene bene in Devil May Cry 4). In più ci sono sempre delle angolazioni cha fanno vedere i pixelloni giganti (lo notate bene sempre in Devil May Cry 4 :D). Nonostante questo, la ricerca continua perchè mediante questa tecnica è possibile fare delle buone ombre sfumate sui bordi (ne vediamo degli esempi in Crysis e GTA4), oltre che, mediante modifiche e moglioramenti, di fare delle buone ombre su tutti gli oggetti in scena.

Ma perchè ancora ad oggi le ombre non sono bellissime come quelle vere? O almeno come quelle nei film di animazione in CG?

Perchè ovviamente anche fare i conti di cui sopra costa. Quando fare le ombre inizia a costare, diciamo 5 millisecondi, allora può darsi che inizi a costare troppo. I rendering per quei film prendono bel più di 5 millisecondi 😀

Al momento il top della tecnologia è Crysis e ci mostra ombre di certo belle, ma con questi difetti:

  • Non è molto diversa la sfumatura tra oggetti lontani ed oggetti vicini
  • Qualche problema di aliasing sugli oggetti lontani
  • Puntini e dithering piuttosto evidenti da vicino
Perchè tutto questo? Perchè altrimenti non ci starebbe dentro con i tempi.
La ricerca prosegue sempre, e se solo confrontiamo le ombre di GTA4 con quelle di Assassin’s Creed notiamo un enorme incremento.
Quanto dovremo aspettare per non vedere più i puntini ed avere delle ombre perfette, magari da più sorgenti di luce e con un diverso grado di sfumatura? Non molto: le ombre sono uno dei campi più studiati della grafica real-time, quindi stimo che entro tre anni il problema dei puntini sarà sparito: credo che un aumento dinamico dei conti che si fanno per farlo possa ridurlo moltissimo, ma per eliminarlo bisognerà pensare in un altro modo, ad esempio un post processing dell’ombra stessa. Tutto questo richiede altro tempo, che al momento non c’è.
Non esiste niente di definitivo, quindi, per quanto riguarda questo argomento. Ma siate fiduciosi 🙂

Everyday Shooter

Prodotto e sviluppato da Queasygames | Piattaforme PC | Rilasciato nel 2008

La sensazione è di scuotimento e di distanza.

All’inizio vieni pervaso da un leggero fastidio, poi comincia l’ipnosi e lo schermo vibra ripetutamente.

Non sai perché sei qui. Anzi, non sai e basta.

L’idea è quella dell’informe, ma le forme sono ben visibili e la musica ha un senso nella sua melodiosa, stonata e piacevolissima casualità.

Sei tu che suoni. È un simulatore di chitarra?

Sei tu che deformi lo scenario? È un clone di Photoshop?

Viene subito in mente Galaxy Wars. Ma qui c’è molta più radicalità e consapevolezza. Non ci sono galassie, solo quadri in movimento che si attorcigliano e rimandano vibrazioni auditive.

Mondrian sotto acido?

Vedi quella linea sullo schermo? Sembra un elastico. Tiralo e il mondo apparirà pulsante in un perpetuo raschiare dalla visibilità infetta.

Visione visiva e sonora, piena di VISUONI e viste inattese.

Si può rimanere abbagliati e per questo ci si lascia andare al suono. Forse l’approccio giusto per comprenderlo è quello di Artaud davanti a Van Gogh.

Eh sì che lo guardi fisso ma devi immaginarlo nella sua scomposizione matematica degli eventi.

Cos’è che guido con il joypad? Un quadrato? Un rettangolo? Un rombo? Un quadrilatero qualsiasi?

Everyday Shooter può essere descritto solo al participio. Anzi, non può proprio essere descritto perché se ti metti lì a ridurlo lo ammazzi, gli dai una coltellata nel codice che schizza via in ogni angolo dello schermo e poi della rete.

Descriverlo lo farebbe diventare un errore di sistema, degno soltanto di una segnalazione a Microsoft. Cosa è successo?

SITO UFFICIALE

PAGINA DEL GIOCO SU STEAM

Ninja Gaiden Dragon Sword

Sviluppato da Team Ninja | Pubblicato da Tecmo | Piattaforma Nintendo DS | Rilasciato nel Marzo 2008 (USA e JAP)

Nel panorama videoludico del Nintendo DS ogni tanto fa capolino una produzione capace di distinguersi dal mare magnum di “casual game” che imperano sulla console portatile nipponica. Ninja Gaiden Dragon Sword non solo emerge da una situazione di piattume pressoché totale, ma è in grado di brillare come un faro per condurre finalmente in un porto confacente alle bramosie dei videogiocatori intenzionati ad evadere dalla routine di Brain Training e clonazzi assortiti (se non lo si fosse notato, sono leggermente polemico).


La trama si sviluppa sei mesi dopo gli eventi narrati in Ninja Gaiden. Il villaggio di Hayabusa è stato ricostruito, ma la quiete viene presto interrotta: la giovane Momiji, sorella della defunta Koreha, è rapita e portata via dai ninja del clan del Ragno Nero. Ben presto ci accorgeremo che si tratta di una cospirazione ordita dai Fiends…

Il titolo Tecmo raggiunge tale scopo perseguendo un semplice (a parole) obbiettivo: il movimento fluido. Tale concetto, della cui esaustiva definizione sono venuto a conoscenza in un postmortem di Tomb Raider Legend, consiste nel rendere l’azione come un susseguirsi armonioso di passi senza interruzioni brusche. Qui i combattimenti sono selvaggi, e per soverchiare gli avversari non bisogna mai smettere di menar fendenti o di applicare delle combo micidiali. Se tutto ciò non avvenisse con naturalezza e, appunto, con fluidità, si otterrebbe un gameplay perniciosamente spezzettato.

Ryu Hayabusa è controllato esclusivamente mediante pennino e touch-screen (solo la parata è effettuabile attraverso la pressione di un tasto qualsiasi), mentre la console viene impugnata a mo’ di libro: saltare, mirare, colpire i nemici non è mai apparso più lineare e al contempo appagante. Come avrete capito, il vero miracolo si trova nel sistema di controllo, in grado di eguagliare e in molte occasioni di superare la già ottima efficienza ravvisata in Phantom Hourglass; tutto il resto passa in secondo piano, persino la grafica più sbalorditiva che abbia mai goduto su DS: siamo di fronte ad un raro caso in cui le meccaniche di gioco, immerse in un sontuoso contesto, rendono giustizia ad una piattaforma sin troppo umiliata da produzioni dementi.


I poteri Ninpo se ben padroneggiati producono effetti devastanti.

Per come ho impostato il discorso sembra che questo episodio di Ninja Gaiden possa essere considerata la killer application definitiva per l’handheld su cui gira; lo è solo in parte. L’opera di design, così maestosa nell’elaborare il sistema di controllo, viene decisamente meno quando si va a considerare la varietà delle situazioni proposte: in questo senso è come se Dragon Sword soffrisse della sindrome di Gears Of War, ovvero patisse l’aleggiare di un’aura di ripetitività la cui effettiva concretizzazione, però, a differenza dell’opera di Epic, viene scongiurata all’ultimo momento da alcuni boss indovinati (sebbene non proprio campioni di originalità). Le mappe sono estremamente lineari e prive di enigmi anche solo vagamente impegnativi; anche i nemici, per quanto amino particolarmente le risse, sono sostanzialmente poco eterogenei in combattimento. Si materializza così la sensazione che Tomonobu Itagaki abbia voluto semplicemente proporre duri allenameni in prospettiva degli scontri di fine livello. Il grado di sfida, perarlo, è calibrato perfettamente perché né frustrante e al contempo né banale, garantendo un’elevata compattezza all’esperienza ludica tanto da fare in modo che NGDS divenga un’avventura da fruire senza soste.

Puntando tutte le sue carte su un gameplay immediato e agile, il Team Ninja ha saputo costruire un impianto avvincente che, se non è da ritenersi un capolavoro, va almeno considerato come un piccolo cult. Impressive.

Metal Gear Online BETA

Da qualche settimana anche per noi italiani è possibile giocare e valutare, sommariamente, quella che può essere considerata la trasposizione definitiva del mondo di Metal Gear Solid, online. I vantaggi di questa possibilità sono molteplici: da un lato possiamo giocare gratuitamente per qualche giorno un titolo che arriverà presto in versione definitiva e che verrà proposto singolarmente (a differenza di ciò che diceva Konami in passato), dall’altro ci è concesso di far pratica con i nuovi elementi del gameplay cuore di MGS4 in singolo.
MGO è un’ulteriore evoluzione rispetto alle versioni precedenti viste in MGS3: Subsistence e Portable Ops (su PSP), le modalità di gioco sono cinque: Deathmatch, Deathmatch a squadre, Missione di cattura (cattura la ranocchia), Infiltrazione e Missione per le basi. Le modalità più gettonate al momento sono la seconda e la quarta. Tralasciando i due DM, Cattura la ranocchia è un gioco simile al cattura la bandiera del più classico FPS, solo con una mappa sensibilmente più piccola della norma e con 2 oggetti da catturare (uno per squadra). Vince chi fa scendere il contatore al numero più basso possibile, entro lo scadere del tempo di gioco. Divertente, ma avrei gradito mappe più grandi (magari nella versione finale mi accontenteranno). La modalità infiltrazione è la più interessante, si gioca tra squadre in aree più vaste (mi è capitato di giocare in uno squarcio di livello preso da MGS4, che si è spesso visto nei filmati rilasciati da Konami). A turno un solo giocatore prenderà il controllo di Solid Snake e, se si raggiungeranno 12 giocatori contemporaneamente, potrà venire assistito dal piccolo robottino MKII, comandato da un altro compagno (con tutte le abilità che offre, invisibilità, stordimento dei nemici).

Grazie alla conformazione delle mappe, le tattiche stealth funzionano egregiamente e regalano anche qualche soddisfazione. A dispetto di ciò che si possa pensare, le scatole di cartone e i barili di metallo sono degli ottimi nascondigli: durante i frenetici match presterete molta più attenzione al guardarvi le spalle piuttosto che calciare ogni singola scatola che trovate in giro. A proposito di mappe, me le aspettavo più grandi, ma come ho detto prima probabilmente ce ne saranno di dimensioni maggiori nella versione finale. Tecnicamente l’aspetto del gioco è abbastanza altalenante, assunto il fatto che sia pur sempre una beta (prossima al rilascio definitivo) nonché un gioco online, trovo inaccettabile il frame rate per niente stabile, capace di scendere anche sotto i 20 fps (cosa che si vede a occhio nudo) mostrando vistosi rallentamenti in quasi tutti gli ambienti di gioco. Le ombre sono di bassa risoluzione e le texture non sono lo stato dell’arte, mentre trovo i modelli dei personaggi davvero curati e immagino che le possibilità di personalizzazione del proprio alter ego (al momento piuttosto limitate) saranno varie. C’è chi si è lamentato dell’eccessiva lentezza del movimento dei personaggi, ma credo che il tutto sia funzionale al tipo di gioco, uno stealth a volte frenetico ma che non raggiunge mai il caos di alcuni sparatutto multiplayer. Allo stato attuale sono disposto a scucire qualche euro (spero non troppi) per la versione finale, sperando che correggano alcuni importanti problemi che ho riscontrato in questa beta.

Gli artigiani e Star Wars Galaxies

Spesso le cose più banali sono le più difficoltose da fare in un MMOG. I manuali diventano subito obsoleti e la documentazione per le attività di base spesso non abbonda, perché le community si focalizzano su temi e contenuti di difficoltà medio-alta. Come ho imparato sulla mia stessa pelle, in Star Wars Galaxies la situazione è la stessa.

Un classico player driven shop

Nonostante la folta schiera di nuovi giocatori, spesso non è facilissimo orizzontarsi in un gioco semplicemente immenso, sia per estensione che per contenuti. Una delle attività più complicate per un neofita è proprio trovare un giocatore in grado di costruire gli oggetti di cui ha bisogno.

Nel mio caso la necessità era trovare un Y-Wing a buon mercato e con una ragionevole qualità costruttiva. In SWG le attività degli artigiani gravitano attorno alle città player-driven e agli NPC Vendor che i giocatori stessi mettono a disposizione per commerciare. Ma come trovare il venditore giusto?

Dopo molti tentativi infruttuosi cercando un contatto individuale, come si faceva ai vecchi tempi, grazie anche ad un po’ di roleplay (sarà subdolo ma il roleplay è un pretesto piuttosto utile per “costringere” un veterano annoiato a darti informazioni di base), ho scoperto che ora il trucco è nei terminali Bazaar, che non si occupano più solo delle aste da pochi soldi.

Osservando meglio l’interfaccia dei Bazaar Terminal, si nota che c’è tutta una serie di servizi negli altri tab che possono passare inosservati ad una prima occhiata, tra cui proprio quello per la localizzazione i Vendor NPC in tutta la galassia.

Una volta localizzato il Vendor con la merce desiderata, il sistema permette di salvare nel Datapad un waypoint per il pianeta in cui risiede. Se si conosce già il posto ci si può avvicinare alle coordinate usando una stazione per shuttle che si trovi in prossimità, altrimenti bisogna necessariamente esplorare il pianeta in landspeeder, attività che potrebbe rivelarsi più avventurosa del previsto, specie su pianeti in cui ci sono grosse concentrazioni di giocatori della fazione avversa.

I Waypoints nel Datapad

Io ho dovuto scegliere la seconda alternativa, perché non avevo la minima idea di dove fosse il posto. Dopo essere scappato a gambe levate da due imbosacate Imperiali (imboscate… diciamo pure che sono finito dritto dritto in due piccole cittadine che erano lungo la rotta) ed essermi fatto quasi venti chilometri su un Landspeeder sono giunto a destinazione, scoprendo che il negozio che mi interessava era all’interno di una città player-driven talmente grande da avere il titolo di metropoli e che nelle immediate vicinanze c’era anche un comodissimo Shuttleport. Ironia della sorte.

Per la cronaca, il mio primo tentativo con SWG NGE ed il suo sistema localizza-vendor è finito comperando un Y-Wing Longprobe, una versione avanzata presa dall’Expanded Universe del classico cacciabombardiere di Star Wars che, come la logica mi avrebbe dovuto far dedurre, non posso ancora pilotare, essendo una nave per piloti esperti. Inutile dire che assicurarsi che quello che si compra sia effettivamente quello di cui si ha bisogno è un dettaglio da non sottovalutare quando si ha a che fare con l’economia di un MMOG!

Orizzonti Lontani

Oggi mi piacerebbe discutere con voi di una tematica piuttosto complicata: quella dei famosi “spazi aperti”.

Sulle riviste e sui forum si discute di quale sia il gioco con gli spazi più ampi o di quale engine sia più capace di fare cosa.

Ma come facciamo a capire quando uno “spazio” è ampio?

In primo luogo cerchiamo di capire la problematica: perchè disegnare uno spazio ampio è un problema?

Per due motivi:

  • Grande quantità di poligoni
  • Grande quantità di materiali
Perchè ho scritto “materiali” e non “texture”? Perchè la texture non è l’unica cosa che appesantisce la pipeline di rendering: anche un semplice cambio di stato la appesantisce.
Possiamo quindi definire un gigantesco quadrato con sopra una texture uno “spazio ampio”?
Dal punto di vista letterale, sì, ovviamente: il quadrato è enorme. Per questo è più corretto utilizzare il termine inglese “Large Environment”, che in sè condensa la grande dimensione dal punto di vista del dato, rispetto al punto di vista visivo.
Purtroppo questo punto è molto difficile da capire, quindi insisterò maggiormente per far capire cosa intendo.
Prendiamo una cartolina qualunque:
Questa è una foto della mia amatissima Champoluc vista dall’alto. Proviamo ad immaginare di dover fare il rendering in tempo reale di questa immagine.
Facciamo finta che ogni casa sia modellata in maniera realistica, con circa 25000 poligoni e 3MB di texture.
Possiamo facilmente intuire che questa scena (solo con le case) prevede circa 1.000.000 poligoni e 120 MB di texture.
Se solo ci fossero le case, la scena sarebbe già abbastanza pesantina. Aggiungiamoci gli alberi (saranno almeno trecento), aggiungiamoci l’illuminazione e il terreno ed ecco che abbiamo una scena che non può essere in alcun modo presentata così com’è alla scheda grafica.
In più consideriamo che, se fosse un gioco, non potrebbe esserci solo questo: appena giriamo la testa dovrà esserci tutto il resto del mondo.
Possiamo quindi già tirare una conclusione: qualunque engine potrebbe mostrare ambienti ricchissimi, se avesse a disposizione un hardware potentissimo.
Quindi: come facciamo a mostrare una scena come quella sopra ad un framerate di (diciamo) 30 fps?
In primo luogo dobbiamo capire cosa significa “30fps”: significa avere circa 32 millisecondi ad ogni frame.
Non molto.
30 fps x 1.000.000 = 30.000.000 di poligoni
Un po’ tanti.
Consideriamo che non abbiamo tutti i millisecondi per noi: c’è anche il gioco in sè che vuole la sua parte.
Ok, possiamo partire a valutare i problemi:

TEXTURES e MATERIALI

Il problema è talmente noto che la soluzione è già stata trovata da quando si fa grafica in tempo reale.
La prima scrematura si fa sulla distanza: perchè usare le texture 2048×2048 quando le case sono così lontante? Basta usare texture 256×256. Facendo così, si riduce drasticamente il tempo di campionamento delle texture.
Questo si chiama “Mipmapping” e non funziona solo sulla lontananza dall’oggetto, ma anche dalla sua posizione rispetto alla camera: più l’oggetto è “di sbieco” più la texture utilizzabile è piccola.
Perfetto, ma questo non basta: una singola casa ha un bel po’ di materiali (il tetto innevato, le finestre, il legno, il muro). Ognuno di questi materiali avrà dei parametri, delle texture e degli stati hardware da settare.
Per ridurre il cambio di stati, possiamo raccogliere per bene tutti gli oggetti col medesimo materiale e disegnarli tutti assieme.
Alcune architetture sono terribilmente più veloci se si riduce il numero di chiamate alla funzione di render, ma passando tanti triangoli: potremmo fare anche così. Questo non è banale per nulla, quindi se decidiamo di farlo, dovremo essere certi che l’architettura sulla quale lavoriamo ci fornisca un boost molto ampio.
Il PC in generale è una di queste architetture, per esempio.

Numero di Primitive

Parlando terra terra, una primitiva è un triangolo. Non è sempre così (OpenGl ad esempio prevede triangoli, punti, linee, quadrati e poligoni), ma possiamo facilmente dire che è così nel 99% dei casi.
La regola principale nel campo della computer grafica è: il modo più veloce per fare una cosa è non farla.
Quindi: qual’è il modo più veloce per disegnare un sacco di triangoli? Risposta: disegnarne pochi.
Ma come possiamo fare? Nella storia ci sono state mille e mille soluzioni. Vediamone qualcuna:
Riduzione del livello di dettaglio: se un oggetto è lontano, possono bastare pochi poligoni per descrivere la sua forma, rispetto a quando è vicino. Ci sono algoritmi che riducono il numero di poligoni in tempo reale (algoritmi “continui”) oppure è possibile utilizzare N modelli 3D prefabbricati, con sempre meno triangoli (algoritmi “discreti”).
Eliminazione degli oggetti fuori dal campo visivo: se un oggetto non è nel campo visivo (frustum) si può evitare di mandarlo in rendering. il controllo si chiama “frustum test” ed in genere si fa per oggetto.
Eliminazione dei triangoli fuori dal campo visivo: questo punto si differenzia dal precedente perchè la precisione scende al triangolo. Tal sorta di test si fa in genere su modelli 3d di grandi dimensioni (come i terreni o gli ambienti), che altrimenti sarebbero sempre in camera e sarebbero sempre disegnati per intero, poiché ben più grandi di quello che la camera può vedere. Per risolvere questo problema ci sono varie soluzioni, come gli OctTree, una struttura dati che consente di partizionare lo spazio e di fare velocemente i conti per decidere “chi è dentro e chi è fuori”, oppure il “Potential Visible Set“, un sistema che divide (in preprocessing) tutto il mondo in blocconi e decide quali oggetti siano visibili nei vari settori. Se un triangolo non è mai visibile, potrebbe essere semplicemente eliminato dalla scena.
Eliminazione dei triangoli coperti da altri triangoli: Il test che si compie, in questo caso si chiama “Occlusion Test” o “Visibility Test”. Un sistema per eseguirlo è utilizzando i “Binary Space Partition Trees”, amati da sempre da Id Software.
Ognuno di questi sistemi (più i mille altri che non ho citato) servono ad evitare di disegnare tutto ciò che non serve, in modo da mandare alla scheda grafica la quantità minore di triangoli (od oggetti) possibile.

Oggetti Ripetuti

Se guardiamo la scena, notiamo che ci sono una quantità troppo elevata di alberi. Da soli, questi alberi, rischiano di prendere interamente tutto il tempo che abbiamo per fare il nostro rendering. Come fare?
Qui abbiamo fondamentalmente due soluzioni, a seconda dell’hardware che abbiamo a disposizione: se l’hardware supporta l’instancing, possiamo mandare un singolo modello 3d di albero, seguito dalle informazioni necessarie per il rendering per ogni albero che vogliamo. Ad esempio, possiamo mandare l’albero e poi cento posizioni diverse, così l’hardware disegnerà questo albero cento volte in queste cento posizioni.

Conclusione

Dopo tutto questo articolo, cosa possiamo dire? Possiamo dire che se un engine non supporta tutte queste feature, allora non supporta gli spazi aperti? No, non possiamo dirlo.
Perchè? Perchè se abbiamo un megaPC pazzesco, con tantissima RAM ed una scheda grafica pazzesca ed immensa, possiamo completamente ignorare tutti i problemi di cui sopra e mandare alla scheda quei 30 milioni di triangoli al secondo, oppure quei gigabyte di texture, tanto il sistema è potente e reggerà il colpo.
Il problema, per i progettisti, è pensare a dei sistemi per far girare questi ambienti su computer esistenti.
Proviamo a pensare a “Grand Theft Auto San Andreas”: non voglio nemmeno immaginare da quanti poligoni e texture sia composto il mondo. Nonostante questo, gira su una PS2 a 30 fps (o 60?). Se tutte queste tecnologie non fossero implementate, non girerebbe mai su una PS2.
Quindi, ora, sapendo questo, poniamoci questo quesito: ha senso chiedere se un engine supporta gli spazi aperti? Viste le migliaia di possibilità dietro questa domanda, io dico di no.
Ha senso, allora, chiedere quanti poligoni e che mole di texture può disegnare un dato engine con un dato PC garantendo i 30 (o 60) fps? Questa domanda ha molto senso, ma capirete bene che non è un equivalente della precedente: se dieci anni fa 500.000 triangoli e 100MB di texture per tutto il mondo potevano essere un “Large Environment”, oggi come oggi questi numeri sono decisamente cambiati.
Quindi, quando vi trovate in una discussione sulla capacità o meno di un engine di disegnare i dannatissimi spazi aperti, cercate sempre di capire con chi state parlando: se è un giornalista o un videogiocatore fanatico del PC, allora molto probabilmente sarà meglio non entrare nemmeno nel discorso 🙂