So i was wondering the the other day.... What is a game engine? like really?
Would a game engine be strictly something like Unity? does it have to have a awesome GUI with all those crazy things, with the ability to create any type of game?Or is it the framework of any game? Does it need to be able to be changed around? for instance, i have a game i coded from scratch. specifically for one game. is that a game engine? or does it need too be able to be used to make another game in order for it too be called one?
What is a game engine?
-
- Posts: 255
- Joined: Sun Dec 12, 2010 7:30 am
- vitinho444
- Posts: 2819
- Joined: Mon Mar 21, 2011 4:54 pm
Re: What is a game engine?
Dont take my words as the "wikipedia definition" but for me, a game engine is a compiled or not piece(s) of code that are like a base for your game.
Unity is a beast in this world.. but i did a game engine in C++ with a graphics lib that has basic mapping, collision, shooting and that things, but i can get the source code and use it for another completely different game..
Unity is a beast in this world.. but i did a game engine in C++ with a graphics lib that has basic mapping, collision, shooting and that things, but i can get the source code and use it for another completely different game..
- Jackolantern
- Posts: 10891
- Joined: Wed Jul 01, 2009 11:00 pm
Re: What is a game engine?
An "engine" is essentially what would be considered a completed piece of software with many scripting and extensibility hooks in it. That is the main difference between an engine and a framework. An engine will typically be able to run on its own, but you alter it by scripting it (either in a separate scripting language or in the same language as the engine itself). A framework on the other hand almost always has you coding in the same language as the framework, and a framework is typically not complete without the code you write (of course it could still be a framework even if it was, but I am yet to see a framework where your code does not add vital parts to the application to make it run). Then the major difference between a library and a framework is that you call the code in a library, but a framework manages and calls your code.
In all actuality, ImpactJS would really be a framework and not an engine, but since "game framework" is an almost unheard of term, it gets lumped into engines. Unity 3D is most definitely an engine. It comes with a complete game (although an extremely bland one that basically does nothing) that is written in C/C++ and you script that game with Javascript/C#/Boo to turn that game into your game. If Unity's included game was incomplete, you would have to write C/C++ to finish it, but that is obviously not the case.
Oh yeah, and the editors are not really important to the distinction of being an engine or not. Those are simply utilities. I have used game engines that had no graphical editors, and I have used engines on the other side of the scale that have extensive GUI interfaces like Unity.
In all actuality, ImpactJS would really be a framework and not an engine, but since "game framework" is an almost unheard of term, it gets lumped into engines. Unity 3D is most definitely an engine. It comes with a complete game (although an extremely bland one that basically does nothing) that is written in C/C++ and you script that game with Javascript/C#/Boo to turn that game into your game. If Unity's included game was incomplete, you would have to write C/C++ to finish it, but that is obviously not the case.
Oh yeah, and the editors are not really important to the distinction of being an engine or not. Those are simply utilities. I have used game engines that had no graphical editors, and I have used engines on the other side of the scale that have extensive GUI interfaces like Unity.
The indelible lord of tl;dr
Re: What is a game engine?
It depends whether you name things for the sake of naming them. Or name them in regard to some practical goal.
- Jackolantern
- Posts: 10891
- Joined: Wed Jul 01, 2009 11:00 pm
Re: What is a game engine?
I think there is true utility in the naming of engines/frameworks/libraries. There is definitely a quantifiable difference between frameworks and libraries, and that difference in important. However, it gets blurry between frameworks and engines, but I tried to lay out what I see as the difference (which happens to be the most commonly cited difference in the developer community as well).
The indelible lord of tl;dr