Simple DirectMedia Layer
   HOME

TheInfoList



OR:

Simple DirectMedia Layer (SDL) is a
cross-platform Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
software development Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
library A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
designed to provide a
hardware abstraction layer Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acc ...
for computer
multimedia Multimedia is a form of communication that uses a combination of different content forms, such as Text (literary theory), writing, Sound, audio, images, animations, or video, into a single presentation. T ...
hardware components. Software developers can use it to write high-performance
computer games A video game or computer game is an electronic game that involves interaction with a user interface or input device (such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device) to generate visual fe ...
and other multimedia applications that can run on many
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
s such as
AmigaOS AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
, Android,
iOS Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
MorphOS MorphOS is an AmigaOS-like operating system designed for Power and PowerPC based computers. The core, based on the Quark microkernel, is proprietary, although several libraries and other parts are open source, such as the Ambient desktop. The p ...
,
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, and
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
. SDL manages
video Video is an Electronics, electronic medium for the recording, copying, playback, broadcasting, and display of moving picture, moving image, visual Media (communication), media. Video was first developed for mechanical television systems, whi ...
,
audio Audio most commonly refers to sound, as it is transmitted in signal form. It may also refer to: Sound *Audio signal, an electrical representation of sound *Audio frequency, a frequency in the audio spectrum *Digital audio, representation of sound ...
,
input device In computing, an input device is a piece of equipment used to provide data and control signals to an information processing system, such as a computer or information appliance. Examples of input devices include keyboards, computer mice, scanne ...
s, threads, shared object loading, networking and timers. For 3D graphics, it can handle an
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
,
Vulkan Vulkan is a cross-platform API and open standard for 3D graphics and computing. It was intended to address the shortcomings of OpenGL, and allow developers more control over the GPU. It is designed to support a wide variety of GPUs, CPUs and o ...
,
Metal A metal () is a material that, when polished or fractured, shows a lustrous appearance, and conducts electrical resistivity and conductivity, electricity and thermal conductivity, heat relatively well. These properties are all associated wit ...
, or Direct3D11 (older Direct3D version 9 is also supported) context. A common misconception is that SDL is a
game engine A game engine is a software framework primarily designed for the development of video games which generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term " software engine" u ...
. 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 Objective-C is a high-level general-purpose, object-oriented programming language that adds Smalltalk-style message passing (messaging) to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was ...
, and provides the
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
in C, with bindings to other languages available. It is
free and open-source software Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
subject to the requirements of the
zlib License The zlib license is a permissive software license which defines the terms under which the zlib software library can be distributed. It is also used by many other open-source packages. The libpng library uses a similar license, libpng license, s ...
since version 2.0, and with prior versions subject to the
GNU Lesser General Public License The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
. Under the zlib License, SDL 2.0 is freely available for
static linking A static library or statically linked library contains functions and data that can be included in a consuming computer program at build-time such that the library does not need to be accessible in a separate file at run-time. If all libraries a ...
in
closed-source Proprietary software is software that grants its creator, publisher, or other rightsholder or rightsholder partner a legal monopoly by modern copyright and intellectual property law to exclude the recipient from freely sharing the software or modi ...
projects, unlike SDL 1.2, although it is possible for the user to override the statically linked library with one provided by them. SDL 2.0, released in 2013, was a major departure from previous versions, offering more opportunity for 3D hardware acceleration, but breaking backwards-compatibility; a wrapper library made to translate 1.2 calls to 2.0 was later made available. SDL is extensively used in the industry in both large and small projects. By 2010, over 700 games, 180 applications, and 120 demos had been posted on the library website. SDL supports
Emscripten Emscripten is an LLVM/Clang-based compiler that compiles C and C++ source code to WebAssembly, primarily for execution in web browsers. Emscripten allows applications and libraries written in C or C++ to be compiled ahead of time and run effi ...
(i.e. programs that run on a web page). SDL 3 was released, as a stable version, in January 2025. It has a migration guide, and Coccinelle tool support to help migrate to the new major version. SDL 3 has a new way to control the entry point of your program, and you can optionally control execution in a non-framework way.


History

Sam Lantinga Sam Oscar Lantinga is a computer programmer. He used to be the lead software engineer at Blizzard Entertainment, where he was known to the community as Slouken. He is best known as the creator of the Simple DirectMedia Layer, a very popular open ...
created the library, first releasing it in early 1998, while working for
Loki Software Loki Software, Inc. (Loki Entertainment) was an American video game developer based in Tustin, California, that porting, ported several video games from Microsoft Windows to Linux. It took its name from the Norse deity Loki. Although successful ...
. He got the idea while porting a Windows application to Macintosh. He then used SDL to port ''
Doom Doom is another name for damnation. Doom may also refer to: People * Doom (professional wrestling), the tag team of Ron Simmons and Butch Reed * Daniel Doom (1934–2020), Belgian cyclist * Debbie Doom (born 1963), American softball pitche ...
'' to
BeOS BeOS is a discontinued operating system for personal computers that was developed by Be Inc. It was conceived for the company's BeBox personal computer which was released in 1995. BeOS was designed for multitasking, multithreading, and a graph ...
(see Doom source ports). Around the time of its creation, SDL was regarded as a simple alternative to DirectX. Several other free libraries were developed to work alongside SDL, such as SMPEG and . He also founded Galaxy Gameworks in 2008 to help commercially support SDL, although the company plans are currently on hold due to time constraints. Soon after putting Galaxy Gameworks on hold, Lantinga announced that SDL 1.3 (which would then later become SDL 2.0) would be licensed under the
zlib License The zlib license is a permissive software license which defines the terms under which the zlib software library can be distributed. It is also used by many other open-source packages. The libpng library uses a similar license, libpng license, s ...
.SDL 1.3 to be zLib Licensed
SDL Mailing List, 7 April 2011
Lantinga announced SDL 2.0 on 14 July 2012, at the same time announcing that he was joining
Valve A valve is a device or natural object that regulates, directs or controls the flow of a fluid (gases, liquids, fluidized solids, or Slurry, slurries) by opening, closing, or partially obstructing various passageways. Valves are technically Pip ...
, the first version of which was announced the same day he joined the company. Lantinga announced the stable release of SDL 2.0.0 on 13 August 2013.Announcing SDL 2.0.0
SDL Mailing List, 13 August 2013
SDL 2.0 is a major update to the SDL 1.2
codebase In software development, a codebase (or code base) is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code system files; thu ...
with a different, not
backwards-compatible In telecommunications and computing, backward compatibility (or backwards compatibility) is a property of an operating system, software, real-world product, or technology that allows for interoperability with an older legacy system, or with Input ...
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
. It replaces several parts of the 1.2 API with more general support for multiple input and output options. Some feature additions include multiple window support, hardware-accelerated 2D graphics, and better
Unicode Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
support. Support for
Mir ''Mir'' (, ; ) was a space station operated in low Earth orbit from 1986 to 2001, first by the Soviet Union and later by the Russia, Russian Federation. ''Mir'' was the first modular space station and was assembled in orbit from 1986 to ...
and Wayland was added in SDL 2.0.2 and enabled by default in SDL 2.0.4. Version 2.0.4 also provided better support for Android. In 2024, the stable preview of SDL 3.1.3 was released (and in January 2025 3.2.0 was released as stable). It makes the API more consistent and allows access to more parts of the device, along with other features.


Software architecture

SDL is a wrapper around the operating-system-specific functions that the game needs to access. The only purpose of SDL is to provide a common framework for accessing these functions for multiple operating systems (cross-platform). SDL provides support for 2D pixel operations, sound, file access, event handling, timing and threading. It is often used to complement
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
by setting up the graphical output and providing mouse and keyboard input, since OpenGL comprises only rendering. A game using the Simple DirectMedia Layer will ''not'' automatically run on every operating system; further adaptations must be applied. These are reduced to a minimum, since SDL also contains a few abstraction APIs for frequent functions offered by an operating system. The syntax of SDL is function-based: all operations done in SDL are done by passing parameters to
subroutine In computer programming, a function (also procedure, method, subroutine, routine, or subprogram) is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times. Callable units provide a ...
s (functions). Special structures are also used to store the specific information SDL needs to handle. SDL functions are categorized under several different subsystems.


Subsystems

SDL is divided into several subsystems: ; Basics: Initialization and Shutdown, Configuration Variables, Error Handling, Log Handling ; Video: Display and Window Management, surface functions, rendering acceleration, etc. ; Input Events:
Event handling In computing, an event is a detectable occurrence or change in the system's state, such as user input, hardware interrupts, system notifications, or changes in data or conditions, that the system is designed to monitor. Events trigger responses or ...
, Support for Keyboard, Mouse, Joystick and Game controller ; Force Feedback: SDL_haptic.h implements support for "Force Feedback" ; Audio: SDL_audio.h implements Audio Device Management, Playing and Recording ; Threads: multi-threading: Thread Management, Thread Synchronization Primitives, Atomic Operations ; Timers: Timer Support ; File Abstraction: Filesystem Paths, File I/O Abstraction ; Shared Object Support: Shared Object Loading and Function Lookup ; Platform and CPU Information: Platform Detection, CPU Feature Detection, Byte Order and Byte Swapping, Bit Manipulation ; Power Management: Power Management Status ; Additional: Platform-specific functionality Besides this basic, low-level support, there also are a few separate official libraries that provide some more functions. These comprise the "standard library", and are provided on the official website and included in the official documentation: * ''SDL_image'' — support for multiple image formats * ''SDL_mixer'' — complex audio functions, mainly for sound mixing * ''SDL_net'' — networking support * ''SDL_ttf'' —
TrueType TrueType is an Computer font#Outline fonts, outline font standardization, standard developed by Apple Inc., Apple in the late 1980s as a competitor to Adobe Inc., Adobe's PostScript fonts#Type 1, Type 1 fonts used in PostScript. It has become the ...
font rendering support * ''SDL_rtf'' — simple
Rich Text Format ) As an example, the following RTF code would be rendered as follows: This is some bold text. Character encoding A standard RTF file can only consist of 7-bit ASCII characters, but can use escape sequences to encode other characters. ...
rendering Other, non-standard libraries also exist. For example: SDL_Collide on SourceForge created by Amir Taaki.


Language bindings

The SDL 2.0 library has
language binding In programming and software design, a binding is an application programming interface (API) that provides glue code specifically made to allow a programming language to use a foreign library or operating system service (one that is not native to ...
s for: * Ada * Beef * C * C++ * C# *
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language, published in American National Standards Institute (ANSI) standard document ''ANSI INCITS 226-1994 (S2018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperli ...
* D * Erlang * Fortran *
Gambas Gambas is an object-oriented dialect of the BASIC programming language, and an integrated development environment that accompanies it. Designed to run on Linux and other Unix-like computer operating systems, its name is a recursive acronym for ...
* Go *
Haskell Haskell () is a general-purpose, statically typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell pioneered several programming language ...
*
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
(e.g. JSDL) * Julia * Lua * Nim *
OCaml OCaml ( , formerly Objective Caml) is a General-purpose programming language, general-purpose, High-level programming language, high-level, Comparison of multi-paradigm programming languages, multi-paradigm programming language which extends the ...
*
Odin Odin (; from ) is a widely revered god in Norse mythology and Germanic paganism. Most surviving information on Odin comes from Norse mythology, but he figures prominently in the recorded history of Northern Europe. This includes the Roman Em ...
* Pascal *
Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
(via SDL) *
PHP PHP is a general-purpose scripting language geared towards web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by the PHP Group. ...
* Python (several, e.g. pygame_sdl2 and sdl2hl) * Raku *
Ring (The) Ring(s) may refer to: * Ring (jewellery), a round band, usually made of metal, worn as ornamental jewelry * To make a sound with a bell, and the sound made by a bell Arts, entertainment, and media Film and TV * ''The Ring'' (franchise), a ...
*
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH) ...
* Vala


Supported back-ends

Because of the way SDL is designed, much of its source code is split into separate modules for each operating system, to make calls to the underlying system. When SDL is compiled, the appropriate modules are selected for the target system. The following back-ends are available: *
GDI GDI may refer to: Science and technology * Gasoline direct injection, a type of fuel injection * Graphics Device Interface, a component of Microsoft Windows * Guanosine nucleotide dissociation inhibitor, a protein Organisations * Gabriel Dumont I ...
back-end for
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
. *
DirectX Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct" ...
back-end; older SDL 1.2 uses DirectX 7 by default, while 2.0 defaults to DirectX 9 and can access up to DirectX 12. *
Quartz Quartz is a hard, crystalline mineral composed of silica (silicon dioxide). The Atom, atoms are linked in a continuous framework of SiO4 silicon–oxygen Tetrahedral molecular geometry, tetrahedra, with each oxygen being shared between two tet ...
back-end for
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
(dropped in 2.0). *
Metal A metal () is a material that, when polished or fractured, shows a lustrous appearance, and conducts electrical resistivity and conductivity, electricity and thermal conductivity, heat relatively well. These properties are all associated wit ...
back-end for
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
/
iOS Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
/
tvOS tvOS (formerly Apple TV Software) is an operating system developed by Apple for the Apple TV, a digital media player. In the first-generation Apple TV, Apple TV Software was based on Mac OS X. The software for the second-generation and later ...
since 2.0.8; older versions use OpenGL by default. *
Xlib Xlib (also known as libX11) is an X Window System protocol client library (computer science), library written in the C (programming language), C programming language. It contains subroutine, functions for interacting with an X Server (computi ...
back-end for
X11 The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
-based windowing system on various operating systems. *
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
contexts on various platforms. * EGL back-end when used in conjunction with Wayland-based windowing system.,
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
and other systems. *
Vulkan Vulkan is a cross-platform API and open standard for 3D graphics and computing. It was intended to address the shortcomings of OpenGL, and allow developers more control over the GPU. It is designed to support a wide variety of GPUs, CPUs and o ...
contexts on platforms that support it. * sceGu back-end, a Sony OpenGL-like backend native to the PSP. An unofficial
Sixel Sixel, short for "six pixels", is a bitmap graphics format supported by terminals and printers from DEC. It consists of a pattern six pixels high and one wide (in black and white), resulting in 64 possible patterns. Each possible pattern is a ...
back-end is available for SDL 1.2. The
Rockbox Rockbox is a free and open-source software replacement for the OEM firmware in various forms of digital audio players (DAPs) with an original kernel. It offers an alternative to the player's operating system, in many cases without removing the o ...
MP3 player firmware also distributes a version of SDL 1.2, which is used to run games such as Quake.


Reception and adoption

Over the years SDL was used for many commercial and non-commercial video game projects. For instance,
MobyGames MobyGames is a commercial website that catalogs information on video game A video game or computer game is an electronic game that involves interaction with a user interface or input device (such as a joystick, game controller, controlle ...
listed 120 games using SDL in 2013, and the SDL website itself listed around 700 games in 2012. Important commercial examples are ''
Angry Birds ''Angry Birds'' is a Finnish media franchise created by Rovio Entertainment, and owned by Sega. The game series focuses on the titular flock of colorful angry birds who try to save their eggs from green-colored pigs. Inspired by the game ''Cr ...
'', ''
Unreal Tournament ''Unreal Tournament'' is a 1999 first-person shooter game developed by Epic Games and Digital Extremes. The second installment in the '' Unreal'' series, it was first published by GT Interactive in 1999 for Windows, and later released on the P ...
'', and games developed using
Valve A valve is a device or natural object that regulates, directs or controls the flow of a fluid (gases, liquids, fluidized solids, or Slurry, slurries) by opening, closing, or partially obstructing various passageways. Valves are technically Pip ...
's Source Engine, which uses SDL extensively for cross-platform compatibility; ones from the open-source domain are '' OpenTTD'', ''
The Battle for Wesnoth ''The Battle for Wesnoth'' is a free and open-source software, free and open-source turn-based strategy video game with a high fantasy setting (similar to J. R. R. Tolkien's Tolkien's legendarium, legendarium), designed by Australian-American d ...
'' or '' Freeciv''. The cross-platform game releases of the popular
Humble Indie Bundle Humble Bundle, Inc. is a digital storefront for video games, which grew out of its original offering of Humble Bundles, collections of games sold at a price determined by the purchaser and with a portion of the price going towards charity and ...
s 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 In Greek mythology, Pandora was the first human woman created by Hephaestus on the instructions of Zeus. As Hesiod related it, each god cooperated by giving her unique gifts. Her other name—inscribed against her figure on a white-ground '' ky ...
handheld A mobile device or handheld device is a computer small enough to hold and operate in hand. Mobile devices are typically battery-powered and possess a flat-panel display and one or more built-in input devices, such as a touchscreen or keypad. Mod ...
and
Jagged Alliance 2 ''Jagged Alliance 2'' is a 1999 tactical role-playing game developed by Sir-Tech, Sir-Tech Canada for Microsoft Windows and later porting, ported to Linux by Tribsoft. It is the third entry in the Jagged Alliance (series), ''Jagged Alliance'' seri ...
for Android via SDL. Also, several non video game programs use SDL; examples are the
emulator In computing, an emulator is Computer hardware, hardware or software that enables one computer system (called the ''host'') to behave like another computer system (called the ''guest''). An emulator typically enables the host system to run sof ...
s, such as
DOSBox DOSBox is a free and open-source MS-DOS emulator. It supports running programs primarily video games that are otherwise inaccessible since hardware for running a compatible disk operating system (DOS) is obsolete and generally unavailab ...
, FUSE ZX Spectrum emulator and
VisualBoyAdvance VisualBoyAdvance (commonly abbreviated as VBA) is a free emulator of the Game Boy, Game Boy Color, and Game Boy Advance handheld game consoles as well as of Super Game Boy and Super Game Boy 2. It is still downloadable to this day. Besides t ...
. There were several books written for development with SDL (see further reading). SDL is used in
university A university () is an educational institution, institution of tertiary education and research which awards academic degrees in several Discipline (academia), academic disciplines. ''University'' is derived from the Latin phrase , which roughly ...
courses teaching multimedia and
computer science Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied 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.


Video game examples using SDL

File:Unknown horizons 3176.PNG, '' Unknown Horizons'' File:Hwscreen.png, ''Hedgewars'' File:Scorched 3D 39.1 screenshot 3.jpg, '' Scorched 3D'' File:Fretsonfirex1.jpg, ''
Frets on Fire ''Frets on Fire'' (''FoF'') is a Freeware, free, Open-source video game, open-source music video game created by Finland, Finnish independent video game developer Unreal Voodoo. Players use the keyboard to play along with markers which appear on ...
'' File:OOlite Mac OS X screenshot.jpg, ''
Oolite Oolite or oölite () is a sedimentary rock formed from ooids, spherical grains composed of concentric layers. Strictly, oolites consist of ooids of diameter 0.25–2 millimetres; rocks composed of ooids larger than 2 mm are called pis ...
'' File:Wesnoth-1.6-5.jpg, ''
The Battle for Wesnoth ''The Battle for Wesnoth'' is a free and open-source software, free and open-source turn-based strategy video game with a high fantasy setting (similar to J. R. R. Tolkien's Tolkien's legendarium, legendarium), designed by Australian-American d ...
'' File:OpenTTD-1.3.3-en.png, '' OpenTTD'' File:0 A.D. alpha 25 - playing as Spartans.jpg, '' 0 A.D.'' File:SMC15PromoShot.png, '' Secret Maryo Chronicles'' File:Trine - Wizard Knight Caverns.jpg, '' Trine'' File:Trine 2 - Deadly Dustland Three Heroes.jpg, ''
Trine 2 ''Trine 2'' is a puzzle-platform game developed and published by Frozenbyte. It is the sequel to ''Trine (video game), Trine'' and was released on Microsoft Windows, OS X, PlayStation 3, and Xbox 360 in December 2011, and later for Linux in Marc ...
'' File:Teeworlds.png, '' Teeworlds''


See also


References


Further reading

* Alberto García Serrano: ''Programación de videojuegos en SDL'', Ediversitas, (Spanish) * Ernest Pazera: ''Focus On SDL'', Muska & Lipman/Premier-Trade, * Ron Penton: ''Data Structures for Game Programmers'', Muska & Lipman/Premier-Trade, (''game programming examples with SDL'') * John R. Hall: ''Programming Linux Games'', No Starch, (''First SDL book, by Loki Games'', archived online version: , )


External links

* {{official website Application programming interfaces Audio libraries C (programming language) libraries Cross-platform software Graphics libraries Linux APIs MacOS APIs Software using the zlib license Video game development Video game development software for Linux Windows APIs