Looks like cross-platform game development with SDL is going to get easier, as Ryan Gordon (also known as Icculus) has confirmed an Epic MegaGrant and details what it will be used for.
What is SDL? Simple DirectMedia Layer (SDL) is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware. It is used by video playback software, emulators, popular games and some game engines.
Ryan Gordon is one of the people responsible for its development, and Gordon has also ported plenty of games to Linux, macOS and other platforms over many years. In a new post on Patreon, a fun announcement was detailed about an approved Epic MegaGrant and how it's going to be used to improve SDL.
Previously if people wanted more than what SDL could do on a graphics level, they would be told something like "use OpenGL directly". Not great advice now, with Vulkan being pushed forwards and Vulkan is a much more modern and performant API to use for games. The problem is, Vulkan is also quite complicated. As the post mentions:
"It seems bonkers to tell people 'write these three lines of code to make a window, and then 2000 more to clear it,' but that's the migration funnel--and meat grinder--that SDL users are eventually going to get shoved into, and that's unacceptable to me." - Ryan Gordon.
What to do it about it then? Make working with Vulkan easier, by upgrading SDL to have a "simple, cross-platform, hopefully pleasant-to-use interface that Just Works and finds the best way to get things done with what it finds on the end-user's system" - Ryan Gordon.
Speaking to me on Twitter to spell it out even clearer, Gordon said:
"It’s going to be new SDL APIs that expose the functionality of Vulkan but do it with whatever API behind the scenes (Vulkan, Metal, Direct3D etc). There will be some limitations, but I think it will make the next-gen APIs way more accessible to people that aren’t AAA engine devs."
"In the same way that SDL currently provides functions to say 'get this window on the screen and this sound to the audio device and I don’t care how you _actually_ do it.'"
This sounds like a really great project, and hopefully something game developers will appreciate.