4
\$\begingroup\$

When I recently entered the field of game development, I actually assumed that “game engine” meant something with which you can make your game story script run in an environment where non-player characters have a state, and so you can test running your story as the bare bones of a game. A typical example of a tool for this is Chat Mapper. This in my perspective is the core of your game, around which you build animations, sounds, etc. using say a 3D engine. A 3D engine can also be used for ends which have little to do with games. Let’s temporarily call what I mean a game-story engine.

But this does not seem the intended meaning – I guess it depends on the focus and stage of your game. Possible meanings of “game engine” seem to be:

  • An environment which supports creating and running a complete game; this too is quite ambiguous definition, consider Unity, http://unity3d.com/unity/engine/, Vassal http://www.vassalengine.org .

  • The term “game engine” is actually a shortcut for “game 2D engine” or “game 3D engine”

Now what I am asking is not to become uselessly precise with words, but just whether there is a better term used for “game-story engine” which experienced game developers use. Thanks.

P.S. And no, I’m not heading towards (nor advising to) creating “game engines” before creating games. In my startup we actually created a very simple JavaScript “game-story engine” for our browser games (it was strictly necessary) which we would like to share and am now wondering how to present it.

\$\endgroup\$
1
  • 2
    \$\begingroup\$ The post: gamedev.stackexchange.com/questions/10770/… might help with this one, as commented on below what you are describing seems more of a Part of a game engine, rather than an entire game engine. \$\endgroup\$
    – James
    Apr 14, 2011 at 15:54

3 Answers 3

8
\$\begingroup\$

The industry doesn't have these terms nailed down well yet, but I'd say your concept is pretty far from colloquial use.

"Game Engine" usually refers to a piece of software that is meant to be extended by a game developer with their own specific logic to make a unique game. The Game Engine would provide all or nearly all of the generic services a game might need; e.g. audio playback, asset management, a renderer, physics simulation, AI framework, special effects systems, etc.

Usually a good Game Engine will also have a heavy tool component, where the Game Engine will ship with one or more tools to facilitate creating assets for use with the Game Engine; e.g. a 3D model and texture converter, a level editor, a sound back editor, etc.

The general idea is that a game dev should only have to bring their own unique work to the project (their logic, their art, their flair for lack of a better term), avoiding reinventing the wheel by leaving the common stuff to the Game Engine.

The murky part usually is how much needs to come with a Game Engine to consider it complete. That's a shifting target, both by who's looking at the question and what's currently fashionable. It's not at all uncommon that a project will use only a portion of the Game Engine they're purportedly using, patching in other components they find desirable/necessary. These other components (usually referred to as libraries) are also often bought in rather than written in house.

To throw in one more related common term: both the individual systems (Libraries) and comprehensive collections of integrated systems and tools (Game Engines) are collectively referred to as Middleware.

Note: here we're talking about Game Engine, as in a specific case of engine. The term engine alone is commonly (at least in my experience) used synonymously with library, module, system and even manager, and in that context would refer to a logical unit of code that provides a service, as per the components of a Game Engine above. I guess you could say all these nouns serve to form the sentence "the X that does Y" for the form YX; e.g. "the engine that does games", "the library that does pathfinding", "the module that does dialogue trees".

\$\endgroup\$
3
  • 1
    \$\begingroup\$ Thank you all for your clarifications - I still haven't decided how to call our "thing", but I understood that "game engine" would be quite misleading. \$\endgroup\$ Apr 15, 2011 at 8:13
  • 2
    \$\begingroup\$ I'm not sure I entirely agree. I can have an AI engine, a rendering engine, a scripting engine, a narrative engine, etc and bundle those up. I don't dispute the rest of the definition, I just don't see an engine as needing to comprise 'everything' \$\endgroup\$
    – Rushyo
    Apr 15, 2011 at 13:39
  • 1
    \$\begingroup\$ @Rushyo good point. I didn't notice that I'd sloppily dropped to just "engine" when I meant to say "game engine". I've fixed the two offending locations and added a clarification note. \$\endgroup\$ Apr 15, 2011 at 17:21
5
\$\begingroup\$

I would use the term "story engine" for what you're describing. It's a code module to handle the story, just like a physics engine is a code module to handle the physics. You'll also see terms like "tile engine" for a code module that handles graphics tiles; basically, a code module that handles a single aspect of a complete game will often be referred to as a engine. It's used more or less in the same way as "library" (as in "audio library.")

Both your possible definitions for the term "game engine" apply. For example, Unity is a 3D game engine.

\$\endgroup\$
1
  • \$\begingroup\$ So I'll search a way to put together "story engine" with "prototype environment". Hmmm. \$\endgroup\$ Apr 15, 2011 at 8:16
1
\$\begingroup\$

Prototype Environment is probably a good phrase to use, not that it's standard or anything, but if your talking about a place to set up AI characters and play with the mechanics of the game, that's a layer above the game engine.

game engine usually refers to things like the graphics renderer, which calculates lighting, etc. and some basic components important to the game like collision detection, how state is tracked, for the game, characters, level etc.

An environment set up where you have all of these components together in a usable way implies that a layer has been created which brings them all together. what that layer is called is a slippery term, because it brings so much together, sometimes it's referred to as the gameplay engine, sometimes it's just coordinating the gameplay, and then what do you call it. the thing or the thing that it acts upon.

\$\endgroup\$
2
  • \$\begingroup\$ I find your definition "a place to set up AI characters and play with the mechanics of the game" correct; the only problem with "Prototype Environment" is that at least in the case of a browser game, the same engine that makes the prototype run is then used to make the real game run. \$\endgroup\$ Apr 15, 2011 at 8:15
  • 2
    \$\begingroup\$ The difference between prototype and production is whether it has a release number or not ;) \$\endgroup\$
    – Rushyo
    Apr 15, 2011 at 13:40

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .