Я використовував і SDL, і SFML для своїх ігрових проектів. Я використовував SDL для готової гри, гри в тетріс, і я в основному використовував SFML як віконний шар для експериментів з шейдером. Зі свого досвіду, я повинен сказати, що SDL - це те, про що йдеться. Це простий шар прямого медіа, який дозволяє резюмувати дані, з якими працює ваш медіа (звук та відео) до рівня, з яким ви можете взаємодіяти на різних платформах. Це "все", що вона робить.
Через це вам, як правило, доводиться змішувати його з кількома іншими бібліотеками, особливо SDL_mixer, SDL_gfx та SDL_image, які забезпечують функціонал, необхідний кожному для створення ігор.
Усі ці бібліотеки також призначені для мови програмування на C, і вони слідують цим умовам. Не те, що в цьому є щось не так, але якщо ви хочете, щоб об'єктно-орієнтований підхід до того, як ви взаємодієте з io, вам, в основному, потрібно будувати цей шар самостійно.
SFML поставляється з усім, що вийшло прямо з коробки. Він має звук, має відео, змішує, має обмеження кадрів, і він орієнтований на об'єкти. Якщо це те, що ви хочете, я б рекомендував вам піти на це. SFML також має шар абстракції для деяких основних функцій в opengl (зокрема, шейджери beginShape / EndShape та пікселі). Я не думаю, що SDL не має нічого подібного, просто метод злиття з ним.
PS Не відволікайте розмову від C / C ++, але якщо ви не користуєтесь цією мовою з будь-якої конкретної причини, а хочете більш легкої, завжди є піггема. Це в основному SDL + для Python.