HOME

TheInfoList



OR:

Simple DirectMedia Layer (SDL) is a
cross-platform In 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 platforms. Some cross-platform software ...
software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invo ...
library A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
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 acce ...
for computer
multimedia Multimedia is a form of communication that uses a combination of different content forms such as text, audio, images, animations, or video into a single interactive presentation, in contrast to tradit ...
hardware components. Software developers can use it to write high-performance
computer games A personal computer game, also known as a PC game or computer game, is a type of video game played on a personal computer (PC) rather than a video game console or arcade machine. Its defining characteristics include: more diverse and user-dete ...
and other multimedia applications that can run on many
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s such as Android, iOS,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
,
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
, and
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for se ...
. SDL manages
video Video is an electronic medium for the recording, copying, playback, broadcasting, and display of moving visual media. Video was first developed for mechanical television systems, which were quickly replaced by cathode-ray tube (CRT) sy ...
,
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 sou ...
,
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, mouse, scanners, cameras ...
s,
CD-ROM A CD-ROM (, compact disc read-only memory) is a type of read-only memory consisting of a pre-pressed optical compact disc that contains data. Computers can read—but not write or erase—CD-ROMs. Some CDs, called enhanced CDs, hold both com ...
, threads,
shared object In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subro ...
loading,
networking Network, networking and networked may refer to: Science and technology * Network theory, the study of graphs as a representation of relations between discrete objects * Network science, an academic field that studies complex networks Mathematic ...
and timers. For 3D graphics, it can handle an
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
,
Vulkan Vulkan is a low- overhead, cross-platform API, open standard for 3D graphics and computing. Vulkan targets high-performance real-time 3D graphics applications, such as video games and interactive media. Vulkan is intended to offer higher perfor ...
,
Metal A metal (from ancient Greek, Greek μέταλλον ''métallon'', "mine, quarry, metal") is a material that, when freshly prepared, polished, or fractured, shows a lustrous appearance, and conducts electrical resistivity and conductivity, e ...
, 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 and generally includes relevant libraries and support programs. The "engine" terminology is similar to the term "software engine" used in the software ...
. 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++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
or
Objective-C Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXT ...
, and provides the
application programming interface An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
in C, with bindings to other languages available. It is
free and open-source software Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
subject to the requirements of the zlib License 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 In computer science, a static library or statically-linked library is a set of routines, external functions and variables which are resolved in a caller at compile-time and copied into a target application by a compiler, linker, or binder, produ ...
in
closed-source Proprietary software is software that is deemed within the free and open-source software to be non-free because its creator, publisher, or other rightsholder or rightsholder partner exercises a legal monopoly afforded by modern copyright and inte ...
projects, unlike SDL 1.2. SDL 2.0, released in 2013, was a major departure from previous versions, offering more opportunity for 3D hardware acceleration, but breaking backwards-compatibility. SDL is extensively used in the industry in both large and small projects. Over 700 games, 180 applications, and 120 demos have been posted on the library website.


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 ported several video games from Microsoft Windows to Linux. It took its name from the Norse deity Loki. Although successful in its go ...
. 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 (born 1934), Belgian cyclist * Debbie Doom (born 1963), American softball pitcher * ...
'' to
BeOS BeOS is an operating system for personal computers first developed by Be Inc. in 1990. It was first written to run on BeBox hardware. BeOS was positioned as a multimedia platform that could be used by a substantial population of desktop users an ...
(see
Doom source port The present article is a list of known platforms to which ''Doom'' has been confirmed to be ported. ''Doom'' is one of the most widely ported video games. Since the original MS-DOS version, it has been released officially for a number of operatin ...
s). Several other free libraries were developed to work alongside SDL, such as SMPEG and
OpenAL OpenAL (Open Audio Library) is a cross-platform audio application programming interface (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those ...
. 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.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 slurries) by opening, closing, or partially obstructing various passageways. Valves are technically fitting ...
, 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 files; thus, a codeb ...
with a different, not
backwards-compatible Backward compatibility (sometimes known as backwards compatibility) is a property of an operating system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially in ...
API. 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, formally The Unicode Standard,The formal version reference is is an information technology standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems. The standard, ...
support. Support for
Mir ''Mir'' (russian: Мир, ; ) was a space station that operated in low Earth orbit from 1986 to 2001, operated by the Soviet Union and later by Russia. ''Mir'' was the first modular space station and was assembled in orbit from 1986 to&n ...
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.


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 cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
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 the 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 or subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. Functions may ...
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 programming and software design, an event is an action or occurrence recognized by software, often originating asynchronously from the external environment, that may be handled by the software. Computer events can be generated or triggered ...
, 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 outline font standard developed by Apple in the late 1980s as a competitor to Adobe's Type 1 fonts used in PostScript. It has become the most common format for fonts on the classic Mac OS, macOS, and Microsoft Windows operating ...
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. T ...
rendering Other, non-standard libraries also exist. For example: SDL_Collide on SourceForge created by
Amir Taaki Amir Taaki ( fa, امیر تاکی; born 6 February 1988) is a British-Iranian anarchist revolutionary, hacktivist, and programmer who is known for his leading role in the bitcoin project, and for pioneering many Open-source software, open sou ...
.


Language bindings

The SDL 2.0 library has
language binding In programming and software design, 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 th ...
s for: *
Ada Ada may refer to: Places Africa * Ada Foah, a town in Ghana * Ada (Ghana parliament constituency) * Ada, Osun, a town in Nigeria Asia * Ada, Urmia, a village in West Azerbaijan Province, Iran * Ada, Karaman, a village in Karaman Province, T ...
* Beef * C *
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
* C# * D * Fortran *
Genie Jinn ( ar, , ') – also romanized as djinn or anglicized as genies (with the broader meaning of spirit or demon, depending on sources) – are invisible creatures in early pre-Islamic Arabian religious systems and later in Islamic myt ...
* 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 has pioneered a number of programming lan ...
*
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
(e.g. JSDL) *
Julia Julia is usually a feminine given name. It is a Latinate feminine form of the name Julio and Julius. (For further details on etymology, see the Wiktionary entry "Julius".) The given name ''Julia'' had been in use throughout Late Antiquity (e.g ...
*
Lua Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
* Nim *
OCaml OCaml ( , formerly Objective Caml) is a general-purpose, multi-paradigm programming language Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. ...
*
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, Frenc ...
*
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offic ...
(via SDL) * PHP *
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
(several, e.g. pygame_sdl2 and sdl2hl) * Raku * Ring *
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( ...
*
Vala Vala or VALA may refer to: Religion and mythology * Vala (Vedic), a demon or a stone cavern in the Hindu scriptures * Völva, also spelled Vala, a priestess in Norse mythology and Norse paganism Fiction * Vala (Middle-earth), an angelic being in ...
*
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ''ANSI INCITS 226-1994 (S20018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived fr ...


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 group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
. *
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 11. *
Quartz Quartz is a hard, crystalline mineral composed of silica ( silicon dioxide). The atoms are linked in a continuous framework of SiO4 silicon-oxygen tetrahedra, with each oxygen being shared between two tetrahedra, giving an overall chemical f ...
back-end for
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
(dropped in 2.0). *
Metal A metal (from ancient Greek, Greek μέταλλον ''métallon'', "mine, quarry, metal") is a material that, when freshly prepared, polished, or fractured, shows a lustrous appearance, and conducts electrical resistivity and conductivity, e ...
back-end for
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
/ iOS /
tvOS tvOS (formerly known as Apple TV Software) is an operating system developed by Apple Inc. for the Apple TV, a digital media player. In the first-generation Apple TV, Apple TV Software was based on Mac OS X. Starting with the second-generation, ...
since 2.0.8; older versions use OpenGL by default. *
Xlib Xlib (also known as libX11) is an X Window System protocol client library written in the C programming language. It contains functions for interacting with an X server. These functions allow programmers to write programs without knowing the ...
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 provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wi ...
-based
windowing system In computing, a windowing system (or window system) is software that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP ( windows, icons, menus, pointer) paradigm f ...
on various operating systems. *
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
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 association with Broadcom. The Raspberry Pi project originally leaned towards the promotion of teaching basic ...
and other systems. *
Vulkan Vulkan is a low- overhead, cross-platform API, open standard for 3D graphics and computing. Vulkan targets high-performance real-time 3D graphics applications, such as video games and interactive media. Vulkan is intended to offer higher perfor ...
contexts on platforms that support it. * sceGu back-end, a Sony OpenGL-like backend native to the PSP. SDL 1.2 has support for
RISC OS RISC OS is a computer operating system originally designed by Acorn Computers Ltd in Cambridge, England. First released in 1987, it was designed to run on the ARM chipset, which Acorn had designed concurrently for use in its new line of Archi ...
(dropped in 2.0). An unofficial Sixel 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 or ...
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 games and the people and companies behind them via crowdsourcing. This includes nearly 300,000 games for hundreds of platforms. The site is supported by banner ads and a small ...
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 action-based media franchise created by Rovio Entertainment. The game series focuses on the eponymous flock of angry birds who try to save their eggs from green-colored pigs. Inspired by the game ''Crush the Castl ...
'', ''
Unreal Tournament ''Unreal Tournament'' is a first-person arena shooter video 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 Microsoft Windows, and late ...
'', 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 slurries) by opening, closing, or partially obstructing various passageways. Valves are technically fitting ...
's
Source Engine Source is a 3D game engine developed by Valve. It debuted as the successor to GoldSrc in 2004 with the release of '' Counter-Strike: Source'' and '' Half-Life 2''. Updates to Source were released in incremental versions, with the engine being su ...
, 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 turn-based strategy video game with a high fantasy setting, designed by Australian-American developer David White and first released in June 2003. In ''Wesnoth'', the player attempts to build ...
'' or ''
Freeciv ''Freeciv'' is a single- and multiplayer turn-based strategy game for workstations and personal computers inspired by the proprietary ''Sid Meier's Civilization'' series. It is available for most desktop computer operating systems and available ...
''. 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 ''Homeworld'' is a real-time strategy video game developed by Relic Entertainment and published by Sierra Studios on September 28, 1999, for Microsoft Windows. Set in space, the science fiction game follows the Kushan exiles of the planet K ...
was ported to the
Pandora In Greek mythology, Pandora (Greek language, Greek: , derived from , ''pān'', i.e. "all" and , ''dōron'', i.e. "gift", thus "the all-endowed", "all-gifted" or "all-giving") was the first human woman created by Hephaestus on the instructions ...
handheld A mobile device (or handheld computer) is a computer small enough to hold and operate in the hand. Mobile devices typically have a flat LCD or OLED screen, a touchscreen interface, and digital or physical buttons. They may also have a physical ...
and Jagged Alliance 2 for Android via SDL. Also, several non video game programs use SDL; examples are the
emulator In computing, an emulator is 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 software or use pe ...
s, such as
DOSBox DOSBox is a free and open-source emulator which runs software for MS-DOS compatible disk operating systems—primarily video games. It was first released in 2002, when DOS technology was becoming obsolete. Its adoption for running DOS games i ...
, FUSE ZX Spectrum emulator and VisualBoyAdvance. There were several books written for development with SDL (see further readings). SDL is used in
university A university () is an institution of higher (or tertiary) education and research which awards academic degrees in several academic disciplines. Universities typically offer both undergraduate and postgraduate programs. In the United Stat ...
courses teaching multimedia and
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
, 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 ''Unknown Horizons'' is a city-building game and real-time strategy game, inspired by the ''Anno'' series. It is released under the GNU General Public License (GPLv2) and is therefore free and open source software. Much of the artwork is ope ...
'' File:Hwscreen.png, ''Hedgewars'' File:Scorched 3D 39.1 screenshot 3.jpg, ''
Scorched 3D ''Scorched 3D'' is a free and open source artillery game modeled after the MS-DOS game ''Scorched Earth''. ''Scorched 3D'' is licensed under the GNU GPL-2.0-or-later, and supports numerous platforms: Windows, Unix-like systems (Linux, FreeBSD, ...
'' File:Fretsonfirex1.jpg, '' Frets on Fire'' File:OOlite Mac OS X screenshot.jpg, ''
Oolite Oolite or oölite (''egg stone'') is a sedimentary rock formed from ooids, spherical grains composed of concentric layers. The name derives from the Ancient Greek word for egg (ᾠόν). Strictly, oolites consist of ooids of diameter 0.25� ...
'' File:Wesnoth-1.6-5.jpg, ''
The Battle for Wesnoth ''The Battle for Wesnoth'' is a free and open-source turn-based strategy video game with a high fantasy setting, designed by Australian-American developer David White and first released in June 2003. In ''Wesnoth'', the player attempts to build ...
'' 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 ''Secret Maryo Chronicles'' is a Free and open-source software, free and open-source two-dimensional platform game, platform computer game that began in 2003. The game has been described by the German ''PCtipp'' as a ''Super Mario Bros.'' Video g ...
'' File:Trine - Wizard Knight Caverns.jpg, '' Trine'' File:Trine 2 - Deadly Dustland Three Heroes.jpg, '' Trine 2''


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 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 ...
'', 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