page_title: Simple DirectMedia Layer
section_title: Reception and adoption
hierarchical_section_title: Simple DirectMedia Layer / Reception and adoption
caption_attribution_description: English: Workshop on game programming using libSDL. By ADVUCA, University of Cadiz (Spain) Español: Taller sobre desarrollo de videojuegos en libSDL. ADVUCA, Universidad de Cádiz (España)
context_page_description: Simple DirectMedia Layer is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. Software developers can use it to write high-performance computer games and other multimedia applications that can run on many operating systems such as Android, iOS, Linux, macOS, and Windows.
  SDL manages video, audio, input devices, CD-ROM, threads, shared object loading, networking and timers. For 3D graphics, it can handle an OpenGL, Vulkan or Direct3D11 context. A common misconception is that SDL is a game engine, but this is not true. However, the library is suited to building games directly, or is usable indirectly by engines built on top of it.
  The library is internally written in C and possibly, depending on the target platform, C++ or Objective-C, and provides the application programming interface in C, with bindings to other languages available. It is free and open-source software subject to the requirements of the zlib License since version 2.0, and with prior versions subject to the GNU Lesser General Public License.
context_section_description: Over the years SDL was used for many commercial and non-commercial video game projects. For instance, MobyGames listed 120 games using SDL in 2013, and the SDL website itself listed around 700 games in 2012. Important commercial examples are Angry Birds and Unreal Tournament; ones from the open-source domain are OpenTTD, The Battle for Wesnoth or Freeciv.
  The cross-platform game releases of the popular Humble Indie Bundles for Linux, Mac and Android are often SDL based.
  SDL is also often used for later ports on new platforms with legacy code. For instance, the PC game Homeworld was ported to the Pandora handheld and Jagged Alliance 2 for Android via SDL.
  Also, several non video game software uses SDL; examples are the emulators DOSBox and VisualBoyAdvance.
  There were several books written for development with SDL (see further readings).
  SDL is used in university courses teaching multimedia and computer science, for instance, in a workshop about game programming using libSDL at the University of Cadiz in 2010, or a Game Design discipline at UTFPR (Ponta Grossa campus) in 2015.
caption: Workshop on SDL, University of Cádiz
exif: {"Image Make": "Canon", "Image Model": "Canon EOS 50D", "Image XResolution": "240", "Image YResolution": "240", "Image ResolutionUnit": "Pixels/Inch", "Image DateTime": "2010:11:28 16:53:43", "Image Artist": "Photographer: Jose Tomas Tocino Garcia - josetomastocino.com", "Image ExifOffset": "228", "Thumbnail Compression": "JPEG (old-style)", "Thumbnail XResolution": "72", "Thumbnail YResolution": "72", "Thumbnail ResolutionUnit": "Pixels/Inch", "Thumbnail JPEGInterchangeFormat": "736", "Thumbnail JPEGInterchangeFormatLength": "16669", "EXIF ExposureTime": "1/50", "EXIF FNumber": "9/2", "EXIF ExposureProgram": "Manual", "EXIF ISOSpeedRatings": "1000", "EXIF ExifVersion": "0221", "EXIF DateTimeOriginal": "2010:11:25 19:17:28", "EXIF DateTimeDigitized": "2010:11:25 19:17:28", "EXIF ShutterSpeedValue": "352741/62500", "EXIF ApertureValue": "86797/20000", "EXIF ExposureBiasValue": "0", "EXIF MaxApertureValue": "3", "EXIF SubjectDistance": "4294967295", "EXIF MeteringMode": "Pattern", "EXIF Flash": "Flash did not fire, compulsory flash mode", "EXIF FocalLength": "17", "EXIF SubSecTimeOriginal": "27", "EXIF SubSecTimeDigitized": "27", "EXIF FocalPlaneXResolution": "396000/149", "EXIF FocalPlaneYResolution": "528000/199", "EXIF FocalPlaneResolutionUnit": "2", "EXIF CustomRendered": "Normal", "EXIF ExposureMode": "Manual Exposure", "EXIF WhiteBalance": "Auto", "EXIF SceneCaptureType": "Standard"}