1
\$\begingroup\$

In delving into game programming, I have encountered both "SDKs" and "game engines". What are their relationships and differences to each other?

\$\endgroup\$
3
\$\begingroup\$

To be as concise as possible, an SDK is engine + tools. It gives you all you need to make a game for that platform.

Sometimes you don't need specialised tools to make a game; in that case you only need an engine. Sometimes they are required or at least very helpful.

To give a few examples:

  • UDK, in addition to the Unreal engine, includes editors to create content suited for the engine.
  • Back in the cartridge console days, the console vendor would give you a kit with hardware tools, such as a doohickey (like gameshark/gamegenie) that you plug in between the cartridge and console, which gives useful diagnostic output. Sometimes they will also give you a special development version of the console that amounts to the same thing.

Of course, you can have SDKs for things that aren't engines, which adds a bit of confusion. The DirectX SDK for example doesn't include a game engine, as DirectX is a graphics/multimedia framework.

\$\endgroup\$
  • 2
    \$\begingroup\$ on the other hand, I pretty much view the terms the other way around (using your example even, DirectX is the core that a game engine in built on top of). which really just goes to show, these terms are basically interchangeable. \$\endgroup\$ – jhocking May 23 '14 at 0:33
  • \$\begingroup\$ You don't even need an "engine" to make a game. \$\endgroup\$ – Josh May 23 '14 at 1:04
  • \$\begingroup\$ @jhocking my mistake; DirectX was a poor example. See edit. \$\endgroup\$ – congusbongus May 23 '14 at 1:18
  • \$\begingroup\$ no I wouldn't say it's a poor example. Rather, it's an example that proves the point: the terms don't mean anything exact, they just kinda vaguely point toward "stuff you make software with". \$\endgroup\$ – jhocking May 23 '14 at 1:19
  • \$\begingroup\$ @jhocking Arguments about semantics are tiresome :( but yes I see what you mean and I 100% agree. \$\endgroup\$ – congusbongus May 23 '14 at 1:22
-1
\$\begingroup\$

SDK applies to all of software development, whereas "engine" pretty much only applies to games. That's the only real difference between the terms (and even this description of "engine" plenty of people will disagree with); everything else is just semantics.

\$\endgroup\$
  • \$\begingroup\$ I have to disagree (to help prove your point ;)). Off the top of my head, Microsoft's "Jet Database Engine" comes to mind. Long before (1993) I ever heard the term game engine, I was familiar with that product. \$\endgroup\$ – Andon M. Coleman May 23 '14 at 6:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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