Login
Newsletter
Werbung

Fr, 2. August 2002, 00:00

Multimedia-Entwicklung mit SDL

SDL steht für Simple DirectMedia Layer und ist eine Programmierschnittstelle für Spiele, Demos und Multimedia-Anwendungen. Dieses Tutorial zeigt die Programmierung mit SDL.

Über dieses Tutorial

Marco Kraus

Beim offiziellen Start von libSDL.de, der offiziellen deutschen libSDL-Seite, im Juni 2002, habe ich mich dazu entschieden, in Zusammenarbeit mit Pro-Linux.de ein deutschsprachiges SDL-Tutorial zu schreiben.

Warum ein deutschsprachiges Tutorial? Zum einen gibt es leider nur zwei deutschsprachige SDL-Programmier-Tutorials; eines davon basiert auf libSDL 0.10.0 und ist aus dem Jahr 1999, das andere ist sehr rudimentär. Zum anderen gibt es verhältnismäßig wenig deutsche SDL-Developer, im Vergleich zu anderen wichtigen Open-Source-Projekten. Vielleicht gibt dieser Artikel ja dem einen oder anderen den Anstoß, sich mit einer der wichtigsten freien und plattformübergreifenden Multimediabibliotheken zu befassen.

Programmierkenntnisse, speziell in C, und Entwicklungserfahrung unter dem jeweiligen Betriebssystem (Umgang mit der IDE und/oder dem Compiler und Linker) sind sehr von Vorteil. SDL wird zwar nativ in C programmiert, aber es sind doch einige andere Language-Bindings für SDL vorhanden (dazu am Ende des Tutorials noch ein bisschen mehr). Auch wer bereits Erfahrung mit DirectX-Programmierung hat, dem wird der Umstieg leicht fallen.

Eine aktuelle Version dieses Tutorials ist (nach Veröffentlichung aller Teile bei Pro-Linux.de) unter http://www.libsdl.de/docs.htm zu finden.

Was ist SDL?

SDL steht für Simple DirectMedia Layer und ist eine Programmierschnittstelle für Spiele, Demos und Multimedia-Anwendungen.

Die Struktur der SDL-Bibliothek

Marco Kraus

Die Struktur der SDL-Bibliothek

Konkret heißt das, dass SDL eine Schnittstelle zur Verfügung stellt, über die man einfach die Multimedia-Elemente wie Grafikkarte, Sound, Joystick oder CD-Rom programmieren kann. Man muss sich keine Gedanken mehr darüber machen, wie man z.B. ein Bild in den Grafikspeicher ablegt, wie man es wieder ausgibt oder wie man die Soundkarte ansteuert, da die komplette Geräteansteuerung über die SDL-Schnittstelle erfolgt und dann von SDL erledigt wird.

Bei Erwähnung von SDL kommt direkt immer der Vergleich zu DirectX auf. Aus technischer Sicht haben beide zwar nicht viel gemeinsam, aber um die Funktion von SDL zu verstehen, kann man sagen, dass sie vom Prinzip her beide eine Multimedia-Schnittstelle darstellen.

SDL hat aber zwei entscheidende Vorteile: Portabilität und Open Source. SDL gibt es für viele Plattformen, darunter Linux, Windows, die diversen BSD-Derivate, MacOS und BeOS und auch Portierungen für exotischere Hardware wie den Sharp Zaurus, die Sega Dreamcast oder die Sony Playstation II. Die Schnittstelle ist immer gleich. Programme, die beispielweise unter Linux entwickelt wurden, müssen einfach nur mit den SDL-Libs unter Windows übersetzt werden und laufen (mal von unterschiedlichen Compilerinterpretationen abgesehen) auch dort direkt problemlos und ohne Änderungen im Code.

Entstehungsgeschichte

SDL wurde von Sam Lantinga (1) während seiner Zeit als leitender Programmierer von 1999 bis 2001 bei Loki Games entwickelt. Loki (inzwischen ist die Firma leider bankrott) war darauf spezialisiert, Windowsspiele nach Linux zu portieren, und der Simple DirectMedia Layer war ihre Grundlage. Mit SDL wurden hochkarätige Spiele, unter anderem Civilization CTP, Descent 3 und Alpha Centauri nun auch der Linuxgemeinde ermöglicht.

Schon während dieser Zeit wurde SDL unter die LGPL gestellt. Somit können damit freie und auch kommerzielle Anwendungen programmiert werden. Dies war auch ein Grund dafür, dass die SDL schnell im Multimediabereich, speziell unter Linux, an Bedeutung gewann. Es entstanden viele neue Anwendungen wie SMPEG, ein MPEG-Bibliothek, die auch z.B. der mplayer nutzt, diverse Emulatoren wie DGen (Sega Genesis) oder Executor (Mac) und auch eine riesige Menge an freien Spielen.

Trotz seines Wechsels im Jahr 2001 von Loki zu Blizzard Software verwaltet Sam die libSDL heute noch immer und ist auch immer noch der wichtigste SDL-Entwickler. Auf der internationalen Developer-Mailingliste (2) kann man selbst aktiv an der Weiterentwicklung teil haben. Für deutschsprache Anwender steht die deutsche libSDL-Mailingliste bereit (3).

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung