Użyłem zarówno SDL, jak i SFML do moich projektów gier. Użyłem SDL do ukończenia gry, gry tetris, i głównie używałem SFML jako warstwy okienkowej do eksperymentów z shaderem. Z mojego doświadczenia muszę powiedzieć, że SDL jest tym, co mówi. Jest to prosta warstwa bezpośrednich mediów, która wyodrębnia dane, z którymi współpracują Twoje media (dźwięk i wideo) do poziomu, z którym możesz wchodzić w interakcje na różnych platformach. To „wszystko”, co robi.
Z tego powodu zazwyczaj należy wymieszać go z kilkoma innymi bibliotekami, w szczególności z SDL_mixer, SDL_gfx i SDL_image, które zapewniają funkcjonalność potrzebną każdemu do tworzenia gier.
Wszystkie te biblioteki są również przeznaczone dla języka programowania C i są zgodne z jego konwencjami. Nie chodzi o to, że jest w tym coś złego, ale jeśli chcesz zorientowanego obiektowo podejścia do interakcji z io, w zasadzie musisz sam zbudować tę warstwę.
SFML zawiera wszystko od razu po wyjęciu z pudełka. Ma dźwięk, ma wideo, ma miksowanie, ma ograniczanie klatek i jest zorientowany obiektowo. Jeśli tego właśnie chcesz, polecam pójść na to. SFML ma również warstwę abstrakcji dla niektórych podstawowych funkcji OpenGL (w szczególności beginShape / EndShape i shaderów pikseli). Nie sądzę, że SDL ma coś takiego, tylko metodę łączenia się z tym.
PS Nie odrywaj konwersacji od C / C ++, ale jeśli nie używasz tego języka z jakiegoś konkretnego powodu i chcesz łatwiejszego, zawsze jest pygame. Który jest w zasadzie SDL + dla Pythona.