Because it can run in software for systems with non-compliant GPUs or with faulty drivers and the like. Because its a stable constant across all platforms. Because its high level, someone implementing a new renderer for, say, Mantle, can look at it and understand it easily without having to know D3D/OGL (bad example there I admit) but the point stands. SDL is the go-to library for many new programmers and is well supported and is stable across a great many platforms. Perhaps someone wants a game to run on a new platform that doesnt yet have complete OpenGL/D3D support implemented and wants to test the ui/controls/gameplay and such. SDL can run in software - and it fills that void.First, why would you want to choose between DirectX, OpenGL and SDL, specifically, seeing as how SDL is an abstraction layer that has DirectX and OpenGL backends?
As for the library I thing, I agree with you - it SOUNDS like a library (or many small library-like components) but if you look at the larger picture, its a library with a standard interface between the components so they can be used together in a more efficient manner. And due to its modular nature one could implement a higher level runtime which provides exactly the functionality you were talking about.
Basically, its not necessarily meant to be AN game engine but THE engine. One could make a game, or flight control software, or another engine. Using the modular design lets it fit into as many possible design scenarios as possible - and no matter how you look at it thats a very good thing. Especially when it reduces overhead that you would otherwise have if you wrote your application against an entire library that shipped functionality you didnt use/need.
Bookmarks