Simple DirectMedia Layer

The Simple DirectMedia Layer (SDL ) is a free multimedia library for various platforms. It is under the GNU Lesser General Public License ( LGPL) version 1.3 or since under the zlib license.

Concept

The library provides a platform independent interface ( API) for graphics, sound, and input devices that serves mainly for the development of games and multimedia applications. Through the support of many different platforms can be guaranteed for an application a high portability and platform independence; which distinguishes, for example, of DirectX. SDL can be understood with this property as a middleware.

SDL is written in C and is characterized by a compact code from what should make this library even for beginners easy to learn. There are many C sample programs that demonstrate how the library is used. For over twenty programming languages, there SDL 1.2 connections from other manufacturers. SDL 2.0 connections exist ( without C and C ) for at least three programming languages.

Dissemination

Indicative of the popularity and notoriety of SDL is the number of games and programs that were written to her, for example lists the games database MobyGames 2012 105 games, on the SDL website itself are almost 700 games listed. Well-known commercial examples are Angry Birds or Unreal Tournament, from the Open Source field eg OpenTTD, The Battle for Wesnoth or Freeciv.

For cross-platform game releases is often set to SDL as an abstraction library, because the effort towards implementations with the respective native platform APIs significantly reduced. One example is the Humble Indie Bundles usually contained in the SDL - based Linux, Mac, and Android versions.

Next will often use SDL for (later) porting to new platforms, such as Homeworld for the Pandora handheld or Jagged Alliance 2 for Android smartphones.

In SDL fitting end non- gaming applications are eg the emulators DOSBox and VisualBoyAdvance.

There also were several books published about how to develop with the SDL libraries, including SDL is used in universities in courses on multimedia and computer science.

History of development

Formation at Loki Software

SDL was developed by Sam Lantinga during his time as a senior programmer (1999 to 2001) at Loki Software. The Simple DirectMedia Layer forms (often in conjunction with the OpenGL and OpenAL interfaces ) provide the basis for some commercial game titles for Linux that have been ported by Loki, such as Civilization: Call to Power, Descent ³ or Sid Meier 's Alpha Centauri.

Even then SDL was placed under the LGPL. This step SDL quickly became known, since it could now be developed both proprietary and free software.

Development by the community

Although Sam Lantinga joined by Loki Software by Blizzard Entertainment in 2001, he managed the development of SDL and still continues to be one of the most active SDL developers. Ryan C. Gordon, another ex- Lokimitarbeiter, also continues to work on and with SDL example for the Linux and Mac versions of games in the Humble Indie Bundle.

Meanwhile, there is a large community and other volunteers who participate in the development.

SDL 1.3/2.0

Currently there is version 1.3 of the library in development and will bring about some changes. Additional skills in comparison to the previous version are support for operation on multiple monitors through hardware accelerated two-dimensional graphics and better support for Unicode. In addition to supporting multi-touch and haptic input devices such as finding their way with Force Feedback.

Unlike previous versions of SDL 1.3 uses the zlib license. Due to this it should be possible to develop proprietary products ( closed source ), which may then also the SDL statically bind ( "left" ).

Snapshots from February 2012 to change the version number to 2.0.

The first stable version of SDL 2.0 was released on August 13, 2013.

The current stable version of SDL 2.0.3 was released on 16 March 2014.

Functionality

The SDL library contains mainly for multimedia applications necessary functionalities for a widespread, platform independent and simultaneous high-performance API does not exist:

The Simple DirectMedia Layer is not itself functions for 3D graphics available because OpenGL is already a widespread, cross-platform 3D API. SDL has been designed from the outset for the interaction with OpenGL and is specifically intended to cover the multimedia aspects that are outside of the OpenGL functionality. Therefore, both libraries complement each other perfectly and even 3D games such as Tux Racer are possible.

Other applications such as Internet - Socket - abstraction or writing access to be aware not officially included in SDL, but are offered as extensions from other providers on the libsdl website.

Supported Platforms

Officially supported platforms:

  • Android (since SDL 1.3)
  • Linux
  • Mac OS, Mac OS X
  • Microsoft Windows (Win32 and Win64 )

Include support in the SDL code, but not officially supported:

  • AIX
  • AmigaOS, AROS
  • Atari
  • BSD derivatives (FreeBSD, OpenBSD, BSD / OS)
  • Dreamcast
  • IRIX
  • Microsoft Windows CE
  • MorphOS
  • NetBSD
  • Nintendo DS (since SDL 1.2.12 )
  • Pandora (since SDL 1.3)
  • Solaris
  • Symbian OS (since SDL 1.2.12 )
  • Tru64 UNIX
  • QNX

SDL runs on all Unix-like platforms, computer systems that support the POSIX standard.

In other ways was supported platforms:

  • DOS ( FreeDOS, etc.: Windows software runs using HX DOS Extender )
  • Dingoo A320
  • GP2X
  • Haiku
  • SkyOS
  • Xbox

Exemplary Gallery SDL -based games

Unknown Horizons

0 A.D.

Hedgewars

Frets on Fire

OpenTTD

The Battle for Wesnoth

Secret Maryo Chronicles

Oolite

Trine

511586
de