Я использовал SDL и SFML для своих игровых проектов. Я использовал SDL для готовой игры, тетрис, и я в основном использовал SFML в качестве оконного слоя для шейдерных экспериментов. Исходя из моего опыта, я должен сказать, что SDL - это то, что он говорит. Это простой прямой медиа-слой, который абстрагирует данные, с которыми работают ваши медиа (звук и видео), до уровня, с которым вы можете взаимодействовать на разных платформах. Это «все», что он делает.
Из-за этого вам, как правило, приходится смешивать его с несколькими другими библиотеками, особенно SDL_mixer, SDL_gfx и SDL_image, которые предоставляют функциональность, необходимую всем для создания игр.
Все эти библиотеки также предназначены для языка программирования C, и они следуют его соглашениям. Не то, чтобы в этом было что-то не так, но если вам нужен объектно-ориентированный подход к тому, как вы взаимодействуете с io, то вам, по сути, придется создавать этот слой самостоятельно.
SFML поставляется со всем прямо из коробки. У него есть звук, у него есть видео, у него есть микширование, у него есть кадрирование, и это объектно-ориентированный. Если это то, что вы хотите, я бы порекомендовал вам пойти на это. SFML также имеет уровень абстракции для некоторых основных функций в opengl (в частности, beginShape / EndShape и пиксельных шейдеров). Я не думаю, что у SDL есть что-то подобное, просто метод слияния с ним.
PS Не отталкивать разговор от C / C ++, но если вы не используете этот язык по какой-то конкретной причине и хотите более легкий, всегда есть пигмент. Что в основном SDL + для Python.