Tôi đã sử dụng cả SDL và SFML cho các dự án trò chơi của mình. Tôi đã sử dụng SDL cho một trò chơi đã hoàn thành, một trò chơi tetris và tôi chủ yếu sử dụng SFML làm lớp cửa sổ cho các thí nghiệm đổ bóng. Từ kinh nghiệm của tôi, tôi phải nói rằng SDL là những gì nó nói. Đó là một lớp phương tiện trực tiếp đơn giản, trừu tượng hóa dữ liệu mà phương tiện của bạn (âm thanh và video) hoạt động ở mức bạn có thể tương tác với các nền tảng khác nhau. Đó là "tất cả" nó làm.
Do đó, bạn thường phải kết hợp nó với một vài thư viện khác, đáng chú ý nhất là SDL_mixer, SDL_gfx và SDL_image, cung cấp chức năng mà mọi người cần để tạo trò chơi.
Tất cả các thư viện này cũng dành cho ngôn ngữ lập trình C và chúng tuân theo các quy ước của nó. Không có gì sai với điều đó, nhưng nếu bạn muốn một cách tiếp cận hướng đối tượng đến cách bạn tương tác với io, thì về cơ bản bạn phải tự xây dựng lớp đó.
SFML đi kèm với mọi thứ ngay lập tức. Nó có âm thanh, nó có video, nó có sự pha trộn, nó có giới hạn khung hình, và nó được hướng đối tượng. Nếu đó là những gì bạn muốn, tôi khuyên bạn nên làm điều đó. SFML cũng có một lớp trừu tượng cho một số chức năng cơ bản trong opengl (cụ thể là startShape / EndShape và pixel shader). Tôi không nghĩ SDL có bất cứ thứ gì như vậy, chỉ là một phương pháp để hợp nhất với nó.
PS Không loại bỏ cuộc trò chuyện khỏi C / C ++, nhưng nếu bạn không sử dụng ngôn ngữ đó vì bất kỳ lý do cụ thể nào và muốn một cuộc trò chuyện dễ dàng hơn, luôn có pygame. Về cơ bản là SDL + cho Python.