Warum die SDL verwenden?

Immer wenn man eine neue Bibliothek verwenden möchte stellt man sich gezwungenermaßen die Frage warum man denn genau diese eine Bibliothek verwenden soll. Warum sollten wir also die SDL verwenden und nicht irgendeine andere Bibliothek mit vielleicht ähnlicher Funktionalität?

Einfachheit

Ein Grund steckt schon im Namen selbst drinnen, nämlich gleich das 'S' welches für 'Simple' also auf Deutsch 'einfach' steht. Die SDL zeichnet sich nämlich durch eine gut designte und bewährte API aus, die trotz ihrer Möglichkeiten sehr einfach zu verwenden ist. So kann der Anfänger leicht einsteigen und trotzdem gibt es immer noch genug Möglichkeiten für den Profi. Ein einfaches Programm um einen OpenGL Rendering-Kontext herzustellen kann man zum Beispiel auf nur ca. 10 Zeilen Code realisieren und das völlig plattformunabhängig.

Plattformunabhängig

Damit wären wir auch schon beim nächsten großen Punkt, nämlich der Plattformunabhängigkeit. Auch wenn das nicht das Ziel eines jeden Entwicklers ist kann man sich durch die Wahl der richtigen Bibliotheken viel Arbeit ersparen falls man dann doch einmal ein anderes Betriebssystem unterstützen will. Man kann also mit der SDL den völlig gleichen Code sowohl unter Linux genauso wie auch unter Windows kompilieren und das völlig ohne Mehraufwand. Bei der SDL beschränkt sich diese Portabilität jedoch nicht nur auf diese zwei Plattformen sondern auch zum Beispiel Mac OS und auch zahlreiche mobile Betriebssysteme bzw. Geräte werden unterstützt.

Lizenzierung

Ein weiterer wichtiger Punkt bei Bibliotheken ist ihre Lizenzierung. Die SDL steht unter der LGPL, einer Opensource Lizenz, die die Verwendung in Opensource Projekten genauso wie auch in professionellen Spielen und Programmen erlaubt. So können wir unsere Spiele privat oder unter einer Opensource Lizenz entwickeln und wenn wir dann einmal darauf kommen, das das Spiel so gut ist, dass wir es verkaufen wollen, können wir das tun ohne irgendwelche Lizenzgebühren für die SDL bezahlen zu müssen. Die einzige Einschränkung ist, dass wir in Programmen, die nicht unter einer LGPL kompatiblen Lizenz stehen, die SDL nur dynamisch linken dürfen, was aber eigentlich kein Hindernis sein sollte.

Aktive Weiterentwicklung

Ganz wichtig, vor allem im Bereich von Grafikbibliotheken, ist eine aktive Weiterentwicklung, die bei der SDL klar gegeben ist. Vor kurzem erst ist die zukünftige Version 1.3 in die Betatestphase gegangen, die mit einigen neuen und interessanten Features aufwarten wird. Die SDL wird seit ihrer Entstehung in den Jahren 1999 bis 2001 aktiv weiter entwickelt und aus heutiger Sicht wirkt es auch so als ob das auch in Zukunft so weiter gehen wird. Und selbst wenn der Hauptentwickler nicht mehr weitermachen sollte, kann durch die Lizenzierung leicht ein anderer Programmierer diese Arbeit fortsetzen.

Entwicklung durch einen Profi

Der Hauptentwickler der SDL, Sam Lantinga, entwickelt beruflich Spiele und hat auch in diesem Zusammenhang die erste Version der SDL entwickelt. Auch heute ist er noch in diesem Bereich bei Blizzard Entertainment tätig und verfügt so sicherlich über eine gute Basis an Erfahrung und Wissen, die zur die Entwicklung der SDL viel beitragen und somit für eine qualitativ sehr hochwertige Bibliothek sorgen kann.

Umfangreiche Features

Bis jetzt haben wir noch nicht viel über die Möglichkeiten der SDL erfahren, was wir nun nachholen. So beherrscht sie die Videoausgabe in 2D genauso wie das Erstellen eines Rendering-Kontextes für OpenGL, um dreidimensionale Echtzeitspiele zu ermöglichen. Neben diesen sehr bekannten und wichtigen Funktionen kann die SDL aber noch viel mehr:

Grafik

Wie bereits erwähnt wird 2D-Grafik genauso wie 3D-Grafik mit OpenGL unterstützt. OpenGL arbeitet sowieso mit Hardwarebeschleunigung aber auch für 2D-Grafik ist das möglich. Auch eine Wahl des Videomodus ist möglich. So kann man die Auflösung des Bildschirms, Vollbild/Fenstermodus und vieles mehr wählen.

Ereignis und Eingabebehandlung

Mit dem Nachrichtensystem kann man viele Events erhalten und behandeln. So kann man damit zum Beispiel Tastatur, Maus und Joysticks verwenden oder zum Beispiel feststellen ob die Größe des Fenster geändert oder die Anwendung minimiert wurde.

Audioausgabe

Weiters gibt es eine Audioausgabe von 8 Bit und 16 Bit Sounds sowohl in Mono als auch in Stereo. Außerdem gibt es einen Audiomixer mit dem man die verschiedenen Sound auch gleichzeitig abspielen und mischen kann.

Multithreading

Auch eine plattformunabhängige API für Multithreading ist in die SDL eingebaut. Sie ermöglicht das Erstellen und Verwalten von Threads mit häufig verwendeten Hilfsmitteln wie Semaphoren, Mutex und Condition-Variablen.

Timer

Der Timer Teil stellt in Millisekunden auflösende Timer zur Verfügung mit denen man die vergangen Zeit messen kann, eine bestimmte Zeit warten kann (sleep) oder auch einen periodischen Timer verwenden kann.

Konvertieren der Bytereihenfolge

Zuletzt ermöglicht die SDL auch das Feststellen der Bytereihenfolge (big endian/little endian) des Systems und auch die Konvertierung in die jeweils andere Reihenfolge.

Zusammenfassung

Zusammenfassend können wir also festhalten das die SDL durch ihre Einfachheit und Plattformunabhängigkeit besticht und unter einer sehr gut verwendbaren Lizenz steht, die uns bei der Lizenzierung unseres Programms eigentlich alle Möglichkeiten offen lässt. Weiters wird die Bibliothek aktiv von einem Entwickler aus der Spieleentwicklungsszene weiterentwickelt, was eine aktuelle und effiziente API zur Folge hat. Außerdem gibt es eine umfangreiche Liste von Features, mit denen wir die meisten grundlegenden Dinge eines Spieles gut abdecken können. Zusätzlich zu den hier vorgestellten Funktionalitäten gibt es Erweiterungen, die die Verwendung des Netzwerkes und das Laden und Rendern von TrueType-Schriftarten möglich machen.

So, und jetzt aber nichts wie los zur nächsten Seite: Vorkenntnisse und Voraussetzungen


SDL Start ↑ | → Vorkenntnisse und Voraussetzungen

Disukssion