J'ai utilisé à la fois SDL et SFML pour mes projets de jeux. J'ai utilisé SDL pour un jeu fini, un jeu tetris, et j'ai surtout utilisé SFML comme couche de fenêtrage pour des expériences de shader. D'après mon expérience, je dois dire que SDL est ce qu'il dit. Il s'agit d'une simple couche de médias directs, qui résume les données avec lesquelles vos médias (son et vidéo) fonctionnent à un niveau avec lequel vous pouvez interagir sur différentes plates-formes. C'est "tout" cela.
Pour cette raison, vous devez généralement le mélanger avec quelques autres bibliothèques, notamment SDL_mixer, SDL_gfx et SDL_image, qui fournissent les fonctionnalités dont tout le monde a besoin pour créer des jeux.
Toutes ces bibliothèques sont également destinées au langage de programmation C et respectent ses conventions. Non pas qu'il y ait quelque chose de mal à cela, mais si vous voulez une approche orientée objet de la façon dont vous interagissez avec io, vous devez essentiellement construire cette couche vous-même.
SFML est livré avec tout dès la sortie de la boîte. Il a du son, il a de la vidéo, il a du mixage, il a un plafonnement des images et il est orienté objet. Si c'est ce que vous voulez, je vous recommande d'y aller. SFML dispose également d'une couche d'abstraction pour certaines des fonctionnalités de base d'Opengl (spécifiquement beginShape / EndShape et pixel shaders). Je ne pense pas que SDL ait quelque chose comme ça, juste une méthode pour fusionner avec elle.
PS Ne pas éloigner la conversation de C / C ++, mais si vous n'utilisez pas ce langage pour une raison particulière, et que vous voulez un plus simple, il y a toujours pygame. Ce qui est essentiellement SDL + pour Python.