SDL 2.0 has been released!
Simple DirectMedia Layer has been a mainstay of open source game development for years, its a cross-platform open source library for handling input, output and graphics.
The new features in 2.0 include:
- Full 3D hardware acceleration
- Support for OpenGL 3.0+ in various profiles (core, compatibility, debug, robust, etc)
- Support for OpenGL ES
- Support for multiple windows
- Support for multiple displays
- Support for multiple audio devices
- Android and iOS support
- Simple 2D rendering API that can use Direct3D, OpenGL, OpenGL ES, or software rendering behind the scenes
- Force Feedback available on Windows, Mac OS X and Linux
- XInput and XAudio2 support for Windows
- Atomic operations
- Power management (exposes battery life remaining, etc)
- Shaped windows
- 32-bit audio (int and float)
- Simplified Game Controller API (the Joystick API is still here, too!)
- Touch support (multitouch, gestures, etc)
- Better fullscreen support
- Better keyboard support (scancodes vs keycodes, etc).
- Message boxes
- Clipboard support
- Basic Drag'n'Drop support
- Proper unicode input and IME support
- A really powerful assert macro
- Lots of old annoyances from 1.2 are gone
- Many other things!
Download is here:
http://www.libsdl.org/download-2.0.php
Mailing list announcement is here:
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2013-August/089854.html
So OGA, what are your thoughts?
I'll start with my own limited take on it.
Basically its going to mean a lot of open source games will be much easier to port to mobile devices and can start using more advanced graphics, input and sound. Also, since SDL is used by Valve, we can probably expect to see a lot more Steam Linux games using these features. Finally, my multiple monitors might get used under Linux!
The biggest downside I can see is that the bindings will all have to be updated. Specifically 2.0 doesn't yet bindings for Java, Lisp, Lua, Perl, PHP or Ruby like there are for 1.2. This will probably change with time, but for the moment it might keep some projects from upgrading.
http://www.libsdl.org/languages.php
@p0ss: Yeah, but about the bindings...
Let's not pretend that most of them were in a usable state.
Half of them where written by people who thought like "Oh, I'm writing the next LISP/ML/Prolog/Whatever dialekt, but OH NOSE, no one will use it if there is no possibility to display stuff, so let's add an incomplete SDL binding, bam done."
Even worse, some language creators/maintainers (like the Pike guys) disabled parts of the API to force users to use their own crud. NEVER do that.
Then, the Java folks usually use more highlevel wrappers, the perl binding was/is a PITA to install and to distribute and PHP bindings seem pointless.
Also, raw bindings to extension languages like Lua make no sense.
It may sound rude, but nothing was lost, I'd say.
I have not dug into SDL yet, but I really want to. I never used the SDL bindings, either. PyGame looked well-put-together, but I could be wrong.
I have seen some nice Lua-driven SDL-powered games.
Syrsly
Twitch Streamer, Web/Game Developer, & Artist
syrsly.com - contact me for commissions, thanks!