Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

Una difficile partita di tennis

Lo stadio era gremito di gente, che stava in silenzio, rapito dalle performance delle due giocatrici. Il sole era caldo, l'arrivo dell'estate si stava facendo sentire, e parecchi bambini tra il pubblico sorseggiavano una bibita fresca per alleviare la calura. Questo però non impediva loro di disturbare i genitori, ogni tanto.

Sul campo, Anna scattò improvvisamente a sinistra, seguendo d'istinto la traettoria della pallina da tennis che si stava spostando verso di lei. Era stanca, l'incontro durava da quasi un'ora ormai, ma non aveva nessuna intenzione di mollare. I primi 2 set si era conclusi a suo favore, ma sapeva perfettamente che la sua avversaria non glieva avrebbe data vinta facilmente. Doveva tenere duro. Distese il braccio e si esibì in un rovescio, che rispedì la palla dall'altra parte del campo. Non riuscì a trattenere un urlo per lo sforzo. Sperava di aver dato alla palla un'inclinazione sufficiente ad ingannare l'altra giocatrice: dopo aver colpito la palla, seguì con lo sguardo il suo colpo, e sorrise debolmente quando la vide viaggiare oltre la rete. Forse - si disse - è dentro, forse.....

"OUT!!!!" - la voce dell'arbitro tuonò imperiosa con il suo dolby-sorround, facendo sussultare i presenti e scatenando un rispettoso applauso.

Forse. Anna aveva avuto l'impressione che il suo colpo non fosse perfetto, che finisse fuori, ed in effetti così era stato. Ma ci aveva sperato. Non potè che maledirsi e, stringendo i pugni, ricercò in sè stessa la concentrazione necessaria per continuare il match. Ma la voce dell'arbitro era quasi un incubo, nella sua testa. Per la prima volta, Anna cominciò a dubitare, e ad aver paura di fallire. Camminando lentamente, si portò a fondo campo, preparandosi a ricevere la battuta. Guardò il tabellone digitale che riportava il punteggio: 2 set a zero in suo favore. Un istante dopo Anna si sentì un po' più coraggiosa.

"Ah, sei proprio un incapace!" - disse il ragazzo a suo fratello minore seduto davanti al PC. "Adesso ti faccio vedere io...un attimo prima di colpire la palla, devi premere T sulla tastiera, e poi usi i tasti direzione per direzionare il colpo...altrimenti non fai un tiro potente. Guarda..."

Alzò la testa, e lasciò che la leggera brezza digitale le accarezzasse i capelli biondi. Sapeva che quel vento era per certi versi finto, ma non potè resistere. Anche il calore del sole era solo una simulazione, ma Anna provò comunque un certo sollievo quando sentì la luce inondarle il volto. I riflessi del sole sul campo da tennis arrivavano veloci con un algoritmo Shader 2.0 implementato nelle DirectX 10.0, e causavano un riverbero su tutto l'ambiente circostante. Gli applausi del pubblico, i rimbalzi della palla e l'impatto con la racchetta, la voce dell'arbitro: tutto veniva realizzato attraverso il protocollo EAX con cui il videogame stava girando.

Stringendo i pugni sul manico della racchetta, Anna provocò l'applicazione di un lieve effetto di anti-aliasing 4x, per miscelare correttamente i colori RGB della sua mano e del colore rosso del materiale sintetico della racchetta. Nel prossimo set si sarebbe giocata tutta la sua vita. Sapeva perfettamente che la prossima volta lei sarebbe stata diversa. Oh certo, l'implementazione del suo personaggio sarebbe stata la stessa, ma i bytes che l'avrebbero formata sarebbero stati di sicuro in locazioni diverse della memoria. Voleva vincere quella partita, ma voleva essere lei, non la prossima istanziazione di se stessa. I valori di destrezza, forza ed intelligenza erano più che adeguati per quell'incontro, ma gran parte del lavoro spettava al Creatore che la controllava. Se questi era in gamba, lei avrebbe vinto.

Anna strinse gli occhi per filtrare la luce, vide la propria avversaria cominciare il servizio, e si preparò a reagire di conseguenza.

Il ragazzo muoveva le dita agilmente sulla tastiera, spostando da una parte all'altra la sua tennista. Roveschio, dritto, sotto rete. Il giocatore non si faceva cogliere impreparato, e gestiva il gioco senza grossi problemi. Cercava il movimento giusto per infilare l'avversario, ma la IA del videogame era piuttosto elevata, e non era affatto semplice. Man mano che passava il tempo, la barra dell'energia della sua tennista diminuiva, rallentandone i riflessi: doveva fare qualcosa. Agì nel momento giusto: l'avversario si sbilanciò, era tutto nella parte destra del campo e non sarebbe riuscito a ribattere alla diagonale che aveva in testa. Premendo il tasto LEFT sul tastierino numerico, premette SPACE ed il colpo partì veloce e sicuro, disegnando una traettoria perfetta.

Anna si muoveva velocemente da una parte all'altra del campo. Reagiva molto velocemente, rispondendo ad ogni colpo della sua avversaria. Tutto ad un tratto, da uno dei layer di servizio arrivò un oggetto che, seguendo il pattern Command, gli ordinò di eseguire un colpo come solo lei sapeva fare. Nonostante la fatica, Anna sorrise, eseguì su se stessa il metodo HitBall(), passando come parametro il Command. L'algoritmo di collisione tra palla e racchetta fece il resto: la palla viaggiò in direzione opposta, con una velocità fulminante. Questa volta non c'erano dubbi: dopo aver sorvolato la rete disegnata da Direct3C, la palla impattò qualche istante dopo sul terreno di terra battuta, sollevando un po' di polvere rossa semi-trasparente.

L'arbitro convalidò il punto, e fu allora che lo stadio esplose in un lungo applauso. Sentì le proprie gambe farsi molli, e si lascò cadere in ginocchio, con le lacrime che sgorgavano copiose dagli occhi. Questa azione era solo un'animazione precalcolata, giusto per far divertire il Creatore un po' di più, ma ad Anna non importava nulla. Anna si sentì felice come mai lo era stata. Tutta la gente si alzò in piedi, esultando per la vittoria della loro beniamina che in questo momento stava sollevando al cielo il trofeo tanto agognato. La Coppa era nelle sue mani virtuali, la Coppa che sapeva di poter vincere era finalmente sua.

La Coppa era renderizzata sulla memoria AGP, l'audio usciva dalle casse dopo aver subìto processi digitali complessi, il suo comportamente era in parte generato in real-time, in parte precalcolato per migliorare le prestazioni, lo stadio era solo un oggetto 3D matematico, il pubblico non era dettagliato, era solo una texture 2D solo per dar l'illusione della presenza, la racchetta che impugnava non esisteva neppure, così come la palla e la sua avversaria che - tra l'altro - non c'era più.

Ma Anna non si era mai sentita così viva. Sperò che quella sensazione durò a lungo, perchè voleva godersela fino in fondo.
In realtà, tutto durò fino a quando il giocatore non premette ESC sulla tastiera per tornare al menù principale del videogame.

Print | posted on lunedì 16 ottobre 2006 02:08 | Filed Under [ 010 .bytes. 010 ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET