Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Guida SDL - Perche usare SDL

Guida SDL

Capitolo 2° - Perche usare SDL

<< Precedente Prossimo >>
Perché usare l'SDL



Nella rete sono disponibili molte soluzioni al nostro desiderio di realizzare animazioni, screensaver, giochi o altro:

applicazioni che si concludono in eseguibili, come ad esempio Game Maker o Game Factory;

software come Flash, che necessitano anche di un player per eseguire il progetto creato;

librerie grafiche + proprie capacità di programmatore.



Non intendo sminuire in alcun modo il lavoro svolto tramite software dei primi 2 tipi elencati, in quanto ho lavorato per anni con Game Maker e ho avuto qualche esperienza in Flash (ed il suo comodo action script);  mi sento però di poter affermare che lavorare utilizzando librerie grafiche, o loro evoluzioni in motore grafico, tramite qualsiasi linguaggio di programmazione è decisamente più complesso e istruttivo, senza contare che fornisce la possibilità di realizzare un software performante, portabile e di qualità.



Per capire perché credo sia utile imparare a conoscere ed utilizzare questa libreria è importante distinguerla tra le altre di grande importanza (premetto che parlerò di quello di cui ho esperienza pratica, dunque nulla togliere a quelle che non conosco):

Allegro

(da http://www.gameprog.it/?resource=358)

"La libreria ha questi pregi:

- Grande portabilità

- Grande ottimizzazione del codice sotto Dos (motivo per il quale è molto usata per gli emulatori)

- Sorgenti disponibili e modificabili a piacere

- Gestisce anche periferiche di nuova concezione (force feedback)

- Semplifica notevolmente la vita del programmatore di videogiochi/emulatori

- Esistono TANTISSIMI pacchetti sviluppati con Allegro per gestire un sacco di cose (grafica 3D con Open-GL, nuove istruzioni dei processori, Font sfumati, funzioni ottimizzate per i tile,

Moduli sonorie (.mod, .xm e Mp3) e pensate, anche un piccolo browser HTML!)



La libreria ha questi difetti

- Il supporto 3D è molto limitato, ma esiste un plug-in per utilizzare le Open-GL con le funzioni 3D di Allegro.

- Sotto Windows la libreria è un semplice Wrapper per DirectX, e questo purtroppo mina molto le sue prestazioni (l'ottimizzazione spinta è per la versione DOS).

- Le versione più nuova (WIP) non è ancora perfettamente debuggata per tutti i sistemi."



Sono d'accordo con quasi tutta la descrizione, tranne che per il fatto che troppo poco vengono fatti pesare i difetti.. oltre che per il fatto che SDL non è da meno, riguardo gli emulatori!



SDL

Rispetto ai pregi di ALLEGRO modificherei solo la semplicità, che non è più notevole ma non eccessiva. Il supporto 3D è decisamente migliore (anche se sconveniente) e, con un po' di impegno, è possibile controllare più che pienamente le operazioni anche a basso livello. L'unico aspetto da curare molto è l'ottimizzazione.

Si può realizzare di tutto e di più, dal gioco allo screensaver all'emulatore. Ed è proprio un emulatore open-source che mi ha nuovamente sorpreso poco tempo fa; è facilmente reperibile in rete, si chiama DOSBox (ho scaricato la versione 0.70): emula dos 5 in maniera quasi impeccabile, così da poter utilizzare vecchi giochetti - o altro - a prestazioni ottimali.



OpenGL

Si tratta di una specifica che definisce API per più linguaggi e sistemi per la realizzazione di applicazioni 2D o - principalmente - 3D. E' incredibilmente performante e con la possibilità di lavorare bene sia ad alto che a basso livello.

E' la mia passione del momento, ma sono convinto che sia molto importante imparare prima l'SDL e solo in seguito l'OpenGL! E' utile prendere dimestichezza con la mentalità grafica 2D prima di passare alla terza dimensione, altrimenti si rischia di andare incontro a malintesi, e ad avere grosse lacune che si rischierebbe di non colmare mai. Invece imparare i concetti dell'OpenGL partendo da una base di SDL renderà le cose molto più naturali.



DirectX

E' qualcosa in più dell'OpenGL, ovvero, non si occupa solo dell'aspetto grafico, ma anche di quello dei suoni, della riproduzione video, delle periferiche di input e molto altro. Utilizzando le DirectX si può concludere un'applicazione completa, con l'OpenGL no, in quanto mancherebbero aspetti fondamentali, colmabili attraverso altre librerie o singole funzioni, comunque esterne al progetto OpenGL. Per questo aspetto le DirectX sono simili alla libreria SDL, nel senso che conglobano più aspetti.

Problema.. è sviluppato dalla Microsoft, quindi è, diciamo, esclusivo di Windows, a differenza dell'OpenGL che presenta un'architettura nota e può essere sfruttata da più piattaforme.



Ritengo fondamentale sottolineare la differenza profonda tra le librerie descritte sopra: OpenGL e Direct3D sono API grafiche che offrono un'astrazione software della GPU o della scheda video; queste hanno sostituito i render software come le API Glide. DirectX, SDL, OpenAL (non citata sopra) sono librerie a basso livello che offrono un accesso diretto anche ad altri componenti hardware (suoni, periferiche di input, ). Quindi si può realizzare un software che sfrutta le OpenGL per la grafica e l'SDL, o le DirectX, per tutto il resto. Per questo è necessaria una conoscenza non solo del codice, ma anche dei concetti base stessi.
<< Precedente Prossimo >>
A proposito dell'autore

Laurea in Ingegneria Informatica. Dottorato in Neuroingegneria. Conosco i linguaggi C/C++, Java, Delphi, jsp e servlet, PHP, SQL, Bash, R, Matlab, Lisp. Esperienza con le librerie SDL e OpenGL, Ogre3D e Ode, MFC e CLR, Winsock. Conoscenza base di: VB, Assembly.