I would like to ask if SDL is considered a game engine, or just a library like Open and Direct3D?

  • 2
    \$\begingroup\$ -1 for lack of research. From their site "Simple DirectMedia Layer is a cross-platform multimedia library...". \$\endgroup\$ – MichaelHouse Jul 15 '13 at 14:01

SDL is a library. OpenGL is kinda library. DirectX is a collection of libraries. None of these are engines. Engines are built with some or all of these though.

Understand that you are looking at this in a way which won't allow you to fully understand the scope of these technologies. The term library is thrown around a lot, and it does little here to help anybody understand the purpose/intent of the technologies describe.

OpenGL first and foremost is a standard which has various implementations from system to system. A group of people meet, agree upon a standard which then becomes available to people ( like graphics hardware and operating system manufacturers ) who then in turn create an implementation. The implementation of OpenGL is a library, and is almost solely focused on providing us access to graphics hardware to accelerate and better our scenes.

SDL is a library built to be a solution to tackle the many redundant obstacles associated with creating a cross-platform game that utilizes such things as window management, event handling, video stuff which differ from platform to platform. Don't believe me? Make a simple program that only produces a window on the three major platforms and see how long it takes, now do it with SDL and realize why it exists. SDL can also utilize an implementation of OpenGL to further extend its capabilities, but SDL is by no means an engine. SDL however is a collection of sub-systems, not all of which have to be used in a project using SDL. Some of the sub-systems are video, audio, events, timing, etc.

DirectX would be most comparable to SDL in this set of technologies that we are discussing. DirectX is not cross-platform, but does provide a developers tools to easily tackle some of the problems associated with developing a game on windows. DirectX ( like SDL ) is really an amalgamation of technologies such as Direct3D, DirectAudio, DirectDraw etc. which together form a very powerful solution to taking on a game project.

An engine utilizes one or even all of these technologies to build a system which can be re-used to construct various games. For instance, the Unreal Engine utilizes both OpenGL and DirectX to bolster its graphics capabilities, and help push the technology across various platforms.


Not the answer you're looking for? Browse other questions tagged or ask your own question.