🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

What is a Game Engine

Started by
6 comments, last by JRGarcia 6 years, 11 months ago

Hello. I would like to ask you all:

What are the features that a program/library/module needs to have to be called a 'game engine' I have been working for years on my little and still very incomplete Python 3D engine and I found today that it is not mentioned in any list of engines! While this has the advantage of not adding pressure on me, it still feels a little wrong. I'm thinking that it is ignored because it still lacks something very important that prevent it from being considered a real game engine., but I don't see what. Right now it features:

  • Forward Rendering with OpenGL 3.2
  • GPU Animations
  • Sounds
  • Physics
  • Cross platform windowing
  • Totally incomplete GUI (Panel, Image, Label)
  • Lights
  • Full screen effects system (none included)
  • Plug-in system (None included)
  • The beginning of an Editor

What do you think it needs, besides more work on what it already has? Thanks.

Advertisement

For a direct answer:

I'll say an engine needs enough to put together a game.  I don't know if your parts are good enough for the game you want to make. It might be enough, it might not be.

There is a distinction somewhere, but I'm not sure exactly where it is.  On the one side you've got a library or tool.  It is a part of making a game and does much work for you, but it is not yet an engine.  On the other side you've got an engine that does all the things you need, just add your game-specific bits.  Somewhere along the line a library turns into an engine.

 

For the less direct answer:

I'd suggest not trying to build an engine as the goal.  I've helped in the creating of engines for studios a few times, and never was it a case where the engine was a goal.  First was a game with a big investment.  Then game-specific parts were removed and it was used for a second game.  After several rounds, what remained between each game was considered an engine and allowed for extremely rapid development relative to the first few rounds.

Make a game. Reuse your parts, as above, and if they do what you need to make the games you want to make, then it is enough for you.  Otherwise, it is not.  And that distinction is unique to the games being made.

Thank you @frob, that is very helpful. I actually started trying to put together a little game, but after some tries, no free engine/game making system fulfilled all my requirements, so I began making my own engine. Now I can't find the time to make the game, because I spend the time adding features to the engine. I suppose I have to quit doing that and finish the game. Thank you! :D

Yeah I  define an engine as "after you make a game, all the bits you can reuse to make a second game, are the engine". 

So the only way to prove an engine is complete is to make a game :)

Or at least plan out a game and work out what kinds of frameworks and tools might be required. 

On 16/07/2017 at 4:59 AM, JRGarcia said:

I have been working for years on my little and still very incomplete Python 3D engine and I found today that it is not mentioned in any list of engines

I guess many engine developers are in the same situation than you.

Whereas it can have technical reasons as you are looking for, it might also just have publishing reasons. For example, if your website changed often, or if your website is not well referenced (threw google or so). Or if you didn't make any promotion in any visited and relevant websites (like this one or other forums)...

The other thing is that there are now many and many engines. I also suspect wikipedia to list 'little' engines when their authors or workers are adding them :) Or once they start to get some notoriety, so as Hodgman said, games should be published using your engine.

 

On 16.7.2017 at 4:59 AM, JRGarcia said:

and I found today that it is not mentioned in any list of engines

As any previous person wrote, why mention something that has never ben proven by a successfull project or at least some very terrifying showcase? The core question is why do you care when writing for your own?

I would also define anything used in a game that could be reused is part of the engine but there are two different approaches to take a view on this. You could have a specialized game engine, lets say for RPGs so some gameplay code also belongs to the engine (inventory system, tech-tree, ...) or a more general kind; no gameplay code will belong to the engine (game AI does not but Behavior Trees do)

Thank you all for your answers. I think now is safe to say that, resuming what's being said so far, a simple, practical definition of what a game engine is would be:

"All what is left of a game after removing the game specifics, as long as those remaining pieces can be used to make a second game"

As additional points we could divide the engine's requirements by the type of engine we want:

1 A genre-specific engine can keep much of the first game's logic, since the second game can reuse this logic.

2 An engine that starts as a fully-fledged business idea (clear money earning strategy, well backed) in opposition to a 'made-by-hobby' work, can be created with a ' terrifying showcase' as impulse instead of waiting to have a complete, successful game to be considered an engine.

Whit this ideas, I can finally 'stop' working on the engine and move on to some other more practical projects (like maybe, a game). Thanks.

This topic is closed to new replies.

Advertisement