4. Muoversi in 2D o in 3D - Parte Prima
I moderni videogiochi possono essere classificati in base alle dimensioni con cui viene resa la nostra visuale.
I titoli in prima persona (come gli sparatutto) e in terza persona (ad esempio Mass Effect, Battlefield o Crysis) hanno motori grafici del tipo 3D, mentre i videogiochi con visuale tattica o dall'alto, come League of Legends, Starcraft ed Hearthstone hanno motori di gioco 2D.
Per essere precisi, alcuni giochi 2D hanno anche porzioni di codice incaricate di eseguire render in 3D: per le unità in Starcraft e per i campioni di LoL ad esempio, ma questo non interessa la visuale e quanto stiamo per dire.
Questa distinzione è importante per capire quali siano le meccaniche dietro al movimento di un cursore sullo schermo.
Muoversi in un ambiente 2D
In un ambiente 2D, con visuale fissa ed ortogonale, il gioco muove la visuale in modo più diretto sulla base dei nostri movimenti del mouse.
Dal punto di vista del motore grafico è un po' come muovere il cursore sul desktop di Windows.
In questo tipo di giochi, il concetto di sensibilità è trascurabile e la velocità del puntatore a schermo è direttamente legata ai DPI del sensore del mouse: questa è l'origine della leggenda metropolitana per cui DPI=velocità del cursore.
In questi giochi interviene, per variare la velocità del cursore, il campionamento dei counts inviati dal sensore, dove un rapporto di campionamento minore di 1 indica lo scarto di alcuni counts e porta ad una ridotta velocità del cursore a schermo, mentre un campionamento maggiore di 1 moltiplica i counts e porta spesso a problemi di tracciamento.
In questo tipo di giochi è sufficiente regolare i DPI nel modo più congeniale alle proprie abitudini.
Muoversi in un ambiente 3D
In un videogioco in 3 dimensioni il concetto si complica molto, con il movimento della visuale che viene elaborato dal motore grafico nello spazio tridimensionale e la sua orientazione calcolata in gradi di rotazione secondo un certo sistema di coordinate angolari.
Il mondo di gioco è quindi fatto di poligoni e di vettori, ma il motore grafico dovrà poi produrre un'immagine che sia la proiezione di detto mondo in 3D su una superficie piana, il nostro monitor.
La proiezione è in sostanza un'approssimazione del mondo 3D con un'immagine composta di più o meno pixel in base alla risoluzione.
L'immagine che vediamo a schermo è necessariamente la rappresentazione (proiezione) di un limitato angolo di visuale su un piano, solitamente almeno pari al campo visivo a fuoco dell'occhio umano, di circa 60°.
NOTA:Questo processo di proiezione di un mondo 3D in un immagine 2D si applica anche per i monitor 3D, i quali forniscono solo un'illusione di profondità usando, com'è noto, immagini bidimensionali in rapida successione in maniera differita ai due occhi.
Nell'ambiente 3D, la sensibilità è definita come una griglia di un numero fisso di punti nello spazio (immaginateli come punti equidistanti su una sfera) su cui il cursore si muove come gli scacchi sulle caselle: a sensibilità alte i punti sono più larghi, mentre a sensibilità basse abbiamo punti più vicini.
Da notare che la distanza tra i punti secondo questo sistema si esprime in gradi e da questo deriva un aspetto importante: la sensibilità , così come impostata nel gioco, non cambia al variare della risoluzione dello schermo e, di conseguenza, non cambierà la distanza di 360.
Vedremo, però, che questa distanza in gradi tra i punti si può esprimere in pixel una volta conosciuta la risoluzione corrente dello schermo.
Quindi non secondo i DPI, ma secondo la sensibilità e i cm360 si esprime la precisione in un gioco, intesa come capacità di spaccare il capello a schermo: se volete più precisione, dovete ridurre la sensibilità .