|"Ive started using SFML, and SDL and they are quite easy but I dont know if hey are game engines"|
|"I dont really understand this term."|
There's no consensus on what constitutes as a game-engine. In simpler words, a game-engine has no definite definition. Though, to be overly general, a game-engine consists of "components
", such as graphics, audio, etcetera, which are all linked in some logical way.
Game-engines, commercial or private, always focus on one specific game genre, such as first-person shooter or racing simulators. Very few game-engines exists that are capable of handling multiple genres, but even so, they tend to have undue complexity. One thing most engines have in common, however, is that they provide a cross-platform interface for multiple operating systems just like the CryENGINE
|"Is it something that allows programmers to create games easier because they contain functions that the users can use and etc, etc..."|
In a way, yes. An engine ties multiple aspects of a game together in either a object-orientated fashion or as a C-style interface. The engine itself is not part of the game, but a system on which the game is built. The game uses the engine's objects and/or API to get some task done. Here's a very quick example of how a game integrates an engine:
// Engine Header:
virtual void Update( ) = 0;
virtual void Destroy( ) = 0;
// Game Header
void Update( )
void Destroy( )
|"Also, how hard would it be to create a game engine? "|
Most people on this forum would gladly agree that building an engine is something that's best left to experienced programmers, especially those with game development experience. I disagree. A game-engine can be as trivial as text-based I/O and audio and it will still constitute as an engine in my book. The amount of components and the complexity of the component's implementation determines just how difficult the engine is to implement. Remember: a game-engine is a system and a system must contain at least two components that are linked together in order for that system to actually be considered a system.
In regards to books, I don't know of any. In fact, a game-engine is all about common sense and knowledge of the programming language of choice. As I said, there's no definite engine architecture which developers must follow, so it's up to you
to decide how the engine looks and behaves during run-time.