• Advertisement
Sign in to follow this  

What exactly is a Game Engine?

This topic is 1960 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

Ok yes this is a stupid question and have read similiar questions but for some reason the answers they got just havent made sense to me. So if
someone would like to help me out I just have this one simple question: What is a Game Engine? Please be precise and explain exactly what it is.
Thanks in advance!

Share this post


Link to post
Share on other sites
Advertisement
A game engine is, in general terms, the reusable portion of a game. For example, this would be the code for rendering a model, playing sound, for physics interactions, etc. Some of them are loose-knit functions that people have just put together over the years, others are designed from the beginning.

If you want fast results, then a game engine is for you. If you want to learn and learn every single piece of programming a game, then they are probably not.

Share this post


Link to post
Share on other sites
In short , a game engine is a set of tools that allow you to craft a game using those tools provided.

It makes more sense when you actually make a small game, and then another small game... you can take a few things from your first game and use them in the second game... in C++ and SDL that would be your initiating SDL functions, blitting functions, loading art functions, probably your text functions... stuff that doesnt change that much and each game can use.
The more games you make the more 'tools' (tricks, techniques, methods) you aquire and the more you put into your next game... eventually you have a nice set of tools.
A Game Engine allows you to bypass that building up of your tool collection and presents you with the tools (but you do now have to learn how to use the tools as you didnt aquire them normally).

A Game Engine is usually coded in a more robust manner concentrating on ensuring the interfaces provide only the actions that were intended, and not allow for unintended calls... proper encapsulation, whereas most beginner coders are more concerned with getting damn thing to run and dont worry if someone else uses the code.

Share this post


Link to post
Share on other sites
I believe that the actual term 'game engine' was coined by id Software back during development of their game Wolfenstein 3D. They didn't know what to refer to the game program itself, so they just called the code that compiled into the game exe the 'engine'.

Games (more often than not) consist of a variety of media, eg: audio, graphics, models, etc. The game 'engine' is what coordinates grabbing user input, and creating the actual game experience itself via the screen and speakers. This does not require anything other than creating an interactive experience through the use of programming.

Share this post


Link to post
Share on other sites
This link is a good start:
[url="http://en.wikipedia.org/wiki/Game_engine"]http://en.wikipedia.org/wiki/Game_engine[/url]

Afterwards you should try play around with one:
[url="http://www.unrealengine.com/udk/downloads/"]http://www.unrealengine.com/udk/downloads/[/url]
[url="http://www.garagegames.com/products/torque-3d"]http://www.garagegames.com/products/torque-3d[/url] (click on demo download)
[url="http://unity3d.com/unity/download/"]http://unity3d.com/unity/download/[/url]

All three about is free to try out and the last one comes with a free version. You can read all you want about what an engine is but their is really only two ways to find out what a game engine is and that is to one: make a small game from the scratch(a small engine) or two try out a game engine already done and ready for use.

Most engines wont do you any good unless you have some basic programming skills as scripting is a pretty common way of making them do what you want. The world editors are more point and click though.

Have fun [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]

Share this post


Link to post
Share on other sites
There is a broad spectrum to the definition and what exactly the line is between an engine and the game itself. To put it in layman's terms, an engine is the software that turns the basic instructions a CPU and GPU and audio hardware are physically built to do into a platform that a creative person can use to make a game. It is just the same as any other software (input data, process, output data), but it's output is data in a different format, an interactive multimedia experience.

Share this post


Link to post
Share on other sites
This is actually a really interesting question.

I kinda feel that game engines are now a little bit deprecated. For example we no longer need a large monolithic "thing" to control our games logic.

If we say split our example game's core tech up into the libraries used. e.g...

OpenGL (graphics)
OpenAL (sound)
Glut (OS/Graphics binding layer)
ODE (physics collision)
Lua (entity scripting)

Would all of the above class as an engine?

Lets say I created a very small hierarchical entity management system to add objects and screens to the world easily... Would this very small bit be the engine and the other stuff be kinda like the plugins? Or maybe the shader manager defines an engine? This afterall, is generally where I spend the most lines of code.

Perhaps in the days of Quake 1 when there wasn't really the OpenGL or DirectX there is today, an "engine" had much more of a meaning. Now, games development is often more about integrating other libraries suited best to their role. An engine would be a limitation since it would get in the way if I wanted to use an alternative sound system for example.. Edited by Karsten_

Share this post


Link to post
Share on other sites
Game engine is a "basis" of the game. There is a "game" code, for examle characters behaviour, quest system, vehicle physical parameters etc. And an "engine" code that does not corrspond to particular game, it is a character animation system, sound player, resource system, scripting engine, physical engine, shader system etc.

You can share engine code between different games, but game code is unique for concrete game.

Share this post


Link to post
Share on other sites
Thank you to everyone who responded [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] All of your answers are really great thanks again [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img] Edited by NewBreed117

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement