lunedì 1 ottobre 2012

0 Se scrollo troppo, commetto atti impuri? :D


Era l'alba degli anni novanta quando, per la prima volta, compresi pienamente un concetto informatico-ludico oggigiorno senz'altro molto banale: Il senso di Smilla per la neve di Marte per "scrolling parallattico"... :D

Mi trovavo in una piccola sala giochi adiacente alla stazione delle corriere di Udine e, da dietro una calca sovrumana che denunciava il "cabinato-novità" del momento, intravidi per la prima volta "Street Fighter II: The World Warrior"...

Il mio occhio clinico, già abbondantemente abituato agli "sprites" ed alle schermate scorrevoli, venne letteralmente calamitato dall'azione di gioco; ma non era la novità concettuale del "picchiaduro" ad incontri o la sontuosa presentazione del tutto ad attirare la mia attenzione. No... Il Marte si sdilinquì come un ebete patentato ammirando in prevalenza la prospettiva dei pavimenti virtuali sui quali si muovevano agilmente i combattenti del videogioco in questione... E questo non perché io fossi del tutto scimunito già al tempo! :D Più che altro, la raffinatezza della "parallasse" applicata a questi elementi grafici era qualcosa di decisamente fuori scala, per gli standard del periodo, e vederli in movimento sullo schermo era quasi uno shock...

Ok... Non guardatemi così male, che mi fate sentire "diversamente videoludico"... :P

Ah... Non lo state facendo per biasimarmi ma solamente perché non avete alba di chi o cosa sia la "parallesse" e vorreste evitare di prendere una malattia così brutta?! POTEVATE DIRLO PRIMA, che mi fate preoccupare inutilmente!!! :D

«M'è venuta la "parallasse" alla mano destra ed ora devo indossare un tutore.».

Lo "scrolling parallattico" ("parallattico", non "paralitico"!!! :D ) è un artificio grafico impiegato nelle rappresentazioni bidimensionali in movimento per potenziare l'effetto illusorio della profondità. Il principio si basa su un fondamento della teoria della percezione del quale tutti noi abbiamo un'esperienza diretta quotidiana. Della serie: avete presente quando viaggiate in macchina e, guardando fuori dal finestrino, osservate il panorama che scorre davanti a voi? Bene. In una situazione del genere, tanto più gli oggetti sono prossimi all'osservatore, tanto più velocemente questi schizzano fuori dalla sua visuale. In tal senso, il "guard rail" a bordo strada sfreccia via sempre molto più velocemente dei cespugli e degli alberi che gli stanno dietro. Le case in lontananza sfilano ancora più lentamente e le montagne che fungono da sfondo sono praticamente fisse... ;)

La sensazione percettiva di diversi livelli scorrevoli sovrapposti tra di loro ed in moto a velocità diverse prende appunto il nome di "parallasse".

Al giorno d'oggi, sugli avanzatissimi sistemi informatici che abbiamo a disposizione, simulare un effetto del genere è una baggianata da niente. Con l'ausilio di formati grafici versatili come il ".PNG" (che gestisce sia la trasparenza che la traslucenza...), un buon "coder" non dovrebbe avere particolari problemi ad animare differenti "layers" composti da immagini scorrevoli in movimento sovrapposte tra di loro...

Negli anni ottanta e novanta, diversamente, il discorso era un pochino più complesso, ma comunque ci si arrangiava sfruttando le potenzialità avanzate dei "computers" a "16 BITs" del tempo che, indubbiamente, permettevano una manipolazione del flusso video decisamente più complessa ed articolata rispetto alle opportunità offerte dalla tecnologia precedente...

"LionHeart" per "Amiga", per esempio, spremeva ben bene il "Blitter"
e lo usava per scrollare parallatticamente tutto lo sfondo del gioco! :)

...Perché il nodo gordiano della situazione riguarda proprio i predecessori.

Immaginatevi questo scenario: siete dei programmatori. Il vostro lavoro, quindi, è quello di sviluppare codice. Voi siete diligenti e programmate al meglio delle vostre possibilità, sfruttando tutti i mezzi a vostra disposizione. Il sistema sul quale sviluppate abitualmente è un calcolatore elettronico modello "Commodore 64" ed il vostro ultimo committente vi ha richiesto di programmargli un'ambiziosa routine di "scrolling parallattico" da utilizzare in un videogioco. In un contesto del genere (leggi: sistema operativo rudimentale, zero interfacce grafiche e nessun tipo di "multitasking"...), "programmare al meglio" fondamentalmente significa utilizzare un "compilatore assembler", carta, penna e tanta fantasia... No, non avete assolutamente a disposizione delle comode immagini ".PNG" da assemblare in strati sullo schermo... Anzi, a dirla tutta i "formati grafici" a momenti nemmeno esistono, concettualmente! ("Koala Painter" a parte... :P ). Grafica, musica, effetti sonori e codice sono un tutt'uno, praticamente. La multimedialità intesa come "Tizio mi porta la musica, Caio la grafica ed io poi metto tutto assieme" è un concetto ancora relativamente astratto... Nella stragrande maggioranza dei casi, se Caio ti porta veramente la grafica, ti ritrovi per le mani degli schizzi su carta quadrettata che poi tu devi convertire in dati alfanumerici... :D

"Ecco. Il primo livello l'ho concepito così...".

Ora, in un contesto del genere, il programmatore aveva a che fare con una pagina video da rasterizzare MANUALMENTE con i dati grafici. Una pagina video che non prevedeva nessuna facilitazione di tipo "hardware" che gli consentisse di manipolare comodamente piani e/o sfondi... Morale: realizzare in qualche maniera uno "scrolling" di tipo parallattico su una macchina del genere era tutta questione di codice. In parole povere, un'impresa a dir poco titanica! In tal senso, se consideriamo la stragrande maggioranza dei titoli pubblicati per "Commodore 64", i videogames che possono vantare questa spettacolare caratteristica si contano sulle dita di una mano...

Il primo esempio che mi viene in mente di citarvi è "Uridium" di un certo Andrew Braybrook... ;)

"Uridium", 1986.

In questo "shmup" a scorrimento orizzontale bidirezionale, ci ritroviamo alla guida di una navicella intenta a sorvolare degli immensi "Dreadnought" che scorrono fluidamente sotto di noi. Le sagome delle immense corazzate interstellari ingombrano la maggior parte dello schermo, ma lasciano intravedere delle porzioni del panorama spaziale circostante, dove risplendono le "stelle fisse" del sistema tolemaico... :)

Sembra una banalità, non è vero? ;) Diversamente, Braybrook dovette escogitare un ingegnoso artificio per riuscire a portare a casa "l'effetto parallasse astronave-stelle"... :)

In primo luogo, i "Dreadnought" che scrollano a destra ed a sinistra assecondando i movimenti della nostra navicella sono lo sfondo vero e proprio... Diversamente, le stelle che consideriamo erroneamente come "sfondo" non sono altro che dei simboli grafici customizzati che il codice del gioco stampa sullo schermo in primo piano, nelle aree non occupate dal profilo delle corazzate interstellari. ;)

Queste stelle scrollano in direzione opposta al moto dello sfondo in maniera assolutamente sincrona. Così facendo, di fatto rimangono sempre fisse nella loro posizione iniziale. Geniale, no? :D

Ma l'effetto può essere ancora più strabiliante, alle volte...

"Shadow Of The Beast", 1989.

In "Shadow Of The Beast", il famigerato effetto parallattico di "Street Fighter II" è riprodotto quasi alla perfezione ("quasi" perché il numero dei livelli in sovrapposizione tra di loro è considerevolmente inferiore rispetto a quelli che costituiscono i pavimenti prospettici del "picchiaduro" targato "CapCom"... Ma in fondo stiamo giocando sul "Commodore 64"! Che volete di più dalla vita?! :D ).

L'effetto, in sé e per sé, è abbastanza banale, a dirla tutta (in fondo siamo davanti ad una serie di elementi grafici rettangolari senza particolari sovrapposizioni che si spostano a velocità differenti...) ma, signori, vederlo con i propri occhi con la consapevolezza che un "computer" che non nasce per visualizzare effetti del genere, nonostante tutto ce la fa, è una cosa da brividi lungo la schiena...

E non è finita qui!!!

"Flimbo's Quest", 1990.

"Flimbo's Quest", rilasciato nel lontano 1990 da "System 3", nell'ambito del discorso "scrolling parallattico" è una vera e propria summa teologica delle capacità inespresse di un computer che, tecnicamente, non dovrebbe essere in grado di proporre a video ciò che gli occhi percepiscono... :D

Il videogame in questione è un canonico "platform" remixato con elementi "shmup". Niente di innovativo sul piano della giocabilità, in fin dei conti. Ma a livello tecnico... A livello tecnico, signori, "Flimbo's Quest" è qualcosa che fa gridare al miracolo. Nel dettaglio, il videogame propone un canonico livello che si sviluppa orizzontalmente scrollando in due direzioni (assecondando il moto del protagonista del gioco). Su questo livello, si sovrappongono le piattaforme sulle quali Flimbo salta e spara come vuole la tradizione... Il punto è che tra gli interstizi della struttura che compone il livello che funge da primo piano, si intravede uno sfondo che scrolla in maniera impeccabilmente parallattica rispetto a tutto il resto! E questa volta non stiamo parlando di qualche rettangolo di grafica oppure di caratteri/sprites con i quali si inganna l'occhio. No... In "Flimbo's Quest" il fondale parallattico è esteso tanto quanto il primo piano e totalmente sovrapposto a quest'ultimo, in modo da creare due veri e propri "layers" su un calcolatore dotato di un sottosistema grafico che non concepisce queste distinzioni nella gestione del segnale video!


In conclusione, anche se esageri quando scrolli a questo modo, indubbiamente non stai commettendo degli atti impuri. Ma se è evidente che hai venduto l'anima al diavolo per acquisire delle competenze sovrumane nell'ambito della programmazione in "assembler", molto probabilmente la violazione del sesto comandamento della dottrina cristiana è l'ultimo dei tuoi problemi, IMHO! :D

Cos'è questo QRCode?
Come l'hai realizzato?


Nessun commento:

Ritorna in alto! Related Posts Plugin for WordPress, Blogger...