Archived

This topic is now archived and is closed to further replies.

What is an Engine?

This topic is 5332 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

For quite some time I have been hearing about the term "Engine" in the software community like - Graphics Engine Text Engine etc My question is - What is an Engine and what is its purpose and How it is designed and implemented? "There is a Bug in every Code!"

Share this post


Link to post
Share on other sites
To me, an engine is a script interpretter. Also, the term has been stretched to mean anything that doesn''t stand alone, but provides an interface for doing something. For example, a sound engine could allow you to play sounds, but does nothing (useful) on its own. By this definition, there is little difference between an engine and an API. For example, OpenGL is an API, but could also be called a graphics engine.

btw: don''t post a question in more than one forum anymore. Could someone delete the other post?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Well lets get some things straight here. An "Engine" is not a Singular entity itself. It is made up of parts. In order for your code to use the name "Engine" it should typically meet the following requirements:

1) The engine is a independant entity. This means once the engine is completed you will not need to make direct calls to any API''s your using such as OpenGL or DirectX. Everything will be called through your engine. Example: MyEngineLookAt(); instead of glLookAt();

2) The engine must contain all of the following sub-systems:
a) Graphics
b) Input
c) Sound

3) Optional engine components are as follows:
a) Physics
b) Terrain
c) Other misc sub systems. (collision detection and the like)

These are the qualifications for using the term "Engine" in your product.

Now alot of people use the term "Engine" in correctly for instance "Graphics Engine" or "Sound Engine". IMHO these terms are used incorrectly. These "engines" are nothing more than subsystems created by individuals who give their creation the title of "Engine" to make it seem like a more significant achievement than it truely is.

As for the purpose of the engine.....
An engine provides a comfortable layer of abstraction between the programmer and the API''s they are working with. It provides the programmer with access to any non-game specific code, and allows the programmer to make changes to the "Engine code" with out effecting every peice of code written in the entire game. By non-game specific code I mean the subsystems mentioned above. Things like AI, and weapon implementations for the game are not part of the engine but typically part of the game itself.

Once you have your engine completed you can use your newly created engine to start making a game.

As for design..there are tons of ways engines are designed there are even books like "3d Game Engine Design" which cover this topic extensively so I''m not going to discuss that here.

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster

3) Optional engine components are as follows:
a) Physics
b) Terrain
c) Other misc sub systems. (collision detection and the like)



I tend to keep those completely different than the main engine.


I have the main engine which is VERY general and does all the basics (this takes use of the API your using, in my case DX):
- Graphics
- Sound
- Text on screen
- Input
- Script parsing (optional)
- Other general stuff

Then I have the GAME engine, a completely different system which controls:
- Loading maps
- Physics
- Collision Detection
- Script functionality
- etc.

Much similar to CuteBug's system, but I have completely different engines so that it is easy to just start a new game engine for a new game and still use the general purpose main engine.



- Rob Loach
Current Project: Go Through Object-Oriented Programming in C++ by Robert Lafore

"Do or do not. There is no try."
- Yoda


[edited by - Rob Loach on May 8, 2003 2:49:43 PM]

Share this post


Link to post
Share on other sites